2017-05-31 4 views
0

Ich implementierte das Programm, das mmap() Systemaufruf verwendet, aber Segmentierung Fehler tritt während der Prozesslaufzeit.Das Ausführen eines Programms mit Segmentierungsfehler funktioniert gut mit gdb

Also lief ich dieses Programm mit gdb, aber als ich es tat, es funktionierte gut ohne Segmentfehler.

Ich frage mich, ob es möglich ist, dass das Ausführen mit gdb Segmentfehler beeinträchtigen kann. Können Sie mir davon erzählen?

+0

welche Sprache? C/C++? Was ist der relevante Code? –

Antwort

0

Wenn es möglich ist, dass das Ausführen mit gdb den Segmentfehler beeinflussen kann.

Eine Möglichkeit: GDB deaktiviert Adress-Randomisierung (um die Reproduktion des Fehlers zu vereinfachen). Sie können wieder aktivieren mit:

(gdb) set disable-randomization off 

GDB auch Timing von Threads beeinflussen können, aber du hast nicht Fäden erwähnen, so dass es weniger wahrscheinlich ist.

0

Wahrscheinlich rufen Sie irgendwo im Code Undefiniertes Verhalten auf, das C- oder C++ - Regeln verletzt. Versuchen Sie, das Programm unter Valgrind auszuführen. Es sollte Ihnen mehr Informationen geben, wenn dies der Fall ist.

Verwandte Themen