如何除錯守護程序

2021-06-06 00:47:56 字數 1550 閱讀 1828

如何除錯守護程序

我寫了個守護程序,可是如何用gdb 除錯呢,我試了attach pid 方法 可是他不能讓程式停住呀。

如何除錯守護程序

ctrl+c就停住了

如何除錯守護程序

realy?

如何除錯守護程序

守護程序通常都要通過乙個daemon_init()類似的函式將程序轉換為守護程序,你可以先將這個轉換注釋,將其作為乙個普通程序除錯,除錯好了之後再轉換為守護程序

如何除錯守護程序

不錯當前我就是這麼做的  可是 你不知道。。 守護程序有些其他的特性 如 程式中用了大量的 字元操作 而且螢幕輸出過多的話 就造成了溢位 (一開始沒有想把它作為守護程序)  這我就想知道 為什麼 守護程序中 的標準輸出會造成溢位(大量的)他為什麼會把 要輸出到乙個不存在的stdout裝置上的資訊寫到了記憶體裡位址裡面。。

如何除錯守護程序

高手們 怎麼調呀  哭了

如何除錯守護程序

呀,這就哭了?

如何除錯守護程序

正在執行的守護程序,可以用 gdb 程序程式名 程序程式pid 來除錯

如果在gdb下執行除錯子程序,在gdb 下執行命令,set follow-fork-mode child 。

如何除錯守護程序

我太謝謝你的回帖了

c++**

#include 

#include 

#include 

#include 

#include 

#include 

#include 

void init_daemon(void);//守護程序初始化函式

main()   

}   

}   

void init_daemon(void)   

//nim here at tue jan 11 12:21:06 2011

#include #include #include #include #include #include #include void init_daemon(void);//守護程序初始化函式

main()

}}void init_daemon(void)

{ int pid;

int i;

if(pid=fork())

exit(0);//是父程序,結束父程序

else if(pid<0)

exit(1);//fork失敗,退出//是第一子程序,後台繼續執行

setsid();//第一子程序成為新的會話組長和程序組長//並與控制終端分離

if(pid=fork())

exit(0);//是第一子程序,結束第一子程序

else if(pid<0)

exit(1);//fork失敗,退出//是第二子程序,繼續//第二子程序不再是會話組長

for(i=0;i

如何除錯守護程序

b 如何除錯守護程序 b 我寫了個守護程序,可是如何用gdb 除錯呢,我試了attach pid 方法 可是他不能讓程式停住呀。如何除錯守護程序 b ctrl c就停住了 b 如何除錯守護程序 realy?如何除錯守護程序 b 守護程序通常都要通過乙個daemon init 類似的函式將程序轉換為守...

如何實現守護程序?

守護程序 daemon 是執行在後台的一種特殊程序。它獨立於控制終端並且周期性地執行某種任務或等待處理某些發生的事件。守護程序是一種很有用的程序。1 守護程序最重要的特性是後台執行。2 守護程序必須與其執行前的環境隔離開來。這些環境包括未關閉的檔案描述符,控制終端,會話和程序組,工作目錄以及檔案建立...

gdb多執行緒 多程序(守護程序)除錯

一 除錯多程序 1 follow fork mode set follow fork mode parent child parent fork之後繼續除錯父程序,子程序不受影響。child fork之後除錯子程序,父程序不受影響。在使用如下方法設定完要除錯的程式後 gdb命令列的 args 引數 ...