GDB zeigt keine Funktionsnamen an

8

Ich debugge von einem eingebetteten Gerät mit gdbserver:

%Vor%

In meinem PC führe ich gdb auf diese Weise aus:

%Vor%

Sobald die Anwendung ausgeführt wird, erhalte ich den Segfault, den ich debuggen möchte, aber es ist unmöglich zu wissen, welche Zeile sie erzeugt hat:

%Vor%

(Ich muss sagen, ich bin völlig neu in GDB)

    
funkadelic 05.12.2011, 19:44
quelle

2 Antworten

10

Ok, das passiert normalerweise, wenn Debug-Symbole fehlen ... nur um sicherzustellen, dass Befehle ausgeführt werden

%Vor%

Sie erhalten Informationen über Ihr binäres Format, Bogen usw. Der letzte Teil der Informationen beschreibt, ob die Binärdatei entfernt wurde oder nicht. Zum Debuggen in GDB sollte die Binärdatei nicht entfernt worden sein.

%Vor%

Wenn Sie gültige Ausdrucke wie unten haben, bedeutet das, dass Debug-Symbole vorhanden sind.

%Vor%

Wenn Sie GDB aufrufen, sollten Sie folgende Zeile haben

%Vor%

An dieser Stelle sollten Sie Quellen mit list command auflisten können.

Stellen Sie sicher, dass sowohl gdb als auch gdbserver dieselbe Version haben.

%Vor%

Wenn all die obigen Aussagen zutreffen und Sie immer noch keine Rückverfolgung erhalten, ist Ihr Stack ziemlich schlecht. Versuchen Sie, eine statische Analyse durchzuführen, Valgrind auf Ihrem Code / neu hinzugefügten Code.

    
Kamath 06.12.2011, 06:32
quelle
5

Sie müssen Ihre Anwendung mit aktivierten Debug-Symbolen erstellen. Der Schalter für gcc ist -g

    
pmr 05.12.2011 19:45
quelle

Tags und Links