llvm-extract -
استخراج یک
تابع از یک
ماژول LLVM
llvm-extract [options] --func
function-name [filename]
دستور llvm-extract
نام یک تابع
را دریافت
کرده و آن را
از فایل
بیتکد (bitcode)
مشخصشدهٔ
LLVM استخراج
میکند. این
دستور
عمدتاً به
عنوان
ابزاری
برای
اشکالزدایی
جهت کوچک
کردن
نمونههای
آزمایشی از
برنامههای
بزرگتری
که باگی را
تحریک
میکنند،
به کار
میرود.
علاوه بر
استخراج
بیتکد
تابع
مشخصشده،
llvm-extract همچنین
متغیرهای
سراسری
غیرقابلدسترس،
پیشنمونهها
(prototypes) و انواع
استفادهنشده
را حذف
میکند.
دستور llvm-extract
ورودی خود
را در صورتی
که filename حذف شده
باشد یا
برابر با -
باشد، از
ورودی
استاندارد
میخواند.
خروجی
همیشه در
خروجی
استاندارد
نوشته
میشود،
مگر اینکه
گزینهٔ -o
مشخص شده
باشد (به
ادامه
مراجعه
کنید).
--alias alias-name
نام
مستعار (alias) با
نام function-name را
از بیتکد LLVM
استخراج
میکند.
میتواند
چندین بار
برای
استخراج
همزمان
چند نام
مستعار
مشخص شود.
--ralias alias-regular-expr
نامهای
مستعار
منطبق با
alias-regular-expr را از
بیتکد LLVM
استخراج
میکند.
تمام
نامهای
مستعار
منطبق با
عبارت منظم
استخراج
خواهند شد.
میتواند
چندین بار
مشخص شود.
--bb basic-block-specifier
بلوک(های)
پایهٔ
مشخصشده
در basic-block-specifier را
استخراج
میکند.
میتواند
چندین بار
مشخص شود. هر
جفت
مشخصکنندهٔ
<function:bb[;bb]> یک تابع
ایجاد
خواهد کرد.
اگر چندین
بلوک پایه
در یک جفت
مشخص شوند،
اولین بلوک
در این
دنباله
باید بر
بقیه غالب (dominate)
باشد.
--delete
متغیرهای
سراسری (Globals)
مشخصشده
را از ماژول
حذف
میکند.
-f
فعالسازی
خروجی
باینری روی
ترمینالها.
در حالت
عادی، اگر
جریان
خروجی یک
ترمینال
باشد، llvm-extract از
نوشتن
خروجی خام
بیتکد
خودداری
میکند. با
این گزینه،
llvm-extract خروجی
خام بیتکد
را بدون در
نظر گرفتن
دستگاه
خروجی
خواهد
نوشت.
--func function-name
تابع با
نام function-name را
از بیتکد LLVM
استخراج
میکند.
میتواند
چندین بار
برای
استخراج
همزمان
چند تابع
مشخص شود.
--rfunc function-regular-expr
تابع(های)
منطبق با
function-regular-expr را از
بیتکد LLVM
استخراج
میکند.
تمام توابع
منطبق با
عبارت منظم
استخراج
خواهند شد.
میتواند
چندین بار
مشخص شود.
--glob global-name
متغیر
سراسری با
نام global-name را از
بیتکد LLVM
استخراج
میکند.
میتواند
چندین بار
برای
استخراج
همزمان
چند متغیر
سراسری
مشخص شود.
--rglob glob-regular-expr
متغیر(های)
سراسری
منطبق با
global-regular-expr را از
بیتکد LLVM
استخراج
میکند.
تمام
متغیرهای
سراسری
منطبق با
عبارت منظم
استخراج
خواهند شد.
میتواند
چندین بار
مشخص شود.
--keep-const-init
مقادیر
متغیرهای
سراسری
ثابت (constant globals) را
حفظ
میکند.
--recursive
استخراج
بازگشتی
تمام توابع
فراخوانیشده.
-help
چاپ
خلاصهای
از
گزینههای
خط فرمان.
-o filename
نام فایل
خروجی را
مشخص
میکند. اگر
filename برابر "-"
باشد
(پیشفرض)،
آنگاه llvm-extract
خروجی خود
را به خروجی
استاندارد
میفرستد.
-S
نوشتن
خروجی در
زبان میانی LLVM
(به جای
بیتکد).
اگر llvm-extract با
موفقیت
اجرا شود،
با کد 0 خارج
میشود. در
غیر این
صورت، اگر
خطایی رخ
دهد، با
مقداری غیر
صفر خارج
خواهد شد.
bugpoint(1) <bugpoint.html>