I think I'm a bit lost... First of all, thanks for the fast reply.
Actually, with what I found out is that I'm not even sure if I have a python enabled GDB or not. If I disable the watch scripts, GDB doesn't lock up but of course I don't see the elements in my class.
So, locking up only happens when I enable the scripts under Settings->Debugger...->Debugger->Default->Enable Watch Scripts and only when watching a vector of custom classes (nothing fancy, basically an extended struct, having about a dozen strings or so). The vector itself isn't large and in general, it is <200 entries.
To sum it up, I got the following things working:
- debug local variables that are C++ native formats (int, bool, also string is working, std::vector of int works too)
- set and enable breakpoints, step instructions, switch frames...
- with my latest discovery, I can watch class members
What still does not work:
- The GDB watch script locks up in some cases (std::vector<custom_class>)
I don't know what qtCreator does... Can you describe it a bit more in detail?
Qt Creator basically adds *this to the watches list. I tried it now, but I'm in a derived class (standard wxWidgets template) from GUIFrame:: and this fails halfway (parsing GDB output failed for "*this"), giving me only one member variable and the base class GUIFrame:: with all its members.
This is exactly what I am looking for, thanks for the hint!
I can live with adding my member variables one by one since I have a lot of them... But still, even when adding a small vector that includes classes (that contains other vectors btw) my CPU 1 locks at 100% for 15 solid minutes now (until I kill the task). It's not that much- a couple of strings, a few mostly empty vectors of int... Talking about a few kb of data here if any. When using the full debug log, I can see it parsing the last element (18 or 128 in my two test files) and after the last element, it just locks CPU 1 at 100% and that's it.
If I could solve exactly this issue, I'd be happy.
I tried turning off the full debug log now, but it didn't change a thing.