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 並結束。反之,若發生錯誤,則會回傳非零值並結束。

另請參閱

bugpoint(1)