2016-08-09 10 views
3

Ich verwende X-Server unter Linux tutnix 3.13.0-30-generiC#54-Ubuntu i686 i686 GNU/Linux.GDB: Fehler beim Fernladen gemeinsamer Bibliotheken

Auf X-Server verwende ich Schroot, um den Stamm zu ändern, und danach starte ich meine Anwendung darauf.

Jetzt ist das Problem, ich versuche gdbserver (Version 6.7.1) auf X-Server (sagen Sie es Remote-Maschine) und gdb (Version 7.7) auf Ubuntu-Maschine (lokale Maschine oder die Maschine, wo X-Server ist läuft), aber es funktioniert nicht.

Das ist, was ich bisher versucht: -

  1. unter Befehle auf dem Remote-Rechner ausgeführt

    • my_application &
    • gdbserver localhost: 8888 --attach
  2. PROCESS_ID
  3. ausgeführt unter Befehle auf lokalen Mach ine

    • gdb ./MY_Application
    • (GDB) Zielfern: 8888

Jetzt auf GDB lokalen Rechner

Could not load shared library symbols for 20 libraries, e.g. /usr/lib/libqt.so.3. Use the "info sharedlibrary" command to see the complete listing. Do you need "set solib-search-path" or "set sysroot"?

Was diese Nachricht angezeigt wird Wie man es versteht, kann gdb die Shared Libraries nicht laden und es gibt 20 davon. Daher kann ich die Symbole in diesen gemeinsamen Bibliotheken nicht finden.

Ich habe versucht, die Symbole aus der Bibliothek Dateien auf dem lokalen Rechner mit symbol-file Befehl auf gdb aber das führt zu laden zu adressieren Mismatch

So verwendete ich den unten Befehl

  • (GDB) sysroot fernparametrierbar:/

aber es wird wieder eine Fehlermeldung

zeigt

Kann mir bitte jemand sagen, was mache ich hier falsch? Wenn es eine alternative Lösung zum Laden der Symbole aus freigegebenen Bibliotheken gibt, schlagen Sie bitte vor.

P.S. Beide MY_Application-Binärdateien sind gleich.

Antwort

1

Endlich fand ich eine Lösung für mein Problem. Das Problem war in Schritt 2 oben gezeigt. Irgendwie lädt gdb nicht alle Symbole und PATH zu Shared Libraries. Obwohl PATH mit ldd Befehl angezeigt wurde, war genau. Aber es funktionierte immer noch nicht für mich, wenn ich einfach die gdb ./MY_Application ausführen würde, also führte ich einen weiteren Befehl nach diesem, d. H.

file MY_Application

und auch von /srv/chroot/loc/usr/local/davis/lib/-/usr/local/davis/lib/ danach kopiert Bibliotheksdatei ich es auf Remote-Server verbinden und jetzt ist es funktioniert gut.

Verwandte Themen