Overview
Examples
Screenshots
Comparisons
Applications
Download
Documentation
Tutorials
Bazaar
Status & Roadmap
FAQ
Authors & License
Forums
Funding Ultimate++
Search on this site
Search in forums












SourceForge.net Logo
Home » Community » U++ community news and announcements » New GDB frontend for Theide
New GDB frontend for Theide [message #35324] Thu, 02 February 2012 19:26 Go to next message
mdelfede is currently offline  mdelfede
Messages: 1307
Registered: September 2007
Ultimate Contributor
Hi,

finally the new GDB frontend inside ide became usable... still many features to add, but it can already do a bit more (and also a bit less Smile ) than previous one.

To test it, just compile theide from sources or fetch a nighty build (it should become available in a few days from today 2/2/2012); in settings menu you can choose from standard GDB frontend or the new Gdb_MI2 one.

Added features :
- variables explorer (similar to windows PDB one)
- decoding of Upp classes, work in progress, by now just string and vectors, but easy to extend with python

Missing features :
- Quick watch (really never found use of it, but....
- Still some quirks with disasm pane
- CPU registry not set

To do :
- Threading support
- Watchpoints

Please, feedback ! Smile

Ciao

Max
Re: New GDB frontend for Theide [message #35349 is a reply to message #35324] Sat, 04 February 2012 13:58 Go to previous messageGo to next message
mdelfede is currently offline  mdelfede
Messages: 1307
Registered: September 2007
Ultimate Contributor
The GDB_MI2 frontend is almost complete now.
Features :


- Deep QuickWatching : the quickwatch dialog evaluates variable childs at once

index.php?t=getfile&id=3644&private=0

- Threading support

- Decoding of Upp containers and types; by now it decodes String, Vector, Array, Index, VectorMap and ArrayMap, One and Value for standard and rich types

- Variable explorer, as in Windows debugger

- Tooltips in editow showing variables values when debugging

- Support for 64 bit CPU registers in 64 bit mode

- Fast !


To select the new frontend, go to Ide settings menu and selecg the Gdb_MI2 one.

Ciao

Max
  • Attachment: qw.png
    (Size: 11.65KB, Downloaded 802 times)

[Updated on: Sun, 05 February 2012 19:21]

Report message to a moderator

Re: New GDB frontend for Theide [message #35363 is a reply to message #35349] Mon, 06 February 2012 17:31 Go to previous messageGo to next message
mirek is currently offline  mirek
Messages: 13975
Registered: November 2005
Ultimate Member
Looks good.

Somehow I am not successful with assembly level debugging. It does not show pointer to current opcode and it does not allow stepping in assembly (normal source code step is performed).

AMD64 has more registers than those displayed. Plus, showing FPU registers would be nice too. I therefore believe that we rather need a new pane for registers....
Re: New GDB frontend for Theide [message #35364 is a reply to message #35363] Mon, 06 February 2012 17:37 Go to previous messageGo to next message
mdelfede is currently offline  mdelfede
Messages: 1307
Registered: September 2007
Ultimate Contributor
mirek wrote on Mon, 06 February 2012 17:31

Looks good.

Somehow I am not successful with assembly level debugging. It does not show pointer to current opcode and it does not allow stepping in assembly (normal source code step is performed).



Ops... I forgot that one Smile
I'll fix it on next couple of days.

Quote:


AMD64 has more registers than those displayed. Plus, showing FPU registers would be nice too. I therefore believe that we rather need a new pane for registers....


Eh.... AMD64 has tons of registers, but we'd need a complete pane for it. I was thinking on it, but then you'll loose the quick-look at principal registers that is available now, if you use another tabbed control to alternate between assembly and registers.
If you have a nice idea about the layout I can implement it.

Another nice feature I'd like to add are a sort of Tracepoints; breakpoints that, instead of stopping target, evaluate and log an expression when passing on them.
Hardware breakpoints could also be possible.

BTW, for both o latter points, it would be nice to have different breakpoint symbols on theide and a right-click menu on them, to configure them on the fly.

Max

[Updated on: Mon, 06 February 2012 17:40]

Report message to a moderator

Re: New GDB frontend for Theide [message #35365 is a reply to message #35364] Mon, 06 February 2012 17:40 Go to previous messageGo to next message
mirek is currently offline  mirek
Messages: 13975
Registered: November 2005
Ultimate Member
[quote title=mdelfede wrote on Mon, 06 February 2012 11:37]
mirek wrote on Mon, 06 February 2012 17:31


Eh.... AMD64 has tons of registers, but we'd need a complete pane for it. I was thinking on it, but then you'll loose the quick-look at principal registers that is available now, if you use another tabbed control to alternate between assembly and registers.
If you have a nice idea about the layout I can implement it.

Max



No, I meant put it where "Local", "Auto" etc are... Just add "CPU".

(I plan to do this for pdb when I will finally get there).

Mirek
Re: New GDB frontend for Theide [message #35366 is a reply to message #35365] Mon, 06 February 2012 17:41 Go to previous messageGo to next message
mdelfede is currently offline  mdelfede
Messages: 1307
Registered: September 2007
Ultimate Contributor
ah, ok... that can be easy done.

Which registers do you want to be displayed ? All is too much, I guess.....
Re: New GDB frontend for Theide [message #35367 is a reply to message #35365] Mon, 06 February 2012 17:42 Go to previous messageGo to next message
mirek is currently offline  mirek
Messages: 13975
Registered: November 2005
Ultimate Member
Another one: Displaying type of expression is fine, but it would be good to add a special column for this. Plus, I think EvenOdd would look better for that ArrayCtrl (will be more important then too).
Re: New GDB frontend for Theide [message #35368 is a reply to message #35366] Mon, 06 February 2012 17:44 Go to previous messageGo to next message
mirek is currently offline  mirek
Messages: 13975
Registered: November 2005
Ultimate Member
mdelfede wrote on Mon, 06 February 2012 11:41

ah, ok... that can be easy done.

Which registers do you want to be displayed ? All is too much, I guess.....


16 integer, 16 FPU/YMM, FS, GS would IMO cover all important.

I guess you will need to figure out some smarter design than simple ArrayCtrl for this.

I even think that for integer registers, there could still be space to display even integer values and characters (unicode).


Re: New GDB frontend for Theide [message #35369 is a reply to message #35368] Mon, 06 February 2012 17:45 Go to previous messageGo to next message
mirek is currently offline  mirek
Messages: 13975
Registered: November 2005
Ultimate Member
mirek wrote on Mon, 06 February 2012 11:44

mdelfede wrote on Mon, 06 February 2012 11:41

ah, ok... that can be easy done.

Which registers do you want to be displayed ? All is too much, I guess.....


16 integer, 16 FPU/YMM, FS, GS would IMO cover all important.



Correction: forget about YMM, that is too much. Just FPU values.
Re: New GDB frontend for Theide [message #35370 is a reply to message #35367] Mon, 06 February 2012 17:48 Go to previous messageGo to next message
mdelfede is currently offline  mdelfede
Messages: 1307
Registered: September 2007
Ultimate Contributor
mirek wrote on Mon, 06 February 2012 17:42

Another one: Displaying type of expression is fine, but it would be good to add a special column for this. Plus, I think EvenOdd would look better for that ArrayCtrl (will be more important then too).


What is EvenOdd ????
Re: New GDB frontend for Theide [message #35371 is a reply to message #35370] Mon, 06 February 2012 17:51 Go to previous messageGo to next message
mirek is currently offline  mirek
Messages: 13975
Registered: November 2005
Ultimate Member
EvenOdd colorizes Even rows - see e.g. Output mode in theide.
Re: New GDB frontend for Theide [message #36112 is a reply to message #35324] Sat, 28 April 2012 22:04 Go to previous messageGo to next message
mdelfede is currently offline  mdelfede
Messages: 1307
Registered: September 2007
Ultimate Contributor
I added an "Asynchronous break" command, which allows breaking target application on demand without need of a previously breakpoint set.
For example, if you have this endless loop:

int i = 0;
while(true)
{
    Cerr() << i;
    i++;
}


you can use "Asynchronous break" to stop in the middle of it; it'll usually stop inside assembly code, but then with a "step" command you'll land on first available source line.
This work even if you don't know where's your app hanging.

By now, the command will stop ALL your app's threads at once.

Ciao

Max
Re: New GDB frontend for Theide [message #36113 is a reply to message #36112] Sun, 29 April 2012 13:40 Go to previous messageGo to next message
koldo is currently offline  koldo
Messages: 3358
Registered: August 2008
Senior Veteran
Hello Massimo

Thank you for your efforts in GDB Smile .


Best regards
IƱaki
Re: New GDB frontend for Theide [message #36114 is a reply to message #36113] Sun, 29 April 2012 18:42 Go to previous messageGo to next message
mdelfede is currently offline  mdelfede
Messages: 1307
Registered: September 2007
Ultimate Contributor
Slowly progressing Smile
I'm adding stuffs as I need them, as usual Smile

Max
Re: New GDB frontend for Theide [message #36118 is a reply to message #35324] Mon, 30 April 2012 00:04 Go to previous messageGo to next message
mdelfede is currently offline  mdelfede
Messages: 1307
Registered: September 2007
Ultimate Contributor
Added pretty printers for :

Point (and Pointf)
Size (and Sizef)
Rect (and Rectf)

BTW, my python skills are quite limited, if anybody want do jump in and clean my python code is very wellcome....

Max
Re: New GDB frontend for Theide [message #36294 is a reply to message #35324] Fri, 18 May 2012 17:10 Go to previous messageGo to next message
mdelfede is currently offline  mdelfede
Messages: 1307
Registered: September 2007
Ultimate Contributor
Some enhancements :

- Values now are inspectable.... well, they will be when a patch will be embedded in core. No more crash when trying to inspect an uninitialized Value.

- When stopping inside a callback, now X11 grab is correctly released, allowing normal mouse and keyboard usage

- Ctrl-Q now opens QuickWatch pane getting the variable from cursor, either in code editor on in one of watch panes below.

- Some others that I forgot Smile

Ciao

Max
Re: New GDB frontend for Theide [message #36329 is a reply to message #35324] Sun, 20 May 2012 19:08 Go to previous message
mdelfede is currently offline  mdelfede
Messages: 1307
Registered: September 2007
Ultimate Contributor
Value inspectors completed, with Core support.
Now all Values convertible to String are correctly displayer in debugger.

Max
Previous Topic: String::Cat optimization
Next Topic: HttpHeader now supports SCGI
Goto Forum:
  


Current Time: Mon Apr 29 04:42:28 CEST 2024

Total time taken to generate the page: 0.06317 seconds