Fa gcov dare il codice analisi di copertura per il codice in linguaggio assembly
-
21-09-2019 - |
Domanda
Ho un'applicazione che costruisco con gcc su host Linux per ARM processore target. Questo eseguibile braccio generato eseguo su un bordo di sviluppo ARM ho. Voglio fare qualche analisi della copertura del codice:
- Sarà gcov copertura del codice spettacolo se ho file di origine assemblaggio ARM nel mio ambiente di build?
- Se il mio ambiente di build ha alcuni file di origine assembly x86, poi sarà gcov mostrano i dati di code coverage?
Grazie. -AD.
Soluzione
Per quanto ne so, gcov opere di pre-elaborazione vostro C o C ++ di codice sorgente. Se si dispone di file di lingua assemblaggio puri, non penso mai gcov li vede.
Se è così, sarei sorpreso se si capisce come inserire in sicurezza codice nel codice assembly arbitrario-bersaglio, con ARM essere abbastanza comune in modo c'è una debole possibilità. Il problema con il codice assembly instrumentating è il test di codice sonda copertura si possono richiedere i registri, e non v'è un modo sicuro per sapere, per un pezzo arbitraria di assemblatori, a) quali registri sono disponibili, e b) se c'è un'istruzione inserita, sarà qualche altra istruzione rompere a causa dello spazio extra (per esempio, un salto cablata relativa attraverso l'istruzione inserita).