Valgrind auf eine bestimmte Funktion beschränken

8

Ich habe ein großes Programm zum Laufen. Mit Valgrind dauert es Stunden und Stunden zu laufen. Ich habe gehört, dass es etwas gibt, das wir im Programm als Valgrind für eine bestimmte Funktion bezeichnen können. Und der Rest des Programms wird normal ausgeführt (ohne valgrind env). Kann mir jemand dabei helfen? Ich habe versucht, es über das Internet zu suchen, möglicherweise fehlt mir der Begriff zu suchen.

    
NinjaCoder 08.06.2011, 14:43
quelle

2 Antworten

8

Alles hängt davon ab, welches Werkzeug Sie verwenden möchten. Für Callgrind (der Profiler in Valgrind) gibt es eine Option --toggle-collect = Funktion, mit der Sie Informationen innerhalb einer bestimmten Funktion und allen ihren untergeordneten Elementen sammeln können.

Wenn das Tool, an dem Sie interessiert sind, memcheck ist (zum Erfassen von Lecks / Speicherfehlern), gibt es keine Befehlszeilenoption.

    
Rob Bradford 13.10.2011, 16:27
quelle
1

Googlen Sie nur "valgrind profile specific function" und gehen Sie "I feel lucky"

  

Zusätzlich zur Aktivierung der Instrumentierung müssen Sie auch die Ereigniserfassung für die Teile aktivieren   des Programms, an dem Sie interessiert sind. Standardmäßig ist die Ereigniserfassung überall aktiviert.   Sie können die Sammlung auf eine bestimmte Funktion beschränken, indem Sie --toggle-collect = function verwenden. Dieser Wille   Schalten Sie den Sammlungsstatus beim Eingeben und Verlassen der angegebenen Funktionen um. Wenn diese Option   In der Tat ist der Standard-Sammlungsstatus beim Programmstart "aus". Nur Ereignisse passieren   während des Laufens innerhalb der gegebenen Funktion wird gesammelt. Rekursive Aufrufe des gegebenen   Funktion löst keine Aktion aus.

Weitere hier

    
Fredrik Pihl 08.06.2011 14:57
quelle

Tags und Links