bugpoint - kézikönyv, opciók, parancspéldák


NÉV

bugpoint - automatikus teszteset-csökkentő eszköz

SZINOPSZIS

bugpoint [options] [input LLVM ll/bc files] [LLVM passes] --args program arguments

LEÍRÁS

A hibapont leszűkíti a problémák forrását az LLVM-eszközökben és -kártyákban. Háromféle hiba elhárítására használható: optimalizáló összeomlás, optimalizálók félrefordítása vagy rossz natív kódgenerálás (beleértve a statikus és JIT fordítók problémáit). Célja, hogy a nagy teszteseteket kicsire, hasznosra csökkentse. A hibapont tervezésével és belső működésével kapcsolatos további információkért, valamint a bugpoint használatára vonatkozó tanácsokért tekintse meg az LLVM hibapont eszköz: tervezés és használat című részt az LLVM disztribúcióban.

LEHETŐSÉGEK

--additional-so library

Töltse be a dinamikus megosztott objektum könyvtárat a tesztprogramba, amikor az fut. Ez akkor hasznos, ha olyan programokat keres, amelyek futtatása nem LLVM könyvtáraktól függ (például az X vagy curses könyvtáraktól).

--append-exit-code={true,false}

Adja hozzá a tesztprogramok kilépési kódját a kimeneti fájlhoz, így a kilépési kód megváltoztatása teszthibának minősül. Alapértelmezés szerint hamis.

--args program args

Adja át a --args után megadott összes argumentumot a tesztprogramnak, amikor az fut. Vegye figyelembe, hogy ha a program args bármelyike "-" karakterrel kezdődik, akkor a következőket kell használnia:

bugpoint [bugpoint args] --args -- [program args]

A közvetlenül az --args opció utáni "--" jelzi a bugpointnak, hogy fontolja meg a "-" kezdetű opciókat. ", hogy az --args opció része legyen, nem pedig magát a hibapontot.

--tool-args tool args

A --tool-args után megadott összes argumentumot adja át a tesztelés alatt álló LLVM-eszköznek (llc, lli stb.), amikor az fut. Ezt a lehetőséget a következő módon kell használnia:

bugpoint [bugpoint args] --tool-args -- [tool args]

A közvetlenül a --tool-args opció utáni "--" jelzi a bugpointnak, hogy fontolja meg a "- " karakterrel kezdődő opciókat. ", hogy a --tool-args opció része legyen, nem pedig magát a hibapontot. (Lásd fent a --args részt.)

--safe-tool-args tool args

Adja át a --safe-tool-args után megadott összes argumentumot a "safe" végrehajtási eszköznek.

--gcc-tool-args gcc tool args

Adja át a --gcc-tool-args után megadott összes argumentumot a gcc meghívásához.

--opt-args opt args

Adja át az --opt-args után megadott összes argumentumot az opt meghívásához.

--disable-{dce,simplifycfg}

Ne futtassa a megadott meneteket a tesztprogram tisztítására és méretének csökkentésére. Alapértelmezés szerint a hibapont ezeket az engedélyeket belsőleg használja, amikor megpróbálja csökkenteni a tesztprogramokat. Ha hibát próbál találni az egyikben, a hibapont összeomolhat.

--enable-valgrind

Használja a valgrindot az optimalizálás fázisában a hibák keresésére. Ez lehetővé teszi, hogy a hibapont megtalálja a memória helytelen kezeléséből adódó, egyébként tünetmentes problémákat.

-find-bugs

Folyamatosan véletlenszerűsítse a megadott passzokat, és futtassa őket a tesztprogramon, amíg hibát nem talál, vagy amíg a felhasználó meg nem szünteti a hibapontot.

-help

Nyomtassa ki a parancssori opciók összefoglalóját.

--input filename

Nyissa meg a fájlnév elemet, és irányítsa át a tesztprogram szabványos bemenetét, amikor az fut, hogy abból a fájlból származzon.

--load plugin

Töltse be a dinamikus objektum beépülő modulját magába a hibapontba. Ennek az objektumnak új optimalizálási lépéseket kell regisztrálnia. Betöltés után az objektum új parancssori beállításokat ad hozzá, hogy lehetővé tegye a különféle optimalizálásokat. Az optimalizálások új teljes listájának megtekintéséhez használja együtt a -help és a --load opciókat; például:

bugpoint --load myNewPass.so -help
--mlimit megabytes

Meghatározza az optimalizálás és a kódolás memóriahasználatának felső határát. Állítsa nullára a korlát letiltásához.

--output filename

Amikor a tesztprogram kimenetet állít elő a szabványos kimeneti adatfolyamán, annak meg kell egyeznie a fájlnév (a "referencia kimenet") tartalmával. Ha nem használja ezt az opciót, a hibapont megpróbál referenciakimenetet generálni úgy, hogy lefordítja a programot a "biztonságos" háttérprogrammal, és futtatja azt.

--run-{int,jit,llc,custom}

Amikor a tesztprogramot lefordítják, a hibapontnak kódot kell generálnia a megadott kódgenerátor segítségével. Ezek az opciók lehetővé teszik az értelmező, a JIT fordító, a statikus natív kódfordító vagy egy egyéni parancs (lásd: --exec-command) kiválasztását.

--safe-{llc,custom}

A kódgenerátor hibakeresése során a hibapontnak a megadott kódgenerátort kell használnia „biztonságos” kódgenerátorként. Ez egy jól ismert kódgenerátor, amelyet a "referenciakimenet" generálására használnak, ha az nincs megadva, és a program azon részeit fordítja le, amelyek ki vannak zárva a tesztesetből. Ezek a beállítások lehetővé teszik a statikus natív kódfordító vagy egyéni parancs kiválasztását (lásd: --exec-command). Az interpreter és a JIT háttérprogramok jelenleg nem használhatók "biztonságos" háttérként.

--exec-command command

Ez a beállítás határozza meg a --run-custom és --safe-custom opciókkal használandó parancsot a bitkód teszteset végrehajtásához. Ez hasznos lehet keresztösszeállításnál.

--compile-command command

Ez a beállítás határozza meg a --compile-custom opcióval együtt használandó parancsot a bitkód teszteset fordításához. A parancsnak hibás kilépési kóddal kell kilépnie, ha a fájl "érdekes", ellenkező esetben pedig sikeres kilépési kóddal (azaz 0) kell kilépnie (ez ugyanaz, mintha "érdekes" bemeneteken összeomlott volna).

Ez hasznos lehet a fordító kimenetének teszteléséhez hivatkozási vagy végrehajtási szakaszok futtatása nélkül. Csökkentett egységteszt létrehozásához hozzáadhat CHECK direktívákat a tesztesethez, és átadhatja a végrehajtható fordítási parancsszkript nevét a következő formában:

#!/bin/sh
llc "$@"
not FileCheck [bugpoint input file].ll < bugpoint-test-program.s

Ez a szkript "meghibásodik", amíg a FileCheck megfelel. Így az eredmény a FileChecken átmenő minimális bitkód lesz.

--safe-path path

Ez a beállítás határozza meg a parancs elérési útját a --safe-{int,jit,llc,custom} kapcsolóval.

--verbose-errors={true,false}

A hibapont alapértelmezett viselkedése a „<összeomlás>” kinyomtatása, ha olyan csökkentett tesztet talál, amely összeomlik a fordításban. Ez a jelző kiírja az összeomló program kimenetét az stderr-be. Ez azért hasznos, hogy megbizonyosodjon arról, hogy ugyanazt a hibát követi nyomon, és nem egy másik hibát, amely a fordító összeomlásakor is előfordul. Alapértelmezés szerint hamis.

KILÉPÉSI ÁLLAPOT

Ha a hibapontnak sikerül hibát találnia, akkor 0-val lép ki. Ellenkező esetben, ha hiba történik, akkor nullától eltérő értékkel lép ki.

LÁSD MÉG

opt(1)

SZERZŐ

Az LLVM csapata karbantartja (https://llvm.org/).

SZERZŐI JOG

2003-2023, LLVM projekt