This is the mail archive of the gdb-patches@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[patch/rfc] mi interpreter-complete enh req 8058.


Attached is a patch i've ported from Apple's gdb...
it implements a tab-completion like function for MI

http://sourceware.org/bugzilla/show_bug.cgi?id=8058

I figured I would post a basic port of the patch for discussion,
before doing to much to it.
there are some things I don't like....

There is no way to know why interp_complete is returning 0:
does the interpreter have a complete_proc function, or did the
complete_proc function fail.

I suppose we could return 0 or -1...

it only implements complete_proc for the console interpreter,
why then 'interpreter-complete' if only the console interpreter implements it?
it has arbitrary limits of 200 completions which has never really been
a part of the gnu credo:

one idea is to introduce a limit argument to the mi command, but that
brings up the idea of bringing in a starting point for resuming
completion, and getting multiple batches

without some form of a continuation it'd have to redo the completion each batch,
it seems difficult/impossible to invalidate the completion e.g. if
loading/completing symbols

so maybe we should forgo the batching but add the limit to the mi command?

I also notice it doesn't implement the all? argument that he mentioned
in the bug report.
also need to add a  -list-features thing...

adding arguments and things obviously would break compatibility with
their gdb, is this an issue?
let me know if you guys have any opinions on these or any other issues....

-interpreter-complete console "b ma"
^done,completions=[c="main",c="malloc",c="malloc@plt"]
(gdb)
-interpreter-complete console "b ma" 1
^done,completions=[c="backtrace",c="break",c="bt"]
(gdb)

Attachment: 0001-Add-interpreter-complete-mi-function.patch
Description: Binary data


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]