public inbox for insight@sourceware.org
 help / color / mirror / Atom feed
* Extending Insight
@ 2008-03-03  4:15 Brandon Diamond
  2008-03-03 17:45 ` Keith Seitz
  0 siblings, 1 reply; 2+ messages in thread
From: Brandon Diamond @ 2008-03-03  4:15 UTC (permalink / raw)
  To: insight

Hello,

My name is Brandon, and I'm currently an undergraduate CS major at
Brown University. As part of some course improvement work for an OS
class at Brown, I'm looking to build a few GDB extensions to allow
students to explore our kernel more intuitively at "debug-time" (i.e.,
explore the page tables, page directories, system registers [CR3,
CR2], shared pages and so forth). Previously, I had worked with a
partner to convert our toy OS ("Weenix") to run on the Xen hypervisor;
this has allowed us to utilize GDB to debug the kernel. The next step
would be to organize the information GDB gives us into a more useful
view.

In researching this project, I stumbled upon a few screenshots of
Insight-- and boy did it look great! Having multiple floating windows
to fill with assembly, source code, memory, and so on would be a huge
improvement on its own (especially over the TUI)-- if I could write a
plugin to do the extra visualization I had in mind (i.e., displaying
the page tables as a tree, among others) it would be absolutely
perfect.

Alas, it seems that Insight does not come with a plugin interface and
that adding new windows would require a fair amount of C & Tcl. The
good news is that I'm quite familiar with C; the bad news is that I've
never written Tcl before. Thus, it is with a great deal of hope that I
pose the following questions (I'd be extremely grateful for any
pointers or advice any developers on the list might be able to offer!)

 - With a strong background in C and a virtually non-existent background in Tcl,
    - Would it be possible to implement additional windows containing
varied UI components within a reasonable amount of time?
    - Could it be done in 1-3 weeks?
    - Would a working knowledge of TCL suffice, or would I have to go
pro? (if I could get by with minimal knowledge, is there a quick-start
tutorial that you'd recommend?)
    - Is the Insight source & design amenable to these modification--
or would this be a huge undertaking? (i.e., I'd have to read all of
the code to even get started and break a bunch of abstractions in so
doing)

Finally, if Insight is the wrong place for me to start, does anyone
know of a similar project that I might have a better chance of
extending?

Thank you VERY much for your help!

Sincerely,
  Brandon Diamond

^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: Extending Insight
  2008-03-03  4:15 Extending Insight Brandon Diamond
@ 2008-03-03 17:45 ` Keith Seitz
  0 siblings, 0 replies; 2+ messages in thread
From: Keith Seitz @ 2008-03-03 17:45 UTC (permalink / raw)
  To: Brandon Diamond; +Cc: insight

Brandon Diamond wrote:
>  - With a strong background in C and a virtually non-existent background in Tcl,
>     - Would it be possible to implement additional windows containing
> varied UI components within a reasonable amount of time?

Definitely. Tcl/iTcl/iTk are simple languages. Just choose one of the 
newer windows and use it as a template.

>     - Could it be done in 1-3 weeks?

I should think so.

>     - Would a working knowledge of TCL suffice, or would I have to go
> pro? (if I could get by with minimal knowledge, is there a quick-start
> tutorial that you'd recommend?)

You don't need to be a pro at Tcl, not even the slightest. Tcl was meant 
to be easy to work with, and it is. The real problem you are going to 
run into is that insight is a bit of a mess. [Of course, if there are 
any questions about how to accomplish something, you are always welcome 
to send email to this list.]

>     - Is the Insight source & design amenable to these modification--
> or would this be a huge undertaking? (i.e., I'd have to read all of
> the code to even get started and break a bunch of abstractions in so
> doing)

While I think the internals are a bit of a mess, I do not think it would 
be difficult to do. We already have a basic plug-in architecture (see 
src/gdb/gdbtk/plugins/HOW-TO. If there are any problems (or bit rot), I 
can be found here.

> Finally, if Insight is the wrong place for me to start, does anyone
> know of a similar project that I might have a better chance of
> extending?

There are several gdb UI's around, the problem we found with most of 
them is that none of them (other than Inisght) run in the same process 
as gdb. As a result, they can be very limiting if gdb hasn't implemented 
some MI feature or you want access to more of gdb's internals.

Each of these other alternatives are also written in lower-level 
languages like C. We specifically chose Tcl to allow us to rapidly write 
UI code -- no need to recompile. Just reload the edited class/file into 
the already running interpreter and go. It's an amazingly efficient 
paradigm. It also allowed us to target Windows in the days before 
python, gtk, qt, etc.

DDD is, I think, one of the most popular of the gdb GUIs. You might want 
to check it out, too.

Keith

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2008-03-03 17:45 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2008-03-03  4:15 Extending Insight Brandon Diamond
2008-03-03 17:45 ` Keith Seitz

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).