[英]running gdbserver in background debugging a program and connect to it with gdb from time to time
我在C語言中為基於Debian的linux上的嵌入式設備編寫了一個程序。
其中一個設備在運行8天后出現了分段錯誤,因此我不能使用gdb快速跟蹤這個錯誤。
幾年前,我知道我使用gdb(我猜是gdbserver)運行與shell分離的程序,所以我可以讓設備運行並檢查每天是否發生了不好的事情,但我不記得我是怎么做的那!
我已經嘗試使用gdbserver,使用gdb連接到它,但是當我關閉連接時它會停止調試。
你知道如何實現這個目標嗎?
你必須detach
,而不是像那樣退出gdb。
既然你只是為了驗屍,無論如何,我會推薦一些完全不同的東西:
啟用核心轉儲; 以root身份運行
> sudo -s ##become root
$ echo "* soft core unlimited" >> /etc/security/limits.conf
$ su -l <user that is running the crashing program>
$ ulimit -c unlimited
$ program
##wait for crash
(取消對最大核心轉儲文件大小的任何限制,包括默認的0B限制)。
然后,在崩潰后,找到core.*
coredump文件,並用gdb打開它。 Voila,崩潰時程序的狀態在gdb中恢復,你可以做很多事情,你可以用崩潰時附加的gdb做。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.