This is the mail archive of the gdb@sources.redhat.com 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] |
The debugger mode that uses GDB/MI which I am trying to write for Emacs uses a queue but I can't get it initialised properly. This is why:
If I start with gdb -interp=mi mytest, I get
~"GNU gdb 2003-02-04-cvs\n"
~"Copyright 2003 Free Software Foundation, Inc.\n"
~"GDB is free software, covered by the GNU General Public License, and you are\n"
~"welcome to change it and/or distribute copies of it under certain conditions.\n"
~"Type \"show copying\" to see the conditions.\n"
~"There is absolutely no warranty for GDB. Type \"show warranty\" for details.\n"
~"This GDB was configured as \"i586-pc-linux-gnu\"..."
~"\n"
(gdb)
(gdb) -interpreter-exec console set prompt foo &"Argument required (expression to compute).\n" ^error,msg="Argument required (expression to compute)." (gdb) -interpreter-exec console "set prompt foo" ^done (gdb) -interpreter-exec console "show prompt" ~"Gdb's prompt is \"foo\".\n" ^done (gdb)
^Z^Zpre-prompt
(gdb) ^Z^Zprompt
and the prompt annotation tells Emacs that GDB is ready for input. Since Emacs' interaction is asynchronous, the timing is wrong if I assume GDB is ready for input immediately after its invocation. I think the initial output should be:
~"GNU gdb 2003-02-04-cvs\n"
~"Copyright 2003 Free Software Foundation, Inc.\n"
~"GDB is free software, covered by the GNU General Public License, and you are\n"
~"welcome to change it and/or distribute copies of it under certain conditions.\n"
~"Type \"show copying\" to see the conditions.\n"
~"There is absolutely no warranty for GDB. Type \"show warranty\" for details.\n"
~"This GDB was configured as \"i586-pc-linux-gnu\"..."
~"\n"
^done
(gdb)
i.e GDB should notify its status with the ^done record.
I could look for the prompt (gdb) for notification and I imagine this is what gvd does but the idea presumably is to have a machine interface and not rely on output intended for the (human) user. For example this could be defeated with `set prompt'.
I will file a bug report if someone agrees with my analysis.
Nick
Incidently, the string (gdb) that is output here is not the prompt but an imposter as I get:
-gdb-set prompt (hec)
^done
(gdb) -gdb-show prompt
^done,value="(hec)"
(gdb)
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |