簡體   English   中英

在后台運行gdbserver調試程序並不時用gdb連接到它

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM