This is the mail archive of the
insight@sourceware.org
mailing list for the Insight project.
Re: Extending 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