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 退出。 否則,如果發生錯誤,它將以非零值退出。