c - er der en måde at generere en gdb-læsbar kernedump, når du kører programmer udarbejdet med MinGW?

Indlæg af Hanne Mølgaard Plasc

Problem



Jeg forsøger at fejle et Windows-program, der er udarbejdet ved hjælp af MinGWs gcc, som kun er ensbetydende med at køre udenfor af gdb (sandsynligvis nogle løbskondition ... dejlige.) Problemet er, når programmet krasjer og jeg kan ikke køre GDB, jeg kan ikke få et stakspor ... Jeg har mulighed for at åbne programmet i MSVC, når det går i stykker, men MSVC kan ikke læse gccs fejlsymboler og så stakken sporer det giver mig er ubrugelig.


Er der en måde at få Windows til at oprette et kernedump, som jeg senere kan åbne i MinGWs gdb? Alternativt er der en måde at tage MSVC's stack-spor (som har rå adresser men ingen symboler) og brug gcc til få et menneskeligt læseligt spor?

Bedste reference


windows opretter ikke kernefiler (på linux dumpes de af kernen iirc)
du kan forsøge at vedhæfte med gdb med crashdialogen åbnet, men jeg tvivler på, at det vil fungere


hvis du bruger msvc i stedet kan du oprette en minidump debuggable i visualstudio men der er ingen måde at oprette samme dump med gcc


google lavede en software, som du måske finder nyttige, men jeg er ikke sikker på, at det kan producere ting med gcc


http://code.google.com/p/google-breakpad/[2]


eller du kan indstille drmingw som jit debugger


drmingw -i


Jeg er sikker på, at det er muligt at få noget som en backtrack også på mingw, da mingw compiled llvm er i stand til at dumpe et spor


http://code.google.com/p/backtrace-mingw/[3]


ser ud til at være enklere, men jeg har ikke testet det


kompilere med -g3 (og hvis du kan -00)