Il profiler GNU standard, gprof, è disponibile per la maggior parte dei sistemi simili a Unix. gprof fa parte della toolchain GNU ed è stato uno dei primi strumenti open source per la profilazione del codice. Combina la strumentazione in fase di compilazione e le tecniche di campionamento, utilizzando una frequenza di campionamento di 100 Hz. Ha il vantaggio di non richiedere il supporto del kernel.
Per preparare un programma per la profilazione con gprof, aggiungi -pg ai flag di compilazione e collegamento, che inserisce codice che raccoglie informazioni sull'albero delle chiamate nel preambolo della funzione. Quando esegui il programma, i campioni vengono raccolti e archiviati in un buffer, che viene scritto in un file denominato gmon.out al termine del programma.
se riscontri un errore di seguito durante l'esecuzione del comando gprof:
puoi provare a installare il pacchetto binutils come mostrato di seguito in base alla tua scelta di distribuzione.
Distribuzione | Comando |
---|---|
OS X | brew install binutils |
Debian | apt-get install binutils |
Ubuntu | apt-get install binutils |
Alpino | apk aggiunge binutils |
Arci Linux | utility pacman -S |
Kali Linux | apt-get install binutils |
CentOS | yum install binutils |
Fedora | dnf install binutils |
Raspbian | apt-get install binutils |
gprof visualizza i dati del profilo per un file oggetto. La tabella dei simboli del file viene confrontata con il file del profilo del grafico di chiamata gmon.out (creato in precedenza compilando con gcc -pg). Molte delle opzioni di gprof accettano un argomento di specifica del simbolo, o symspec, per limitare l'opzione a file o funzioni specificati. Il symspec può essere un nome file, una funzione o un numero di riga. Può anche essere indicato come nomefile:funzione o nomefile:numerolinea per specificare una funzione o un numero di riga in un file specifico. gprof si aspetta che i nomi dei file contengano un punto e le funzioni non contengano un punto.