c - tool - wordpress seo titel




Wie Laden von freigegebenen Bibliotheken Symbole für Remote-Source-Level-Debugging mit gdb und gdbserver? (2)

Es gibt ein paar verschiedene Möglichkeiten, dies zu scheitern, aber das typische ist, dass gdb lokale Dateien anstelle von Dateien vom Server aufnimmt.

Es gibt auch ein paar verschiedene Möglichkeiten, dies zu beheben, aber das einfachste ist, dies vor dem Aufruf des target remote zu tun:

(gdb) set sysroot remote:

Dadurch wird gdb angewiesen, Dateien vom Remote-System abzurufen. Wenn Sie dort Debug-Informationen haben (die ich aus Ihrem Post entnehme, die Sie tun), dann wird alles gut funktionieren.

Das typische Problem bei diesem Ansatz besteht darin, dass Daten von der Fernbedienung kopiert werden müssen. Dies kann ein Schmerz sein, wenn Sie eine schlechte Verbindung haben. In diesem Fall können Sie eine Kopie der Daten lokal speichern und Sysroot auf die Kopie verweisen. Dies erfordert jedoch einige Aufmerksamkeit, um die Dinge synchron zu halten.

Ich habe gdb und gdbserver auf einem Angstrom-Linux-ARM-Board (mit externem Zugriff) installiert und versuche, Quellcode-Debugging einer gemeinsam genutzten Bibliothek von meinem lokalen Rechner zu bekommen. Derzeit, wenn ich ssh in das Gerät, kann ich gdb ausführen und ich bin in der Lage, alles funktioniert, einschließlich der Einstellung eines Haltepunktes, schlagen Sie es und machen Sie eine Backtrace.

Mein Problem kommt, wenn ich versuche, dasselbe mit gdbserver zu tun und gdb auf meinem Host-Rechner zu starten, um das gleiche zu erreichen (schließlich möchte ich, dass dies in Eclipse funktioniert, aber in gdb ist es gut genug für den Moment).

Ich bemerke, dass, wenn ich einfach gdb auf dem Server benutze und "info shared" laufen lasse, es korrekt Symboldateien lädt (syms read: yes for all), die ich dann debuggen kann. Ich hatte kein solches Glück, indem ich "symbol-file" oder "directory" oder "shared" benutzte. Es sieht offensichtlich die Dateien, aber ich kann keine Symbole laden, selbst wenn ich Remote-Dateien direkt anwähle. Irgendwelche Ratschläge, was ich als nächstes versuchen kann?








gdbserver