Aceasta este comanda ggcov-run care poate fi rulată în furnizorul de găzduire gratuit OnWorks folosind una dintre multiplele noastre stații de lucru online gratuite, cum ar fi Ubuntu Online, Fedora Online, emulator online Windows sau emulator online MAC OS
PROGRAM:
NUME
ggcov-run - rulează un program de testare instrumentat
REZUMAT
ggcov-run [Opțiuni] [--] program argumente...
DESCRIERE
Ggcov-a alerga poate fi folosit pentru a rula un program de testare, instrumentat folosind gcc --acoperire când este construit,
sub anumite conditii. Utilizarea sa este în întregime opțională, ca comportament implicit al
Instrumentul gcc este conceput pentru a fi util în majoritatea condițiilor.
Ggcov-a alerga ia drept argumente un program și argumentele lui și rulează programul cu unele
modificări comportamentale (în felul strace). Dacă nu i se oferă opțiuni, programul este
rulează fără modificări.
GCDA FILE LOCATII
O problemă cu comportamentul implicit al instrumentării gcc implică locațiile
a datelor de acoperire. Programele de testare instrumentate vor citi, modifica și rescrie .gcda fișiere
când se iese programul. Locațiile acelor fișiere sunt alese de compilator la
timpul de compilare; fișierele vor fi plasate în directorul de compilare lângă cel corespunzător .c
fişier. Compilatorul salvează aceste informații în fișierul .o fişier. De exemplu, dacă compilați
fișierul foo.c în director /home/me/software/quux, apoi numele căii
/home/me/software/quux/foo.gcda este codificat în programul de testare. Desigur, programe
care examinează datele de acoperire, cum ar fi ggcov, căutați .gcda dosare acolo.
Pentru multe aplicații de testare, acest lucru funcționează bine. Problemele apar însă atunci când
programul instrumentat trebuie să fie rulat pe o altă mașină, sau ca alt userid, sau
directorul de compilare este volatil sau în orice alt scenariu de testare în care directorul de compilare
fie nu există, fie nu poate fi scris de către programul de testare care rulează. În aceste cazuri, dumneavoastră
trebuie să faceți o mișcare ad-hoc a fișierelor înainte și după testare pentru a obține fișierul .gcda
fișiere în locația potrivită pe mașina potrivită, cu permisiunile potrivite.
O abordare mai bună este utilizarea ggcov-run cu --gcda-prefix opțiune. Această opțiune ia ca
o valoare un director care este adăugat înaintea numelui de cale al fiecăruia .gcda depuneți programul de testare
accese. Deci, continuând exemplul de mai sus, rulând programul de testare astfel:
me$ ggcov-run --gcda-prefix=/tmp/gcda ./testprogram test-args...
va avea ca rezultat o .gcda fișier în care este scris /tmp/gcda/home/me/software/quux/foo.gcda.
Arborele de directoare va fi creat automat ca .gcda fișierele sunt scrise, iar
permisiunile pentru fișiere și directoare vor permite accesul de citire pentru toți utilizatorii.
Rețineți că ggcov are, de asemenea, un --gcda-prefix opțiune care poate fi folosită pentru a căuta .gcda
fișiere în alte locații decât directorul de compilare. În exemplul nostru:
me$ cd /home/me/software/quux
me$ ggcov --gcda-prefix=/tmp/gcda -r .
OPŢIUNI
-p dir, --gcda-prefix=dir
Faceți ca programul de testare și orice proces secundar pe care îl rulează să redirecționeze orice absolut
nume de fișier care se termină în .gcda la un nume de fișier de sub director dir.
Avertismente
Ggcov-a alerga folosește un shim de bibliotecă partajată și LD_PRELOAD caracteristică a linker-ului runtime către
interceptează anumite apeluri de bibliotecă de către programul instrumentat. Pentru securitate foarte bună
motive, LD_PRELOAD este dezactivat pentru programele setuid sau setgid. Deci, dacă programul dvs. de testare
se bazează pe un comportament setuid, ggcov-run nu va funcționa. O soluție posibilă este utilizarea
sudo or su pentru a schimba userid înainte de utilizare ggcov-run, Cum ar fi aceasta:
me$ sudo -u otheruser ggcov-run --gcda-prefix=/foo ./testprogram
Utilizați ggcov-run online folosind serviciile onworks.net