Próbuję wykonać dwie komendy naraz w gdb:
finish; next
Próbowałem użyć ';' oddzielić polecenia, ale gdb nie pozwolił mi zrobić obu naraz.
Czy jest możliwe wykonanie wielu poleceń w gdb podobnych do poleceń bash oddzielonych znakiem „;” separator?
execlp("gdb", "gdb", "-batch", "-n", "-ex", "bt full", ...
i nie mogę wyłączyć stronicowania.show user <function name>
do wyświetlenia jej źródła, npshow user fn
.Jeśli uruchamiasz gdb z wiersza poleceń, możesz przekazać wiele poleceń z parametrem -ex, na przykład:
To w połączeniu z wyświetlaniem i innymi poleceniami sprawia, że uruchamianie gdb jest mniej kłopotliwe.
źródło
GDB nie ma takiego znaku separatora poleceń. Rozejrzałem się krótko, na wypadek, gdyby łatwo było dodać, ale niestety nie ....
źródło
Możesz to zrobić za pomocą integracji Pythona w
gdb
.Byłoby miło, gdybyśmy
s ; bt
przeszli, a następnie wydrukowali ślad, ale tak nie jest.Możesz osiągnąć to samo, wywołując interpreter języka Python.
python import gdb ; print(gdb.execute("s")) ; print(gdb.execute("bt"))
Możliwe jest zawinięcie tego w dedykowane polecenie, tutaj zwane „cmds”, wspierane przez definicję Pythona.
Oto przykład
.gdbinit
rozszerzony o funkcję do uruchamiania wielu poleceń.przykładowe wywołanie:
źródło
natrafiłem na inny sposób wykonywania wielu poleceń w GDB przy użyciu dokumentu Bash HERE.
przykład:
ma to ograniczoną wartość / użyteczność IMO, ponieważ GDB kończy pracę po wykonaniu listy poleceń.
źródło