Files |  Tutorials |  Articles |  Links |  Home |  Team |  Forum |  Wiki |  Impressum

Aktuelle Zeit: Fr Jul 04, 2025 14:41

Foren-Übersicht » Programmierung » Allgemein
Unbeantwortete Themen | Aktive Themen



Ein neues Thema erstellen Auf das Thema antworten  [ 6 Beiträge ] 
Autor Nachricht
BeitragVerfasst: Sa Jul 30, 2011 14:35 
Offline
DGL Member

Registriert: Di Okt 13, 2009 17:25
Beiträge: 365
Programmiersprache: C++
Hallo,
in meinen CodeBlocks-Projekten habe ich ein imho sehr merkwürdiges Problem. Und zwar meldet der Debugger ein SIGTRAP genau dann, wenn ich einen Breakpoint setze, während das Programm läuft. Wenn ich einen Breakpoint hinzufüge, während das Programm durch einen anderen pausiert wird, führt das nicht zu einem SIGTRAP. Die Breakpoints funktionieren jedoch immer, egal ob mit oder ohne SIGTRAP gesetzt.

Wenn ich das Programm gewaltsam mit dem Stop-Button vom Debugger abschieße, gibt es ebenfalls ein SIGTRAP -- es sei denn, das Programm pausiert gerade.

Kennt das jemand von euch vielleicht? Ist es vielleicht gar nicht vorgesehen, dass man Breakpoints definiert, während das Programm noch "voll in Fahrt" ist? Oder kann es irgendwie doch an meinem Code liegen? Ich benutzte übrigens CodeBlocks 10.05 mit MinGW, falls das eine Rolle spielt. Ob Multithreading verwendet wird oder nicht spielt offenbar keine Rolle.
Zum Schluss noch das Log vom Debugger:
Der Debugger beim Setzen eines Breakpoints, während das Programm noch läuft hat geschrieben:
Trying to pause the running process...
Continuing...
Program received signal SIGTRAP, Trace/breakpoint trap.
In ntdll!DbgUiConvertStateChangeStructure () (C:\Windows\system32\ntdll.dll)

Der Debugger beim Eliminieren des Child Processes hat geschrieben:
Trying to pause the running process...
Program received signal SIGTRAP, Trace/breakpoint trap.
In ntdll!DbgUiConvertStateChangeStructure () (C:\Windows\system32\ntdll.dll)


Edit: Ich kann das ganze sogar mit einem einfachen Hello World-Programm reproduizieren, es liegt also offenbar nicht am Code. :?

Danke fürs Durchlesen und Antworten! :)


Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: Sa Jul 30, 2011 14:59 
Offline
DGL Member
Benutzeravatar

Registriert: Do Sep 02, 2004 19:42
Beiträge: 4158
Programmiersprache: FreePascal, C++
Interessantes Problem, habe mal Google angeworfen. Ich hatte sowas ähnliches mal als ich versucht habe, ein Windowsprogramm zu … ähm … untersuchen… (*hust*). Da wurden die SIGTRAPS aber glaube ich mit absicht geworfen um die Leute zu ärgern…

Aber dieser Stackoverflow-Thread könnte dir helfen: Scheint so als ob du ganz sicher stellen solltest, dass nicht versehentlich irgendwo die falsche libc eingebunden wird. Sonst fliegt dir die Speicherverwaltung um die Ohren. Wobei es mich schon wundert, dass das nur nach aktionen mit dem Debugger passiert. Also womöglich eher nicht die Lösung.

greetings

_________________
If you find any deadlinks, please send me a notification – Wenn du tote Links findest, sende mir eine Benachrichtigung.
current projects: ManiacLab; aioxmpp
zombofant networkmy photostream
„Writing code is like writing poetry“ - source unknown


„Give a man a fish, and you feed him for a day. Teach a man to fish and you feed him for a lifetime. “ ~ A Chinese Proverb


Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: Sa Jul 30, 2011 16:13 
Offline
DGL Member

Registriert: Di Okt 13, 2009 17:25
Beiträge: 365
Programmiersprache: C++
Eventuell hast du mir gerade sehr geholfen. :wink:
Calmarius auf Stackoverflow hat geschrieben:
I know that SIGTRAP-s are thrown when the program hits a breakpoint
Wenn der Debugger das SIGTRAP auslöst, um anhalten zu können, ist das natürlich kein Fehler. Allerdings gibt es ja kein SIGTRAP, wenn der Breakpoint während einer Pause gesetzt wurde, weshalb ich die Aussage des Calmarius anzweifeln möchte. Weiß da jemand mehr?

Libraries linke ich übrigens gar keine, jedenfalls nicht im Hello World Programm, wo das Phänomen ja auch auftritt.


Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: Sa Jul 30, 2011 17:03 
Offline
DGL Member
Benutzeravatar

Registriert: Do Sep 02, 2004 19:42
Beiträge: 4158
Programmiersprache: FreePascal, C++
Naja, aber eigentlich sieht man die SIGTRAPs nicht, zumindest nicht, wenn sie für Breakpoints stehen. Deswegen sollte das kein Problem darstellen.
Ok, möglicherweise sendet der Debugger nen SIGTRAP an das Programm, um es anzuhalten und dann breakpoints zu setzen etc.. Das würde mit deinen Beobachtungen überein stimmen.

greetings

_________________
If you find any deadlinks, please send me a notification – Wenn du tote Links findest, sende mir eine Benachrichtigung.
current projects: ManiacLab; aioxmpp
zombofant networkmy photostream
„Writing code is like writing poetry“ - source unknown


„Give a man a fish, and you feed him for a day. Teach a man to fish and you feed him for a lifetime. “ ~ A Chinese Proverb


Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: Mo Aug 29, 2011 16:41 
Offline
DGL Member

Registriert: Di Okt 13, 2009 17:25
Beiträge: 365
Programmiersprache: C++
Nach langer Zeit... *bump*

Hier arbeitet doch bestimmt noch jemand mit Code::Blocks? Wäre nett, wenn diejenigen mal kurz was dazu schreiben könnten. Dann könnte man wenigstens klären, ob das Verhalten normal ist oder nicht. Danke!


Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: Do Sep 01, 2011 09:29 
Offline
DGL Member
Benutzeravatar

Registriert: Di Mai 18, 2004 16:45
Beiträge: 2623
Wohnort: Berlin
Programmiersprache: Go, C/C++
Der CodeBlocks Debugger hat so einige Macken, neben der beschriebenen gibt es noch z.B. Breakpoint wird ignoriert, Symbole können nicht angeschaut werden obwohl keine Optimierung an ist und man noch im Scope ist, random abstürze, debugging wird mit jeden mal immer langsamer und noch ein bisschen. CodeBlocks ist echt cool und man kann mit den Problemen leben, selbst auf Arbeit nutzt ich es jeden Tag.

_________________
"Wer die Freiheit aufgibt um Sicherheit zu gewinnen, der wird am Ende beides verlieren"
Benjamin Franklin

Projekte: https://github.com/tak2004


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 6 Beiträge ] 
Foren-Übersicht » Programmierung » Allgemein


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 3 Gäste


Du darfst keine neuen Themen in diesem Forum erstellen.
Du darfst keine Antworten zu Themen in diesem Forum erstellen.
Du darfst deine Beiträge in diesem Forum nicht ändern.
Du darfst deine Beiträge in diesem Forum nicht löschen.
Du darfst keine Dateianhänge in diesem Forum erstellen.

Suche nach:
Gehe zu:  
  Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de
[ Time : 0.007s | 14 Queries | GZIP : On ]