如果您照著前面的文章按圖索驥，您會發現有些情況或某些類型的程式會卡住無法進行下去。比方說如果您按 Ctrl+C 中斷 process，或者是用 kill 殺掉某些 background process, daemon，您會發現目錄下找不到 gmon.out，少了 gmon.out，就無法產生 call graph 與最終的 svg 圖檔。
由上面的文字可以看到，原本 mcleanup 用 atexit 註冊(應為編譯/連結 -pg 旗標的效果)，然後在 process 自然死亡時被呼叫寫出 gmon.out。但是在 process 不是自我了斷的情況下，顯然mcleanup 沒有被呼叫，也得不到 gmon.out 了。所以必須採取攔截 signal，透過 dlsym 取得 .so 中 mcleanup 符號的手段強制輸出 gmon.out。