[RFA] A few ui_out formatting bugs with commands-on-breakpoints

Jason Molenda jason-swarelist@molenda.com
Fri Sep 7 23:40:00 GMT 2001


Hi, it looks like there were a few small oversights in the ui
support of printing-commands-on-breakpoints.  With the current gdb,
you enter these commands:

   (gdb) b main
   (gdb) comm
   > if $testval == 0
    >   print "true"
    > else
    >   print "false"
    > end
   > print "done"
   > end
   (gdb)

And this is how it's printed:

   (gdb) info br
   Num Type           Disp Enb Address    What
   1   breakpoint     keep y   0x08071a9e in main at ../../src3/gdb/main.c:714
           if if $testval == 0
             print "true"
           elseelse
             print "false"
   end        end
           print "done"
   (gdb)

Not quite ideal. :-)  With the attached patch, the output is

   (gdb) info br
   Num Type           Disp Enb Address    What
   1   breakpoint     keep y   0x08070f30 in captured_command_loop
                                          at ../../src2/gdb/main.c:1
           if $testval == 0
             print "true"
           else
             print "false"
           end
           print "done"
   (gdb)

The 'while' command has a similar problem.  There aren't any
testsuite regressions with this change.

My only concern is that I'm unfamiliar with the UI_OUT suite of
functions.  Are certain ui_out functions are preferred over others?
For instance, we have "end" printed out by both ui_out_field_string()
and by ui_out_text().  I removed the first occurrence in each case,
but who knows, maybe there's a reason to do it the other way.  From
what I can tell in the uiout doco, it's six of one and half a dozen
of the other.

Jason


More information about the Gdb-patches mailing list