2011-08-24 18 views
6

W documentation for gdb:Jak używać śledzenia w GDB

Facility tracepoint jest obecnie dostępna tylko dla zdalnych celów. Zobacz sekcję Określanie celu debugowania. Ponadto zdalny obiekt docelowy musi wiedzieć, jak gromadzić dane śledzenia. Ta funkcja jest zaimplementowana w zdalnym odgałęzieniu; jednakże, , żaden z odcinków dystrybuowany z punktami kontrolnymi GDB nie jest zgodny z tym zapisem.

Podkreślam moją. Gdzie mogę uzyskać taki skrót (dla kodu C/C++ skompilowanego z GCC na Debianie x86 lub x64)? Albo jak mam go wykonać? Dokumentacja dotycząca zapisywania skrótów wspomina jedynie o funkcjach implementujących komunikację z portami szeregowymi. Dzięki!

+0

prawdopodobnie powinien odwoływać się do dokumentacji gdb FSF przy użyciu gdb na Linux (Okazuje się, że ta konkretna część nie uległa zmianie), jak jabłka gdb było rozwidlony „W czasach dawno dawno temu”. – matt

+0

Tak, dostałem ostrzeżenie, że nie było obsługiwane z mojego 'gdb' i poszedłem googlować, to właśnie pojawił się, ale zdecydowanie dotyczy bieżącego' gdb'. – Gaius

Odpowiedz

1

Nie wiem zbyt wiele na temat pilotów, ale niektóre cele w gdb teraz obsługują punkty kontrolne jest prawdopodobnie sposób na uzyskanie tego przy użyciu "normalnej" informacji lub polecenia show gdb, nie mogłem go znaleźć. w wynikach poniżej punkty kontrolne są obsługiwane ze względu na "supported = 1", nie może to być tylko skrót do gdb, ale także jądro, na którym działa kod pośredniczący.

$ gdbserver/gdbserver :12345 ~/tests/test & 
$ gdb -quiet 
(gdb) file ~/tests/test 
Reading symbols from /home/ratmice/tests/test...done. 
(gdb) target remote :12345 
Remote debugging using :12345 
Remote debugging from host 127.0.0.1 
Reading symbols from /lib64/ld-linux-x86-64.so.2...(no debugging symbols found)...done. 
Loaded symbols for /lib64/ld-linux-x86-64.so.2 
0x00000035dd600b20 in _start() from /lib64/ld-linux-x86-64.so.2 
Created trace state variable $trace_timestamp for target's variable 1. 
Missing separate debuginfos, use: debuginfo-install glibc-2.13-2.x86_64 
(gdb) interpreter-exec mi2 -trace-status 
^done,supported="1",running="0",frames="0",frames-created="0",buffer-size="5242880",buffer-free="5242880",disconnected="0",circular="0" 
+0

Która jest to wersja? Mam 'gdb' 7.0.1-debian i' gcc' wersję 4.4.5 na jądrze 2.6.32-5. 'tstart' daje mi' Target nie obsługuje tego polecenia' działa jak na twoim przykładzie z 'gdbserver'. 'interpreter-exec mi2 -trace-status' daje mi'^błąd, msg = "Niezdefiniowane polecenie MI: status śledzenia" '. Dzięki! – Gaius

+1

Polecenie -trace-status mi zostało dodane w 7.2. – matt