The complaint is on debugging structures returned by value. For example:
wxString func()
{
wxString rv;
rv += wxT('a');
rv += wxT('b');
rv += wxT('c');
return rv;
}
Let us try this with a debugger. You can set watch on rv, you can trace through building rv but the value of rv in the Watches window
will not change. Nevertheless, the value is built and returned correctly. There seems to be no way of seeing value of rv nor of detecting changes made to rv. The same seems to happen with any structure returned by value.
Let us change the code a bit:
wxString func()
{
wxString rv;
wxString zz;
zz += wxT('a');
zz += wxT('b');
zz += wxT('c');
rv = zz;
return rv;
}
Now, you can watch building zz. All goes well until you reach the assignment statement rv = zz. The debugger crashes here(!) "DWARF-2 internal error". Code Blocks rev. 8500, 32-bit Debian 6.
Speaking the debugger, I also have one wishing. Allow preventing changes in the source files during debugging. A checkbox in the debugger options woud be appreciated. It is a bit boring undoing changes in the source file again and again when you wanted to manipulate the watches window but the cursor happened to be in the source code window...