3
我剛剛開始使用LLVM。我寫了我自己的Hello傳遞,它工作正常。使用opt運行LLVM傳遞
現在我想從StackProtector.cpp運行堆棧保護程序,但我遇到了麻煩。當我看到源代碼,它看起來像我應該使用標誌-stack保護器:
INITIALIZE_PASS(StackProtector, "stack-protector", "Insert stack protectors", false, false)
但這種標誌不會被選擇的認可。
我不確定要「加載」哪個文件,因爲它不像裝載我自己的LLVMHello.so文件那麼簡單,而且我也找不到StackProtector.so文件;我相信這可能是問題所在。
編輯:
我終於從LLVMDev得到了答案。實際上,我想運行的通道是由llc執行的,而不是選擇。我找不到選項-stack-protector,但是,與
llc --help
因爲此選項被隱藏。相反,如果我做
llc --help-hidden
它表明通是存在的,而我只需要運行
llc -print-before=stack-protector <input>
嗯,這一關是不是自定義通,是可以發現一個內置的通LIB /的CodeGen。所以我想知道是否可以在不修改源代碼的情況下使用opt來運行此傳遞。 – Izabela
這更簡單。使用我提供的相同命令並使用-THEIR_OPTIONAL_NAME。它適用於您創建的任何.so。 – Alex