|
藍森林 http://www.lslnet.com 2006年6月6日 10:18
gdb 調試程序問題
本人在用gdb調試程序的時候遇到兩個問題,向各位高手們請教。
問題一:我在主程序裡fork()一個子進程,然後用execl()執行子進程。程序編譯通過,在系統裡直接運行,通過 ps 察看,可以看到兩個進程都已經起來了。但是當我用gdb調試主進程單步執行,已經過了execl()函數了,我用ps 察看卻發覺主進程有了,但是fock出來的子進程卻沒有被叫起來。這是我程序的問題,還是gdb調試器的為題呀?如果是我程序的問題,為什麼不在gdb下就很正常呀?我已經在redhat8、redhat9、sco unix上都試過了,結果全一樣。
問題二:我字一個程序用msgsnd()寫隊列,在另一個程序用msgrcv()收隊列,在系統下直接運行收發都很正常,但是在gdb調試環境下,我調試收隊列的程序,外部用寫隊列的程序寫數據,收隊列的程序根本就收不到,並且我msgrcv()的時間參數用的是0,他應該阻塞等待呀,結果在沒有任何信號,也沒kill的情況下他就返回-1了,這是為什嗎呀?我在redhat8、redhat9上測試都是這種問題。在sco unix下卻沒有,他在gdb下也阻塞,很正常。不明白了。。。。。
請各位高手們指點以下吧。謝謝!!! |
gdb 調試程序問題
我頂! |
gdb 調試程序問題
sorry,真的不會了.嘿嘿.幫你頂吧~:P |
gdb 調試程序問題
扛!!! |
gdb 調試程序問題
famous你真行,這種地方我都找不到可以回的帖子,你竟然回了100多了.暈了~再幫忙頂下吧.:D |
gdb 調試程序問題
慚愧!
我大多是在問問題。 |
gdb 調試程序問題
我當然知道了,因為我搜索過你的帖子,哈哈~ |
gdb 調試程序問題
ding |
gdb 調試程序問題
gdb 不要直接調試fork,exec後的程序,可以這樣:
先把程序直接運行,用ps看到你的2個程序都在,找到pid
然後用gdb programefile pid
開始調試 |
| |