This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
Re: [RFC] disassemble-next-line
- From: teawater <teawater at gmail dot com>
- To: Tom Tromey <tromey at redhat dot com>, Eli Zaretskii <eliz at gnu dot org>, Doug Evans <dje at google dot com>
- Cc: Pedro Alves <pedro at codesourcery dot com>, Daniel Jacobowitz <drow at false dot org>, "gdb-patches at sourceware dot org" <gdb-patches at sourceware dot org>
- Date: Wed, 11 Mar 2009 11:16:39 +0800
- Subject: Re: [RFC] disassemble-next-line
- References: <daef60380903072134n381d57a8ob82ac9c777d97bff@mail.gmail.com> <m3vdqi67lg.fsf@fleche.redhat.com>
Hi guys,
On Mon, Mar 9, 2009 at 23:26, Tom Tromey <tromey@redhat.com> wrote:
>>>>>> "teawater" == teawater ?<teawater@gmail.com> writes:
>
> teawater> This is the patch for the function to output assembly codes
> teawater> for next line.
>
> teawater> +/* If ON, GDB will output the assembly codes of next line.
> teawater> + ? If OFF, GDB will not do it.
> teawater> + ? doesn't support it, GDB will instead use the traditional
>
> I think this third line should be removed.
OK. I will remove it.
>
> teawater> +/* Show assembly codes; stub for catch_errors. ?*/
> teawater> +
> teawater> +struct gdb_disassembly_stub_args
> teawater> +{
> teawater> + ?int how_many;
> teawater> + ?CORE_ADDR low;
> teawater> + ?CORE_ADDR high;
> teawater> +};
> teawater> +
> teawater> +static int
> teawater> +gdb_disassembly_stub (void *args)
> teawater> +{
> teawater> + ?struct gdb_disassembly_stub_args *p = args;
> teawater> + ?gdb_disassembly (uiout, 0, 0, 0, p->how_many, p->low, p->high);
> teawater> + ?return 0;
>
> IMO, in this case it would be shorter, and clearer, to use TRY_CATCH
> at the call site rather than catch_errors. ?What do you think?
OK. I will change it to TRY_CATCH.
>
> teawater> + ?/* If disassemble-next-line is set to auto or on and doesn't have
> teawater> + ? ? line message, output current instructions. ?*/
>
> "a line message"
>
> teawater> + ? ? ?/* If disassemble-next-line is set to on and there is line
> teawater> + ? ? ? ? messages, output assembly codes for next line. ?*/
>
> "there are line messages"
I will change it.
>
> teawater> + ?add_setshow_enum_cmd ("disassemble-next-line", class_run,
> teawater> + ? ? ? ? ? ? ? ? ? ? disassemble_next_line_enum,
> teawater> + ? ? ? ? ? ? ? ? ? ? &disassemble_next_line, _("\
> teawater> +Set debugger's willingness to use disassemble-next-line."), _("\
>
> This text seems circular.
> Instead it should briefly describe what the option does.
>
> teawater> +Show debugger's willingness to use disassemble-next-line."), _("\
> teawater> +If on, gdb will output the assembly codes of next line.\n\
>
> This also reads strangely, but I don't have a suggestion for what it
> ought to say. ?I think it should at least say when the assembly will
> be displayed. ?"assembly codes" in particular sounds odd to me.
I think Doug's idea is better:
If ON, GDB will disassemble the next source line when execution stops.
If the next source line cannot be ascertained, the next instruction
will be disassembled instead.
>
> teawater> +If auto (which is the default), gdb will output a assembly code\n\
> teawater> +at current address if there is not line message."),
>
> "at the current address"
I will change it.
>
> The line message bit could use rewording as well; at least s/not/no/.
>
About line message.
struct symtab_and_line
{
struct symtab *symtab;
struct obj_section *section;
/* Line number. Line numbers start at 1 and proceed through symtab->nlines.
0 is never a valid line number; it is used to indicate that line number
information is not available. */
int line;
CORE_ADDR pc;
CORE_ADDR end;
int explicit_pc;
int explicit_line;
};
It don't have comment name.
What about change it to "line debug message"?
Thanks for your help.
Hui