2014-07-07 17 views
7

Próbuję uruchomić wiele poleceń w jednym wierszu, npJak uruchomić wiele poleceń w jednym wierszu?

(gdb) info threads; c 
Args must be numbers or '$' variables. 

Ale wygląda gdb nie obsługuje tak. Jakieś pomysły?

+0

prawdopodobny duplikat [Wiele poleceń w gdb separted przez jakiś ogranicznik ';'?] (Http://stackoverflow.com/questions/1262639/multiple-commands-in-gdb-separted-by-some-sort -of-ogranicznik) – ks1322

Odpowiedz

12

Zastosowanie define polecenie, aby zdefiniować własne polecenia:

(gdb) define mycommand 
Type commands for definition of "mycommand". 
End with a line saying just "end". 
>info threads 
>c 
>end 
(gdb) mycommand 

Szczegółowe informacje można odwołać: https://sourceware.org/gdb/onlinedocs/gdb/Define.html#Define.

2

gdb nie ma dla tego składni. Więc nie możesz tego zrobić.

Jeśli chcesz mieć możliwość uruchamiania sekwencji w puszkach, zobacz komendę "define".

0

Można to osiągnąć przez pierwsze umieszczenie punktów przerwania, a następnie użyć "polecenie wewnątrz GDB i wymienić wszystkie, które powinny pobiera wykonywane Kiedy tylko ten konkretny breakpoints uderza poleceń. W ten sposób możemy zautomatyzować naszą sesję debugowania, jak również.

(gdb) help polecenie polecenia

Zestaw do wykonania, gdy punkt przerwania jest trafiony. podać numer breakpoint jako argument po "polecenia". Bez argumentu docelowy punkt przerwania jest ostatnim zestawem. Komendy same się rozpoczynają od następnego wiersza. Wpisz wiersz zawierający "koniec", aby wskazać koniec. Daj "cichy" jako pierwszy wiersz, aby cisza została przerwana; wtedy żadne wyjście nie zostanie wydrukowane, gdy zostanie trafione, z wyjątkiem tego, co polecenia zostaną wydrukowane.

(gdb) break main 
Breakpoint 1 at 0x40113e: file thread.cpp, line 19. 
(gdb) info b 
Num  Type   Disp Enb Address   What 
1  breakpoint  keep y 0x000000000040113e in main() at thread.cpp:19 
(gdb) commands 1 
Type commands for breakpoint(s) 1, one per line. 
End with a line saying just "end". 
>info locals 
>print argc 
>print argv 
>backtrace 
>end 
(gdb) info b 
Num  Type   Disp Enb Address   What 
1  breakpoint  keep y 0x000000000040113e in main() at thread.cpp:19 
     info locals 
     print argc 
     print argv 
     backtrace 
(gdb) 
Powiązane problemy