--additional-so library
بارگذاری
شیء
اشتراکی
پویا (shared object) با
نام library در
برنامه
آزمون
هنگام هر
بار اجرای
آن. این
گزینه
زمانی مفید
است که
برنامههایی
وابسته به
کتابخانههای
غیر LLVM (مانند
کتابخانههای
X یا curses) را
اشکالزدایی
میکنید.
--append-exit-code={true,false}
پیوست
کردن کد
خروج
برنامه
آزمون به
فایل
خروجی،
بهطوری که
هرگونه
تغییر در کد
خروج به
منزله شکست
آزمون در
نظر گرفته
شود. مقدار
پیشفرض false
است.
--args program args
ارسال
تمام
آرگومانهای
مشخصشده
پس از
--args به
برنامه
آزمون
هنگام
اجرای آن.
توجه داشته
باشید که
اگر هر یک از
program args با «"
-"»
آغاز شود،
باید به این
شکل عمل
کنید:
bugpoint [bugpoint args] --args -- [program args]
عبارت
«"--"»
بلافاصله
پس از گزینه
--args به bugpoint
اعلام
میکند که
هر
گزینهای
را که با
«"-"» آغاز
میشود
بخشی از
گزینه --args
تلقی کند،
نه
گزینهای
برای خود
bugpoint.
--tool-args tool args
ارسال
تمام
آرگومانهای
مشخصشده
پس از
--tool-args به
ابزار LLVM تحت
آزمون (
llc،
lli
و غیره) در هر
بار اجرای
آن. باید از
این گزینه
به شیوه زیر
استفاده
کنید:
bugpoint [bugpoint args] --tool-args -- [tool args]
عبارت
«"--"»
بلافاصله
پس از گزینه
--tool-args به bugpoint
اعلام
میکند که
هر
گزینهای
را که با
«"-"» آغاز
میشود
بخشی از
گزینه --tool-args
تلقی کند،
نه
گزینهای
برای خود bugpoint
(به --args در
بالا
مراجعه
کنید).
--safe-tool-args tool args
ارسال
تمام
آرگومانهای
مشخصشده
پس از --safe-tool-args به
ابزار
اجرای
«امن» ("safe").
--gcc-tool-args gcc tool args
ارسال
تمام
آرگومانهای
مشخصشده
پس از --gcc-tool-args به
فراخوانی
gcc.
--opt-args opt args
ارسال
تمام
آرگومانهای
مشخصشده
پس از --opt-args به
فراخوانی
opt.
--disable-{dce,simplifycfg}
عدم
اجرای
گذرهای
مشخصشده
برای
پاکسازی و
کاهش حجم
برنامه
آزمون.
بهطور
پیشفرض،
bugpoint در هنگام
تلاش برای
کوچکسازی
برنامههای
آزمون این
گذرها را
بهصورت
داخلی اجرا
میکند. اگر
سعی در
یافتن باگ
در یکی از
این گذرها
داشته
باشید،
ممکن است bugpoint
دچار کرش
شود.
--enable-valgrind
استفاده
از valgrind برای
یافتن
خطاها در
مرحله
بهینهسازی.
این گزینه
به bugpoint امکان
میدهد
مشکلاتی را
که ناشی از
مدیریت
نادرست
حافظه بوده
و در حالت
عادی پنهان
هستند،
شناسایی
کند.
-find-bugs
ترتیب
گذرهای
مشخصشده
را بهطور
مداوم
تصادفیسازی
کرده و روی
برنامه
آزمون اجرا
میکند تا
زمانی که
باگی پیدا
شود یا
کاربر
اجرای bugpoint را
متوقف کند.
-help
چاپ
خلاصهای
از
گزینههای
خط فرمان.
--input filename
باز کردن
filename و
بازهدایت
ورودی
استاندارد
برنامه
آزمون به
این فایل در
هنگام
اجرا.
--load plugin
بارگذاری
شیء پویای
plugin در خود
bugpoint.
این شیء
باید
گذرهای
بهینهسازی
جدیدی را
ثبت کند. پس
از
بارگذاری،
این شیء
گزینههای
خط فرمان
جدیدی برای
فعالسازی
بهینهسازیهای
گوناگون
اضافه
خواهد کرد.
برای
مشاهده
فهرست کامل
جدید
بهینهسازیها،
گزینههای
-help و
--load را
همزمان به
کار ببرید؛
برای مثال:
bugpoint --load myNewPass.so -help
--mlimit megabytes
تعیین
سقف مصرف
حافظه برای
بهینهسازی
و تولید کد.
مقدار صفر
این
محدودیت را
غیرفعال
میکند.
--output filename
هنگامی
که برنامه
آزمون در
جریان
خروجی
استاندارد
خود داده
تولید
میکند،
خروجی باید
دقیقاً با
محتویات filename
(«خروجی
مرجع» یا "reference
output") همخوانی
داشته باشد.
اگر از این
گزینه
استفاده
نکنید، bugpoint
با کامپایل
برنامه از
طریق
بکاند
«امن» ("safe") و
اجرای آن،
سعی میکند
یک خروجی
مرجع
بسازد.
--run-{int,jit,llc,custom}
هنگام
کامپایل
برنامه
آزمون، bugpoint
باید با
استفاده از
مولد کد
مشخصشده
برای آن کد
تولید کند.
این
گزینهها
به شما
امکان
میدهند به
ترتیب
مفسر،
کامپایلر JIT،
کامپایلر
بومی ایستا
یا یک دستور
سفارشی (به
--exec-command مراجعه
کنید) را
انتخاب
نمایید.
--safe-{llc,custom}
هنگام
اشکالزدایی
یک مولد کد،
bugpoint باید از
مولد کد
مشخصشده
بهعنوان
مولد کد
«امن» ("safe")
استفاده
کند. این
مولد کد
مطمئن برای
ساخت
«خروجی
مرجع» (در
صورت فراهم
نشدن آن) و
کامپایل
بخشهایی
از برنامه
که از مورد
آزمون کنار
گذاشته
میشوند به
کار میرود.
این
گزینهها
به ترتیب
امکان
انتخاب
کامپایلر
بومی ایستا
یا یک دستور
سفارشی (به
--exec-command مراجعه
کنید) را
فراهم
میآورند.
در حال حاضر
نمیتوان
از
بکاندهای
مفسر و JIT
بهعنوان
بکاندهای
«امن»
استفاده
کرد.
--exec-command command
این
گزینه
دستوری را
مشخص
میکند که
باید همراه
با
گزینههای
--run-custom و --safe-custom جهت
اجرای مورد
آزمون
بیتکد
استفاده
شود. این
قابلیت
برای
کامپایل
متقابل (cross-compilation)
مفید است.
--compile-command command
این
گزینه
دستوری را
مشخص
میکند که
باید همراه
با گزینه
--compile-custom جهت
کامپایل
مورد آزمون
بیتکد
استفاده
شود. این
دستور باید
در صورتی که
فایل «مورد
توجه» ("interesting")
باشد با یک
کد خروج
نشاندهنده
شکست، و در
غیر این
صورت با کد
خروج
موفقیتآمیز
(یعنی 0) خارج
شود (مشابه
وضعیتی که
کامپایلر
روی
ورودیهای
«مورد
توجه» کرش
کند).
این گزینه
برای
آزمودن
خروجی
کامپایلر
بدون اجرای
مراحل
پیوند (link) یا
اجرا
کاربرد
دارد. برای
تولید یک
آزمون واحد
کاهشیافته،
میتوانید
دستورالعملهای
CHECK را به مورد
آزمون
اضافه کرده
و نام
اسکریپت
اجرایی compile-command
را به این
شیوه پاس
دهید:
#!/bin/sh
llc "$@"
not FileCheck [bugpoint input file].ll < bugpoint-test-program.s
این
اسکریپت تا
زمانی که FileCheck
موفق باشد
با شکست ("fail")
مواجه
میشود. در
نتیجه
خروجی
نهایی،
کمینهترین
بیتکدی
خواهد بود
که FileCheck را با
موفقیت
میگذراند.
--safe-path path
این
گزینه مسیر
دستوری را
مشخص
میکند که
باید همراه
با گزینه
--safe-{int,jit,llc,custom} اجرا
شود.
--verbose-errors={true,false}
رفتار
پیشفرض bugpoint
این است که
هنگام
یافتن
آزمون
کاهشیافتهای
که سبب کرش
در کامپایل
میشود،
عبارت
«"<crash>"» را
چاپ میکند.
این پرچم
باعث چاپ
خروجی
برنامه
دچار کرش در
stderr میشود.
این قابلیت
برای
اطمینان از
اینکه خطای
در حال
ردیابی
همان خطای
مدنظر است و
نه خطای
متفاوتی که
تصادفاً
کامپایلر
را دچار کرش
کرده، مفید
است. مقدار
پیشفرض false
است.