[英]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.