簡體   English   中英

用-pg編譯的gcc不會產生gprof所需的二進制文件

[英]gcc compiling with -pg doesn't produce binary needed for gprof

我遇到了一個小問題,需要一些幫助。 作為測試的一部分,我想在一些OpenMP和MPI混合代碼上運行gprof。 我了解gprof依賴於使用-pg開關編譯gcc(或mpicc)時創建的二進制文件。

我嘗試添加此開關,並且編譯成功(因為未報告任何錯誤),但是,未創建二進制文件,而是按常規方式創建了可執行文件。 我也嘗試過在使用pthreads的更簡單的代碼上執行此操作,結果相同。

請檢查以下內容,讓我聽聽您的想法。

gcc -pg --std=gnu99 -pthread -Wall -o pthreadsv0 pthreads.c

我懷疑您提到的二進制文件實際上是配置文件數據文件( gmon.out ),它是在運行程序時生成的(必須使用-pg標志進行編譯)。 只需執行您的程序,看看是否有gmon.out文件。

使用-pg選項編譯 執行程序時,將創建gprof信息。 嘗試運行您的程序。 (您正在分析(gprof)程序的執行)

-pg compile選項添加了執行程序時創建概要分析信息所必需的邏輯。 如果需要或需要多次執行該程序,則允許“插入”代碼將描述邏輯流和時序的數據寫入gmon.out文件。

遇到同樣的問題。 之所以出現此問題,是因為我用Ctrl-C而不是適當的退出來關閉程序的執行(在我的情況下,關閉GUI窗口)。

暫無
暫無

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

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