簡體   English   中英

程序僅在首次運行時掛起?

[英]Program hangs only on first run?

我正在嘗試調試gdb中的低級C程序。 該程序旨在充當包裝器,啟動另一個進程並監視/干擾其內存使用。

當我在gdb中加載程序時,起初看起來一切正常(如果不理想)。 我看到新的流程分支,然后掛起。 就其本身而言,這並不奇怪。 可能在我的代碼中某處出現死鎖或無限循環。

但是,如果我中斷並殺死了gdb中的進程,然后在同一gdb會話中再次運行該進程,則一切正常 運行大約需要半秒鍾,並且完全按照應有的方式運行。

所以我的問題是: 在程序運行之間gdb保留什么? 第一次執行與第二次執行之間會發生什么變化?

我找到了原因,盡管我仍然不明白為什么gdb以這種方式起作用。 但是我會在這里發布它,以防它對其他人有用。

我啟動了gdb:

gdb --args ./mywrapper testers_exe / tester-2

首次運行時:

/ home / 用戶名 / mywrapper testers_exe / tester-2

但是當被殺死並再次運行時,它模仿了最近的過程 ,而不是給出的論點:

/ home / 用戶名 / testers_exe / tester-2 testers_exe / tester-2

因此,它在沒有包裝器的情況下運行了測試,並避免了包裝器的無限循環。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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