5 Stimmen

erste Funktion unbekannt

Ich mache erste Schritte mit KCachegrind/Cachegrind . Ich laufe Cachegrind auf Rechner A, dann habe ich die Ausgabedateien auf Rechner B verschoben, wo ich KCachegrind installiert habe.

Ich weiß nicht, warum, aber bei mir wird die erste Funktion immer als (unknown) und das ist schlecht, denn ich habe dort die 19.46 der Verwendung wie in der Abbildung dargestellt. Was mache ich falsch? Soll die Ausgabedatei alle notwendigen Informationen enthalten?

  1. Ich verwende das Kompilierungskennzeichen -g Ist das genug? Ich würde übrigens gerne die optimierte Version verwenden, aber ich weiß nicht, ob sie funktioniert.
  2. Könnte es sein, dass es am besten ist, wenn ich Kcachegrind auf demselben Rechner ausführe, auf dem ich auch mein Profiling mache?

enter image description here

1voto

mmlb Punkte 857

Ich würde prüfen, wann diese "unbekannte" Funktion während der Laufzeit Ihres Programms aufgerufen wird. Wenn die unbekannte Funktion vor main aufgerufen wird, dann ist es nicht Ihr Code und Sie sollten sich nicht wirklich Sorgen machen. Wenn sie nach der Hauptfunktion aufgerufen wird, dann könnte es immer noch nicht Ihr Code sein, aber das muss noch genauer untersucht werden.

0voto

BЈовић Punkte 59375

Binden Sie die Debug-Version aller Bibliotheken? Wenn nicht, sehen Sie nicht, wo ein Funktionsaufruf endet.

  1. Ja -g reicht aus, um Debugsymbole in Ihrer Bibliothek zu erhalten. Wenn Sie etwas debuggen wollen, ist es besser, keine Optimierung zu verwenden.
  2. Wenn die Umgebung dieselbe ist, sollte das keine Rolle spielen.

0 Stimmen

Mmhh...gute Frage. Ich verwende einfach -pthread als Option und andere Bibliotheken, die bereits mit -g gebaut werden. Ich nehme an, dass der Compiler dies für mich tun wird, wenn ich -g gebe...liege ich falsch?

0 Stimmen

@Abruzzo Ich glaube, das ist nicht genug, aber ich bin mir nicht sicher.

0voto

czar x Punkte 438

Haben Maschine A und Maschine B die gleiche Architektur, z. B. x86?

Es würde Probleme geben, wenn Sie nicht die gleiche Architektur haben, da Kcachegrind keine Informationen zu einer Funktion hat, die auf dem aktuellen Rechner nicht verfügbar ist.

Code-Profiler für ARM

1 Stimmen

Die Frage wurde vor fast einem Jahr gestellt. Ich sage es nur.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X