public inbox for archer@sourceware.org
 help / color / mirror / Atom feed
* the next round of tasks
@ 2009-09-16 22:06 Tom Tromey
  2009-09-18  1:56 ` Roland McGrath
  2009-09-18 15:43 ` Phil Muldoon
  0 siblings, 2 replies; 3+ messages in thread
From: Tom Tromey @ 2009-09-16 22:06 UTC (permalink / raw)
  To: Project Archer

As we've discussed a few times at the meeting, it is time to plan for
the second round of Archer tasks.  For reference, our initial task list
and ensuing thread is here:

http://sourceware.org/ml/archer/2008-q3/msg00017.html

and also on the wiki:

http://sourceware.org/gdb/wiki/ProjectArcher


There were a few things we didn't really do:

* Pretty type printing.
  I think we found that this is mostly a debuginfo (aka gcc) problem.
  I think we submitted bug reports, though I haven't looked lately.

* Rewrite it in C++.
  I tend to think it would be unwise to attempt this unilaterally.
  I do think it remains a good idea, though.  Perhaps we could get
  buy-in from a critical mass of GDB maintainers.

* Froggy.  This is on hold.  Frank has an in-kernel gdbserver that fills
  the same niche but I have not tried it yet... has anybody here?

* Upstream all our Fedora patches.  We never really addressed this.  I
  think this has to be put on the new list as a concrete task (perhaps
  split up so that it doesn't all rest on one person), instead of the
  previous plan, which was hoping that somebody would do it.

  Most of the Fedora patches belong upstream.  There are only a few
  which are wholly unsuitable.  I would say, we should have 5 or fewer.


Here's my list of ideas which I've been collecting over the past year.

I've omitted anything small; we can do bug fixes and minor improvements
without needing a special task for them.  However, we need to take some
care to make sure that ordinary bug fixing doesn't fall by the wayside.

For some of these I have a few details ready when the time comes to
implement them.

I've tried not to omit anything.  Some of these are things I think are
cool but that, barring new information, we should not yet do.  I've
tried to note those.

* Upstream all Fedora patches.

* Extend catch syscall to understand arguments.  Make the arguments
  readily available to gdb expressions.

* Better Fortran support.  This is a grab bag of whatever Jan thinks we
  should do :-)

* Several DWARF tasks.

  * Opcode audit.  We know that several opcodes are not implemented, see
    bugzilla.

  * Another opcode task (broken out because it is relatively big):
    correctly implement DW_OP_*piece.  In particular we should track
    unavailability per bit or byte, and have expression evaluation and
    printing reflect this.

  * Improve performance by implementing indexing, per Dodji's spec.
    This would obsolete the existing delayed symtab code.  To be
    considered a success it would have to eliminate the long pauses that
    occur with today's code.

  * Some sort of lazy type instantiation (perhaps this is part of the
    indexing task?), and/or type interning.  The former saves both time
    and memory, the latter probably just memory.

  * Remove psymtabs for DWARF?

* The mythical symbol table rewrite.  I don't have enough state on this
  to describe any details.

* Incorporate Pedro's multi-inferior patch into our release and see
  what, if anything, we need to do to make it work excellently on Linux.

* Scalability.  Can we scale to thousands of breakpoints?  Of inferiors?
  Does it make sense to also lazily read minsyms?

* Implement "catch signal".  This has been reported a couple of times;
  it is different from "handle" in that you can put commands on a catch.

* Python-based enhancements

  * Let the user do prompt substitutions.  This comes up over and over.
    It is also easy (probably shouldn't be on this list :-)

  * Implement new languages support entirely in Python.  (I tend to
    think we should not do this one yet.)

  * Ditto, but for scripting languages.

  * More work on Python commands.
    * Let a Python command delegate to a built-in command that it
      overrides.
    * Finish the extended up/down/backtrace commands.
    * "watch -location"
    * ... lots of other little ideas here

  * The ideas Roland posted to the list, like type-valued convenience
    variables

* Write a gdbserver that sits inside valgrind.  There was some talk of
  this on the valgrind list, maybe somebody is doing it.  (I tend to
  think we shouldn't do this yet.)


I think that is my whole list... if I remember something else I will
post it as a follow up.

Please post your ideas and comments.

Tom

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

* Re: the next round of tasks
  2009-09-16 22:06 the next round of tasks Tom Tromey
@ 2009-09-18  1:56 ` Roland McGrath
  2009-09-18 15:43 ` Phil Muldoon
  1 sibling, 0 replies; 3+ messages in thread
From: Roland McGrath @ 2009-09-18  1:56 UTC (permalink / raw)
  To: tromey; +Cc: Project Archer

> * Extend catch syscall to understand arguments.  Make the arguments
>   readily available to gdb expressions.

I would like to do this with a sort of scheme whereby it would be a simple
hook to look at some DWARF/pretty-printing that is otherwise fairly
vanilla, i.e. thin glue by which you can consider the kernel syscall ABI
akin to the ABI of a DSO with its own DWARF and pretty-printing modules.
(This plan assumes that by the time you'd get there I can also have a plan
to cons the DWARF that goes with a given kernel ABI, which I might.)

> * Several DWARF tasks.

I don't see DW_TAG_imported_unit support on the list.
That will one day suddenly become a must-have-right-now issue.

>   * The ideas Roland posted to the list, like type-valued convenience
>     variables

I no longer remember what all I've suggested, so please check the
archives. :-)


Thanks,
Roland

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

* Re: the next round of tasks
  2009-09-16 22:06 the next round of tasks Tom Tromey
  2009-09-18  1:56 ` Roland McGrath
@ 2009-09-18 15:43 ` Phil Muldoon
  1 sibling, 0 replies; 3+ messages in thread
From: Phil Muldoon @ 2009-09-18 15:43 UTC (permalink / raw)
  To: archer

On 09/16/2009 11:06 PM, Tom Tromey wrote:
> I've omitted anything small; we can do bug fixes and minor improvements
> without needing a special task for them.  However, we need to take some
> care to make sure that ordinary bug fixing doesn't fall by the wayside.
>
>
> * Python-based enhancements
>
>    

Some items that I have written down locally. I'm going to email them 
here no matter how small they are, just so they are somewhere archivable 
and not on a bit of paper on my desk. There are no particular 
justification for these, other than they would make my life easier.

- Flesh out the value api and implement several missing functions 
(valpy_setitem being the first, and hopefully small task). Same with 
Frame code (I recently looked at this). And Type.
- Merge more Python stuff from archer-tromey-python to CVS? This is 
probably going to be gated to the need for that code in CVS, but it is 
something that will take up someone's time in the future.
- Better catchpoint and watchpoint support in python breakpoints. 
Especially in save-breakpoint. (catch syscall is my source for this, now)
- Filter "Catch Exception" to name/type/whatever (well, C++ exceptions). 
So catch exception will only interrupt on certain types of C++ exceptions
- This maybe be related to the GsoC project. So this might be already 
there. But there are a lot of events that happen in GDB that I want 
Python code to be notified about. This is a super new area of the code 
for me, but if a catch syscall or a catch exception /some-exception/ 
"happens", I want to be able to respond to it in Python from a global 
approach. Observer -> Observable pattern. Basically any obstacles to 
preventing me from writing a Python script to receive events from a 
Catch (or any definable condition), stop the inferior and perform an 
action (backtrace for example) then resume the inferior (or not).


Regards

Phil

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

end of thread, other threads:[~2009-09-18 15:43 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2009-09-16 22:06 the next round of tasks Tom Tromey
2009-09-18  1:56 ` Roland McGrath
2009-09-18 15:43 ` Phil Muldoon

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).