From: Aaron W. L. <aar...@aa...> - 2008-06-06 05:25:48
|
Scott Meyers wrote: > Aaron W. LaFramboise wrote: >> If that doesn't help, we might be able to get a vague idea of the >> problem by using some other debugger just to catch the fault (assuming >> there is one), and generate a backtrace. OllyDbg is decent. WinDbg or >> MS Studio debugger will work also. > Is there any > chance somebody can tell me how to do it (or can point me to someplace that > explains it)? > > Failing that, I'm happy to download OllyDbg and give it a try, though, again, > I'll need some help getting started... OllyDbg will probably be easiest. It is far superior to Microsoft's debugger (or other free alternatives) when no debugging symbols are available. 1) Go to <http://www.ollydbg.de/>, hit Download, and get a copy of "OllyDbg 1.10." 2) Extract it somewhere, and run the main executable. It has a fairly standard low-level debugger interface. 3) Open the gcc.exe executable, and before you hit 'Open,' make sure to type in a command line. There isn't a way to set a meaningful working directory, so you might have to fully-qualify or something. After its open, you should see a new console window, as gcc.exe is running and paused at its entry point. 4) Use Debug>>>Run to get things running, and you should be able to run for a while, then crash or terminate. 5) The exit code or exception type will be noted at the bottom of the main window in the status bar. That's the important bit. Beyond the actual fault type, its good to know where it crashed. That will be the EIP value in the Registers window; thats a pointer to the top frame. You can get pointers to each parent frame from the 'Call Stack' window. All of the frame pointers that are in GCC itself should look like 004XXXXX, such as 00402293. 6) These addresses can be translated to file/line pairs with addr2line, which you should have in your MinGW installation: $ addr2line --exe=gcc.exe 00402293 ../../svn/gcc/gcc.c:5993 $ Thanks a lot for your persistence here. This looks like a nasty bug whatever it is. |