llvm-extract - 從 LLVM 模組中提取函式¶
語法¶
llvm-extract [選項] –func 函式名稱 [檔名]
描述¶
llvm-extract 命令會取得函式名稱,並從指定的 LLVM 位元碼檔案中提取該函式。它主要用作偵錯工具,以從觸發錯誤的較大程式中減少測試案例。
除了提取指定函式的位元碼外,llvm-extract 也會移除無法到達的全域變數、原型和未使用的類型。
如果省略檔名或檔名為 -
,則 llvm-extract 命令會從標準輸入讀取其輸入。輸出一律會寫入標準輸出,除非指定了 -o 選項(請參閱下方)。
選項¶
–alias 別名
從 LLVM 位元碼中提取名為 函式名稱 的別名。可以指定多次以一次提取多個別名。
–ralias 別名正規表示式
從 LLVM 位元碼中提取符合 別名正規表示式 的別名。所有符合正規表示式的別名都將被提取。可以指定多次。
–bb 基本區塊指定符
提取 基本區塊指定符 中指定的基本區塊。可以指定多次。每個 <函式:bb[;bb]> 指定符配對將建立一個函式。如果在一對中指定了多個基本區塊,則序列中的第一個區塊應該支配其餘區塊。
–delete
從模組中刪除指定的全域變數。
-f
在終端機上啟用二進制輸出。通常,如果輸出串流是終端機,llvm-extract 將拒絕寫入原始位元碼輸出。使用此選項,llvm-extract 將寫入原始位元碼,而不管輸出裝置為何。
–func 函式名稱
從 LLVM 位元碼中提取名為 函式名稱 的函式。可以指定多次以一次提取多個函式。
–rfunc 函式正規表示式
從 LLVM 位元碼中提取符合 函式正規表示式 的函式。所有符合正規表示式的函式都將被提取。可以指定多次。
–glob 全域變數名稱
從 LLVM 位元碼中提取名為 全域變數名稱 的全域變數。可以指定多次以一次提取多個全域變數。
–rglob 全域變數正規表示式
從 LLVM 位元碼中提取符合 全域變數正規表示式 的全域變數。所有符合正規表示式的全域變數都將被提取。可以指定多次。
–keep-const-init
保留常數全域變數的值。
–recursive
遞迴提取所有被呼叫的函式
-help
顯示命令列選項的摘要。
-o 檔名
指定輸出檔名。如果檔名為「-」(預設值),則 llvm-extract 會將其輸出傳送到標準輸出。
-S
以 LLVM 中間語言(而不是位元碼)寫入輸出。
結束狀態¶
如果 llvm-extract 成功執行,將會回傳 0 並結束。反之,若發生錯誤,則會回傳非零值並結束。