Wenn Sie in einem Funktionstyp bt für Backtrace gestoppt. Backtrace listet den aktuellen Stapel auf. Das Element oben, # 0, ist normalerweise die Funktion, an der Sie interessiert sind, und die Quelldatei und die Zeilennummer werden ebenfalls aufgelistet.
Zum Beispiel:
(gdb) bt
#0 myClass::EntityTypeStruct::readAttributes (this=0x7fffd00066e0, buf=0x7fffd0006020 "", len=48)
at /team/project/src/EntityTypeStruct.cc:55
#1 0x000000000044ca86 in workerThread (ts=0x7fffea71dcc0)
at /team/project/src/threads/workerThread.cc:219
#2 0x00007ffff775e9d1 in start_thread() from /lib64/libpthread.so.0
#3 0x00007ffff6c07b5d in clone() from /lib64/libc.so.6
Siehe http://www.chemie.fu-berlin.de/chemnet/use/info/gdb/gdb_7.html#SEC42 für weitere Informationen.
Auch, wenn Sie einen Haltepunkt festlegen können Sie festlegen, Befehle, die jedes Mal ausgeführt wird treffen Sie diesen Breakpoint. Siehe http://www.chemie.fu-berlin.de/chemnet/use/info/gdb/gdb_6.html#SEC35
Also, wenn Sie wissen, wie viele Zeilen in Ihrer Funktion sind Sie einen Befehl gesetzt könnten alle Sourceleitungen der Funktion zur Liste:
(gdb) break myClass::EntityTypeStruct::readAttributes
Breakpoint 1 at 0x61ec3b: file /team/project/src/EntityTypeStruct.cc, line 38.
(gdb) commands 1
list 38,104
end
Wie wäre es mit 'liste'? –
Es druckt eine Anzahl von Zeilen, aber nicht die ganze Funktion. – s5s
Sie können weiter nach der "Listenfunktion" eingeben, um den vorherigen Befehl zu wiederholen und die Funktion 10 Zeilen gleichzeitig auszudrucken. – Ben