To do jisté míry souvisí s přihlášení gdb set by mělo přepsat gdb.txt správně? .

Řekněme, že spouštím relaci nějaké aplikace. Vezměme si například příklad qbittorrent.

Jak již bylo sdíleno dříve, takto se spustí běh –

$ gdb qbittorrent (gdb) set logging overwrite on (gdb) set logging on (gdb) set pagination 0 (gdb) run 

jedním ze způsobů, jak vím, je řádné ukončení aplikace, ale někdy aplikace zablokuje / zabere příliš mnoho času nebo jednoduše neodpovídá.

Pak jediná možnost, která mi zůstane, je použití CTRL+C které, pokud správně rozumím, zabije podkladovou aplikaci , v našem příkladu qbittorrent a poté jsem schopen ukončit gdb pomocí

(gdb) quit 

Existuje / existuje nějaký jiný způsob ukončení aplikace a přesto nechat gdb relace běží dál nebo jediným způsobem je hrubý způsob, který jsem zmínil výše.

AFAI vím, že zabití procesu aplikace by mělo být posledním řešením, a ne prvním.

Komentáře

  • Při spuštění pod gdb ve výchozím nastavení Ctrl-C nezabije aplikaci, pouze se rozbije do debuggeru, kde se můžete rozhodnout co dělat. Použijte cont na " spolkněte " signál a aplikace bude nerušeně pokračovat. Nebo pomocí signal 2 předejte aplikaci SIGINT (2). Nebo pomocí kill aplikaci zabijte.

Odpovědět

K tomu můžete použít signály. Před spuštěním programu nastavte USR1 nebo USR2 rozbít gdb bez ovlivnění program:

handle SIGUSR1 nopass 

Pak můžete spustit svůj program, a pokud ho potřebujete zastavit, spusťte kill -USR1 z další skořápka s příslušným (podřízeným) pid. gdb pozastaví aplikaci a poté můžete přidat zarážky, zkontrolovat stav atd. a pokud chcete, pokračujte v provádění pomocí cont.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *