我試圖通過LLVM解析代碼在我的C/C++代碼中打印所有函數的名稱。我提到這裏http://llvm.org/docs/WritingAnLLVMPass.html#basic-code-required 給出的示例中的示例工作正常,C代碼輸入,但是對於C++輸入時,它會顯示以下一個簡單的Hello World程序LLVM中的FunctionPass for C++輸入
__cxx_global_var_init
主要功能名稱
GLOBAL _I_a
然後我發現LLVM與iostream有一定的問題,如下所述:http://llvm.org/docs/FAQ.html#what-is-this-llvm-global-ctors-and-global-i-a-stuff-that-happens-when-i-include-iostream
我從我的代碼中刪除了iostream,然後我只有「main」作爲輸出。
但是對於一個多功能的C++程序,可以說包含以下功能:convertperm,findType和主(沒有的iostream),我得到了下面的輸出
_Z11convertpermSs
_Z8findtypeSs
主要
多功能C程序正常工作
任何人都可以提供自動對焦九,這個問題?
使用'C++ filt'工具來轉換mangled名稱。如果您只想打印來自源文件(不是包含的頭文件)的聲明,請使用調試元數據。 –