News:

When registered with our forums, feel free to send a "here I am" post here to differ human beings from SPAM bots.

Main Menu

DDD-like watches

Started by Ceniza, January 10, 2006, 08:37:35 AM

Previous topic - Next topic

Ceniza

I must admit I don't use debuggers that much but, when I do, getting a good interface helps a lot.

There's a *nix front-end for GDB (and some other debuggers) called DDD. The only way to get it working on Windows is thru Cygwin + X for Cygwin, but it won't work as good as on a *nix OS.

The GUI library used is awful (well, it's Motif but it looks awful), but it has a pretty nice watches window/widget.

Take a look:



Pretty nice, even more when you're dealing with pointers.

Someone could find this useful too:



Now you have seen how far a debugger front-end can go, could you imagine Code::Blocks with something like that (of course, with the nice interface of Code::Blocks :))?

First step: the widget.

Ideas, suggestions, objections, VOLUNTEERS?

(I just wanted to show you that, I have my doubts about implementing it :P)

Michael

Really interesting :D. Dammage that to work under Windows it needs Cygwin :(.

IMHO, It would be a useful addition to C::B.

Michael
[url="http://img207.imageshack.us/img207/9728/411948picture4em.png"]http://img207.imageshack.us/img207/9728/411948picture4em.png[/url]

yop

ddd (data display debuger) is by far the best frontend to gdb. When you get past it's interface you can do anything that is possible with gdb. The main thing here is that it's a dedicated application that only does one thing for many many years and does it good - being a gdb frontend. I don't think that it would be possible to get the features of ddd on codeblocks (it would require the whole team to get involved with just that).
Of course since I heavily use ddd I'd like to see something like that in c::b
Life would be so much easier if we could just look at the source code.

rickg22

AFAIK, wxWidgets has some plotting functions. But I think that before considering writing a graphical front-end, we would have to do something similar with text-only. Or at least have an object framework for representing the data.

mandrav

Quote from: CenizaIdeas, suggestions, objections, VOLUNTEERS?

I see no reason for graphical gizmos in a debugger. Really, what do you need that for?
Be patient!
This bug will be fixed soon...

thomas

At the risk of sounding extremely stupid or ignorant... what data produced by a debugger makes sense to be displayed in a 3D area plot?
"We should forget about small efficiencies, say about 97% of the time: Premature quotation is the root of public humiliation."

lonesock

I would use the graphical displays.  I do a lot with Finite Elements / other numerical methods, and very often my programming mistakes come from certain elements being skipped or computed twice, etc.  With a graphical tool to look at my data it would be easy to spot if a certain data-point is never changing or NaN or whatever.

Jonathan

Ceniza

Quote from: lord mandravI see no reason for graphical gizmos in a debugger. Really, what do you need that for?

It isn't a need, I just like to "visualize" things better, and it seems I'mn't alone :)

Quote from: thomasAt the risk of sounding extremely stupid or ignorant... what data produced by a debugger makes sense to be displayed in a 3D area plot?

At least for lonesock it makes sense. I just wanted to show another image of what DDD can do. Not like I'm going to use it by now :)

I was looking for a wx widget which could help in the implementation but found nothing.

There's still a lot of work to do, bugs to squash and more in the way to consider this at least "average priority", but who knows, this little thingy could become true (Code::Blocks 7.0 maybe?) :)

thomas

Quote from: Ceniza on January 10, 2006, 10:17:24 PMI was looking for a wx widget which could help in the implementation but found nothing.
wxGLCanvas
"We should forget about small efficiencies, say about 97% of the time: Premature quotation is the root of public humiliation."

Ceniza

wxGLCanvas? I mean the watches one, not the 3D one. Something able to draw boxes with text, arrows, and such, similar to Graphviz.

thomas

Is OGL (in wxWidgets contrib) not exactly what you want? I've never used it, but I guess that's what you need.
"We should forget about small efficiencies, say about 97% of the time: Premature quotation is the root of public humiliation."

Ceniza

I don't really think OGL is what I want/need :)

thomas

#12
But it says "draw lines, shapes, and connectors"... :)

EDIT:
Hey, wait a minute... why don't you write out SVG to a string buffer? Then you can feed that to a SVG renderer, there are a few for wxWidgets. That way, it's scaleable and printable, too, for free :)
"We should forget about small efficiencies, say about 97% of the time: Premature quotation is the root of public humiliation."

Ceniza

thomas: have you tried DDD? :)

With SVG we could make a nice looking drawing, but... I still think you're considering a widget for the plots while I'm considering a widget for the watches.

The widget is needed to implement the drawings in the first image, the one with the list.

thomas

Quote from: Ceniza on January 11, 2006, 12:34:06 AMThe widget is needed to implement the drawings in the first image, the one with the list.
Yes, SVG is just fine for that. Make a big SVG canvas and give it a document which has a box here, an arrow there, and some text. Should work really nicely, and you can use all of the SVG candy like rounded boxes and transparency or gradients if you like.
"We should forget about small efficiencies, say about 97% of the time: Premature quotation is the root of public humiliation."