Debuggen unter Linux mit core-dumps

Was sind die 'best practices', wenn es um debugging-core-dumps mit GDB?

Derzeit stehe ich vor einem problem:

  • Die release-version meiner Anwendung kompiliert wird, ohne die '-g' - compiler-flag.
  • Die debug-version meiner Applikation (kompiliert mit '-g') archiviert (zusammen mit dem Quellcode und eine Kopie der release-binary).

Kürzlich, wenn ein user gab mir ein core dump habe ich versucht zu Debuggen es mit

gdb --core=./core.pid ./my_app_debug-bin

Der Kern wurde erstellt von my_app_release-bin. Es scheint eine Art Konflikt zwischen der core-Datei und die binäre.

Auf der anderen Seite, wenn ich versuche

gdb --core=./core.pid ./my_app_release-bin

den Kern passt, aber ich bin nicht in der Lage zu bekommen, source-code-Zeile, die zahlen (ich bekomme zwar die Funktion Namen).

Ist es das, was praktiziert wird? Weil ich fühle, ich bin hier etwas fehlt.

  • Nettes extra tagging im Frage-Titel, ich meine es ist nicht so, SO hat gebaut-in versehen...
Schreibe einen Kommentar