藍森林首頁 | 返回主頁 | 本站地圖 | 站內搜索 | 聯繫信箱 |
 您目前的位置:首頁 > 自由軟件 > 技術交流 > 應用編程


    

藍森林 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
開始調試



Copyright © 1999-2000 LSLNET.COM. All rights reserved. 藍森林網站 版權所有。 E-mail : webmaster@lslnet.com