Zdalne debugowanie bibliotek współdzielonych za pomocą gdb / gdbserver

Moje pytanie dotyczy zdalnego debugowania aplikacji na wbudowanym procesorze ramienia za pomocą gdb / gdbserver.

Mogę debugować samą aplikację, ale aplikacja dynamicznie łączy się z biblioteką współdzieloną, która implementuje wewnętrzny protokół komunikacyjny. Chcę mieć możliwość ustawiania punktów przerwania w obrębie funkcji biblioteki współużytkowanej, więc spróbuj znaleźć problemy z wykrywaniem urządzeń.

Upewniłem się, że biblioteka jest skompilowana z symbolami debugowania i jest ładowana przez gdb po stronie hosta, mogę wyświetlać funkcje wewnątrz biblioteki, a nawet ustawiać punkty przerwania, ale gdy tylko spróbuję uruchomić aplikację, otrzymuję komunikat o błędzie do efekt:

Cannot insert breakpoint X.<br>Error accessing memory address : Input/output error.

gdzie X jest numerem punktu przerwania w gdb i jest adresem dalekim od małego, aby był poprawny.
Używam nowej biblioteki zarówno na komputerze docelowym, jak i na hoście, ale za pośrednictwemmount -o bind newlib oldlib na celu z mount nfs.
Czy ktoś ma pojęcie o tym, co może być nie tak? Z góry dziękuję.

questionAnswers(4)

yourAnswerToTheQuestion