Code::Blocks Forums
User forums => Help => Topic started by: effemmeffe on January 21, 2016, 09:46:55 am
-
C::B 15.12 rev 10596
SDK version 1.29.0
wx2.8.12 (Windows, Unicode) - 32 bit
Windows 10 Pro 64 bit
I define a locale vector in a function:
char buffer_data[SIZE_BUFFER];
where SIZE_BUFFER is 16384
If I try to watch size_buffer C::B freezes and I can't do anything but force it to close with task manager.
-
the gdb<-> c::b interface is slow, so if you list 16384 this will be a problem.
I don't think this will change soon, but there are some workarounds:
For all you have to disable the "watch locals" options in the debugger settings
1) Don't show all elements: add your "buffer_data" manually, but limit the count
2) Show only the address and look for it in the memory view (this will also be slow, but i think it will be faster than the tree ctrl view)
3) Implement a logging interface in your program and output it through the logging interface (best way for 16384 would be to write them to a file)
greetings
[Edit:] See also this bug: http://sourceforge.net/p/codeblocks/tickets/272/
-
I thought it could be a problem of time, so I waited even a full night, but it doesn't change: C::B freezes and I can only kill it.
I also tried the memory view workaround, but the result was the same.
I'll try to remove the locals, but I'm not confident it will work.
Is there some other debugger I can use to replace gdb and hope to have more performance?
Thanks.
-
Nope. Hopefully in the future will switch to using the gdb/mi protocol and we will have better performance and also we will support lldb.
-
Ok, thanks.
-
I'll try to remove the locals, but I'm not confident it will work.
You should do this as first, because else c::b will always evaluate your local size_buffer and so block....
-
Removed the locals, it still freezes.
The watch window is shown, it freezes when I click on the watch window title bar to move it around the screen.
Don't know if this helps or if someone care about that, I reported just in case.
I'll use some workaround to get the results I need, thanks.