簡體   English   中英

如何獲取陷入無限循環的C程序的代碼覆蓋率信息?

[英]How can I get the code coverage information for a C program who trapped in infinite loop?

我需要獲取大量C程序的代碼覆蓋率信息。 我只需要知道是否執行了每一行。 但是,它們中的一些永遠不會因無限循環而終止。 大多數工具(例如gcov,llvm-cov)只能在程序結束后才能獲取程序的信息。 我為所有程序設置了時間限制。 如果它的執行時間未達到限制時仍未結束,則其過程將被終止。 但是,當其進程被終止時,將清除內存中存儲的所有信息。 因此,我無法獲得這些程序的代碼覆蓋率信息。 我怎樣才能做到這一點?

一種簡單的解決方案是在程序內部添加一個小定時器中斷,這將在幾秒鍾的“不良行為”后引發異常,並導致程序正常終止。

以您似乎想要的臨時方式進行搜索和探測時,只要發現錯誤就立即刪除該hack,就完全可以對其進行“ hack”。

暫無
暫無

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

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