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.
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.
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
Tags und Links valgrind