Re: [RFC] disassemble-next-line

teawater
2009-03-11T03:16:52Z

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