Page 1 of 2
Debuging MinGW C++ with gdb
Posted: Wed Feb 18, 2009 2:13 am
by wittend
I am attempting to debug a MinGW wxWidgets app built using the default debug settings. I installed gdb separately from MinGW (most recent) and it seems to work within the IDE. But it ignores my breakpoints, and will only occasionally show me the current line. I also have some difficulty finding errors. I think that it used to colorize the error messages and allow me to jump to them, but I'm not sure.
Other than these issues, Codelite is serving me well. It is an excellent and extremely useful package.
I am using build 1.0.2759 of Codelite.
Dave
(P.S.: When I try to search the forum on 'gdb', 'debug', or 'debugger' It tells me that these words are too common, and shows no results)
Re: Debuging MinGW C++ with gdb
Posted: Wed Feb 18, 2009 12:13 pm
by eranif
Somethings to try:
- Make sure there are no spaces in the project path
- If u are using new g++, try to recompile your project with -gstab instead of -g
- enable debugger full logging (settings -> debugger settings -> enable full logging)
- rebuild your project with the new -gstab (for g++ 4.0 and up)
Keep me updated
Eran
Re: Debuging MinGW C++ with gdb
Posted: Wed Feb 18, 2009 7:58 pm
by wittend
Thank you. Eliminating a space in a folder name a couple of levels above my project corrected both the debugging and the error colorizing (etc.) problems.
Again, thank you for your excellent software and as well as your support.
dave
Re: Debuging MinGW C++ with gdb
Posted: Mon Mar 09, 2009 1:43 pm
by rthriller
This solution didn't work for me!
In my case, debugger works well, but does not show the current line!
I am using CodeLite build 1.0.2759 with Gcc 4.3.2
When I rebuild using -gstab I get this output:
----------Build Started--------
"c:/gcc/bin/make.EXE" -j 1 -f "boo_wsp.mk"
----------Building project:[ test - Debug ]----------
g++ -c "D:/dev/boo/test/main.cpp" -gstab -o ./Debug/main.o "-I."
cc1plus.exe: error: unrecognised debug output level "stab"
c:\gcc\bin\make.EXE[1]: *** [Debug/main.o] Error 1
make.EXE: *** [All] Error 2
----------Build Ended----------
0 errors, 0 warnings
Re: Debuging MinGW C++ with gdb
Posted: Tue Mar 10, 2009 7:03 pm
by rthriller
Any help? eranif?
Re: Debuging MinGW C++ with gdb
Posted: Tue Mar 10, 2009 7:21 pm
by eranif
Well, it seems that the compiler used by codelite does not recognise the -gstab option.
Have u tried with only -g? it does not work?
If it still does not work and you are not able to debug - I suggest that you try and debug it from the command line to make sure that this is a gdb issue (I am 99% sure that this is a gdb/g++ issue)
Eran
Re: Debuging MinGW C++ with gdb
Posted: Tue Mar 10, 2009 7:43 pm
by rthriller
Debugger works with -g option, but the éditor does not show the current line.
Re: Debuging MinGW C++ with gdb
Posted: Wed Mar 11, 2009 1:27 pm
by eranif
please enable the debugger logging from "settings -> debuggers -> enable full logging"
debug your application again and please paste here the entire content of the "Debug" tab
Eran
Re: Debuging MinGW C++ with gdb
Posted: Wed Mar 11, 2009 1:38 pm
by rthriller
Here it is
Code: Select all
DEBUG>>set new-console on
DEBUG>>set unwindonsignal on
DEBUG>>set width 0
DEBUG>>set height 0
-break-insert "D:/dev/boo/test/main.cpp:135"
DEBUG>>00000006-break-insert "D:/dev/boo/test/main.cpp:135"
Debug session started successfully!
DEBUG>>00000007-exec-run
DEBUG>>~"GNU gdb 6.8.0.20080328-cvs (cygwin-special)\n"
GNU gdb 6.8.0.20080328-cvs (cygwin-special)
DEBUG>>~"Copyright (C) 2008 Free Software Foundation, Inc.\n"
Copyright (C) 2008 Free Software Foundation, Inc.
DEBUG>>~"License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>\n"
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
DEBUG>>~"This is free software: you are free to change and redistribute it.\n"
This is free software: you are free to change and redistribute it.
DEBUG>>~"There is NO WARRANTY, to the extent permitted by law. Type \"show copying\"\n"
There is NO WARRANTY, to the extent permitted by law. Type "show copying"
DEBUG>>~"and \"show warranty\" for details.\n"
and "show warranty" for details.
DEBUG>>~"This GDB was configured as \"i686-pc-cygwin\"...\n"
This GDB was configured as "i686-pc-cygwin"...
DEBUG>>(gdb)
DEBUG>>&"set new-console on\n"
set new-console on
DEBUG>>^done
DEBUG>>(gdb)
DEBUG>>&"set unwindonsignal on\n"
set unwindonsignal on
DEBUG>>^done
DEBUG>>(gdb)
DEBUG>>&"set width 0\n"
set width 0
DEBUG>>^done
DEBUG>>(gdb)
DEBUG>>&"set height 0\n"
set height 0
DEBUG>>^done
DEBUG>>(gdb)
Debuggee process ID: 3268
DEBUG>>00000006^done,bkpt={number="1",type="breakpoint",disp="keep",enabled="y",addr="0x0040165a",func="main",file="D:/dev/boo/test/main.cpp",fullname="/cygdrive/d/dev/boo/test/main.cpp",line="135",times="0"}
Found the breakpoint ID!
Storing debugger breakpoint Id=1
Successfully set breakpoint 1 at: D:\dev\boo\test\main.cpp:135
DEBUG>>(gdb)
DEBUG>>00000007^running
Continuing...
DEBUG>>(gdb)
DEBUG>>~"[New thread 3268.0x1b8]\n"
[New thread 3268.0x1b8]
DEBUG>>00000007*stopped,reason="breakpoint-hit",bkptno="1",thread-id="1",frame={addr="0x0040165a",func="main",args=[],file="D:/dev/boo/test/main.cpp",fullname="/cygdrive/d/dev/boo/test/main.cpp",line="135"}
DEBUG>>00000008-file-list-exec-source-file
DEBUG>>(gdb)
DEBUG>>00000008^done,line="135",file="D:/dev/boo/test/main.cpp",fullname="/cygdrive/d/dev/boo/test/main.cpp",macro-info="0"
DEBUG>>00000009-stack-list-arguments 1 0 0
DEBUG>>00000010-stack-list-locals --all-values
DEBUG>>(gdb)
DEBUG>>00000009^done,stack-args=[frame={level="0",args=[]}]
DEBUG>>(gdb)
DEBUG>>00000010^done,locals=[{name="i",value="4216664"}]
DEBUG>>(gdb)
Re: Debuging MinGW C++ with gdb
Posted: Wed Mar 11, 2009 4:32 pm
by eranif
Ok, this helps a lot:
The title is misleading, it says "Debuging MinGW C++ with gdb" however, your gdb is
Cygwin gdb and
NOT MinGW:
GNU gdb 6.8.0.20080328-cvs (cygwin-special)
The problem seems more clear now, since the debugger is configured to work with cygwin it results in file paths which can not been find unless you are the cygwin bash console:
DEBUG>>00000006^done,bkpt={number="1",type="breakpoint",disp="keep",enabled="y",addr="0x0040165a",func="main",file="D:/dev/boo/test/main.cpp",fullname="/cygdrive/d/dev/boo/test/main.cpp",line="135",times="0"}
Please make sure that codelite is using the MinGW gdb - if you dont have one, download codelite with the mingw bundle.
Eran