2016-06-19 1 views
0

Ich versuche, meinen Code zu kompilieren und zu debuggen, läuft auf gcc 4.8.1 und mit gdb Version 7.5.1.Fehler beim Zurücksetzen des Haltepunkts 1: Zugriff auf den Speicher unter Adresse nicht möglich. Was ist der Grund für diesen Fehler

Ich bin nicht sicher, was diese Fehler verursacht, kann ich nicht einen Haltepunkt setzen kann oder auf GDB starten verwenden, alle von ihnen geben die gleiche (ähnlich) Fehler: Error in re-setting breakpoint 1: Cannot access memory at address 0xe0b01c

ich diese Antwort sah gdb error in re-settings breakpoint (cannot access memory), aber ich verwende ich nicht -fPIE, ich benutze -fPIC obwohl, und 7.7.1 hat das gleiche Problem.

Liegt dieses Problem an der gdb/gcc-Version oder an einigen Flags? Ich verwende: -g -std=c++1 -D__GCC_EXPERIMENTAL_CXX0X__=1

Antwort

0

Is this issue due to gdb/gcc version or some flags?

Sie nicht sagen, ob Sie Haltepunkt in dem Hauptprogramm einstellen, oder in einer gemeinsam genutzten Bibliothek. Die Adresse: 0xe0b01c sieht so aus, als käme sie von einer gemeinsam genutzten Bibliothek oder einer ausführbaren PIE-Datei.

In jedem Fall hat GCC-Version nichts damit zu tun, aber Ihre GDB ist ziemlich alt.

Die Standardlösung ist (gdb) start zu verwenden, dann enable der Haltepunkt wieder aktiviert (durch die Zeit, die Sie auf main stoppen, die PIE ausführbare Datei und alle direkt verknüpften gemeinsam genutzten Bibliotheken in ihre endgültigen Adressen verlegt).

+0

Ich habe versucht, (gdb) starten, die einen temporären Haltepunkt setzt und nie trifft. Temporärer Haltepunkt 2 bei 0xe0a982: Datei main.cc, Zeile 106 Fehler beim Wiederherstellen des Haltepunkts 1: Zugriff auf Speicher unter Adresse 0xe0a960 nicht möglich. Keiner der gesetzten Breakpoints traf. – Rohit

Verwandte Themen