public inbox for archer-commits@sourceware.org
help / color / mirror / Atom feed
* [SCM]  tromey/always-async: reverse-20080717-branchpoint-15251-gde4d7b9
@ 2013-07-09 18:28 tromey
  0 siblings, 0 replies; only message in thread
From: tromey @ 2013-07-09 18:28 UTC (permalink / raw)
  To: archer-commits

The branch, tromey/always-async has been created
        at  de4d7b9c1bfaecf49be1f73e2a403552cf189afa (commit)

- Log -----------------------------------------------------------------
commit de4d7b9c1bfaecf49be1f73e2a403552cf189afa
Author: Tom Tromey <tromey@redhat.com>
Date:   Tue Jul 9 12:23:08 2013 -0600

    add README.archer

commit 9d1300c213b2c9bbb0691bff08b81bcaca35a0f4
Author: Tom Tromey <tromey@redhat.com>
Date:   Tue Jul 9 12:21:55 2013 -0600

    enable target-async
    
    This enables target-async by default.
    
    Since MI chose to treat target-async specially, we can't get
    rid of the option.  Instead we have to make it MI-only.
    
    This still has a regression in mi-async.exp.
    The problem seems to be exactly when the MI prompt is emitted.
    
    This still needs a doc update

commit 57c88e875057b04fab025c98f3a016b526c45c00
Author: Tom Tromey <tromey@redhat.com>
Date:   Tue Jul 9 10:27:05 2013 -0600

    really remove gdb.mi/mi2-cli.exp

commit 2dd7c24fbf79fc67138d209fd7778fa95c5422e8
Author: Tom Tromey <tromey@redhat.com>
Date:   Tue Jul 9 09:51:07 2013 -0600

    another latent bug in ui-out.c

commit 65d5130231d002e24934941c06f848eb7c0e439d
Author: Tom Tromey <tromey@redhat.com>
Date:   Tue Jul 9 09:48:09 2013 -0600

    fix latent bug in ui-out.c:clear_table

commit 8d64f4cedfa15ff524e00112c79dc31f8e79e426
Merge: a8b7921 70c728b
Author: Tom Tromey <tromey@redhat.com>
Date:   Tue Jul 9 09:42:26 2013 -0600

    Merge remote-tracking branch 'palves/async-mi-solib.exp' into tromey/always-async
    
    Conflicts:
    	gdb/mi/mi-interp.c
    	gdb/testsuite/gdb.mi/mi2-cli.exp
    	gdb/ui-out.c
    	gdb/ui-out.h

commit a8b7921e9b7d2a0019ae2d7335b4169d1bf14bc9
Author: Tom Tromey <tromey@redhat.com>
Date:   Wed Jul 3 10:11:58 2013 -0600

    enable target-async by default for CLI

commit fb8b47ef3e1f0189114339503cf3e8c128585cd9
Author: Tom Tromey <tromey@redhat.com>
Date:   Mon Jul 8 10:23:33 2013 -0600

    fix py-finish-breakpoint.exp with always-async
    
    With target async enabled, py-finish-breakpoint.exp will trigger an
    assertion failure.
    
    The failure occurs because execute_command re-enters the event loop in
    some circumstances, and in this case resets the sync_execution flag.
    Then later gdb reaches this assertion in normal_stop:
    
          gdb_assert (sync_execution || !target_can_async_p ());
    
    execute_command has a comment explaining why it dispatches events:
    
          /* If the interpreter is in sync mode (we're running a user
    	 command's list, running command hooks or similars), and we
    	 just ran a synchronous command that started the target, wait
    	 for that command to end.  */
    
    However, the code did not follow this comment -- it didn't check to
    see if the command started the target.
    
    This patch fixes the problem by noting whether the target was
    executing in sync_execution mode before running the command, and then
    augmenting the condition to test this as well.
    
    Built and regtested on x86-64 Fedora 18.
    
    	* top.c (execute_command): Only dispatch events if command
    	started target.

commit b486174e782dd164b780288f397c0274cc0b6ca7
Author: Tom Tromey <tromey@redhat.com>
Date:   Mon Jul 8 09:41:57 2013 -0600

    make dprintf.exp pass in always-async mode
    
    When target-async is enabled, dprintf.exp fails.
    
    This happens because run_inferior_call causes gdb to forget that it is
    running in sync_execution mode, so something like a breakpoint
    condition that makes an inferior call causes gdb to enter fully async
    mode.
    
    This patch fixes the problem by noticing when gdb was in
    sync_execution mode in run_inferior_call, and taking care to restore
    this state afterward.
    
    Built and regtested on x86-64 Fedora 18.
    
    	PR cli/15718:
    	* infcall.c: Include event-top.h.
    	(run_inferior_call): Call async_disable_stdin if needed.

commit 70c728b2b7da35961b4fa055f4d74da55c283cb3
Author: Pedro Alves <palves@redhat.com>
Date:   Wed May 9 14:07:04 2012 +0100

    PR gdb/13860: don't lose '-interpreter-exec console EXECUTION_COMMAND''s output in async mode.
    
    The other part of PR gdb/13860 is about console execution commands
    in MI getting their output half lost.  E.g., take the finish command,
    executed on a frontend's GDB console:
    
    sync:
    
      finish
      &"finish\n"
      ~"Run till exit from #0  usleep (useconds=10) at ../sysdeps/unix/sysv/linux/usleep.c:27\n"
      ^running
      *running,thread-id="1"
      (gdb)
      ~"0x00000000004004d7 in foo () at stepinf.c:6\n"
      ~"6\t    usleep (10);\n"
      ~"Value returned is $1 = 0\n"
      *stopped,reason="function-finished",frame={addr="0x00000000004004d7",func="foo",args=[],file="stepinf.c",fullname="/home/pedro/gdb/tests/stepinf.c",line="6"},thread-id="1",stopped-threads="all",core="1"
    
    async:
    
      finish
      &"finish\n"
      ~"Run till exit from #0  usleep (useconds=10) at ../sysdeps/unix/sysv/linux/usleep.c:27\n"
      ^running
      *running,thread-id="1"
      (gdb)
      *stopped,reason="function-finished",frame={addr="0x00000000004004d7",func="foo",args=[],file="stepinf.c",fullname="/home/pedro/gdb/tests/stepinf.c",line="6"},gdb-result-var="$1",return-value="0",thread-id="1",stopped-threads="all",core="0"
    
    Note how all the "Value returned" etc. output is missing in async mode.
    
    The same happens with e.g., catchpoints:
    
      =breakpoint-modified,bkpt={number="1",type="catchpoint",disp="keep",enabled="y",what="22016",times="1"}
      ~"\nCatchpoint "
      ~"1 (forked process 22016), 0x0000003791cbd8a6 in __libc_fork () at ../nptl/sysdeps/unix/sysv/linux/fork.c:131\n"
      ~"131\t  pid = ARCH_FORK ();\n"
      *stopped,reason="fork",disp="keep",bkptno="1",newpid="22016",frame={addr="0x0000003791cbd8a6",func="__libc_fork",args=[],file="../nptl/sysdeps/unix/sysv/linux/fork.c",fullname="/usr/src/debug/glibc-2.14-394-g8f3b1ff/nptl/sysdeps/unix/sysv/linux/fork.c",line="131"},thread-id="1",stopped-threads="all",core="0"
    
    
    where all those ~ lines are missing in async mode, or just the "step"
    current line indication:
    
      s
      &"s\n"
      ^running
      *running,thread-id="all"
      (gdb)
      ~"13\t  foo ();\n"
      *stopped,frame={addr="0x00000000004004ef",func="main",args=[{name="argc",value="1"},{name="argv",value="0x7fffffffdd78"}],file="stepinf.c",fullname="/home/pedro/gdb/tests/stepinf.c",line="13"},thread-id="1",stopped-threads="all",core="3"
      (gdb)
    
    Or in the case of the PRs example, the "Stopped due to shared library
    event" note:
    
      start
      &"start\n"
      ~"Temporary breakpoint 1 at 0x400608: file ../../../src/gdb/testsuite/gdb.mi/solib-main.c, line 21.\n"
      =breakpoint-created,bkpt={number="1",type="breakpoint",disp="del",enabled="y",addr="0x0000000000400608",func="main",file="../../../src/gdb/testsuite/gdb.mi/solib-main.c",fullname="/home/pedro/gdb/mygit/src/gdb/testsuite/gdb.mi/solib-main.c",line="21",times="0",original-location="main"}
      ~"Starting program: /home/pedro/gdb/mygit/build/gdb/testsuite/gdb.mi/solib-main \n"
      =thread-group-started,id="i1",pid="21990"
      =thread-created,id="1",group-id="i1"
      ^running
      *running,thread-id="all"
      (gdb)
      =library-loaded,id="/lib64/ld-linux-x86-64.so.2",target-name="/lib64/ld-linux-x86-64.so.2",host-name="/lib64/ld-linux-x86-64.so.2",symbols-loaded="0",thread-group="i1"
      ~"Stopped due to shared library event (no libraries added or removed)\n"
      *stopped,reason="solib-event",thread-id="1",stopped-threads="all",core="3"
      (gdb)
    
    IMO, if you're typing execution commands in a frontend's console, you
    expect to see their output.  Indeed it's what you get in sync mode.  I
    think async mode should do the same.
    
    That's what this patch does.
    
    Notes:
    
      - mi->out is the same as gdb_stdout when MI is the current
        interpreter.  I think that referring to that directly is cleaner.
        An earlier revision of this patch made the changes that are now
        done in mi_on_normal_stop directly in infrun.c:normal_stop, and so
        not having an obvious place to put the new uiout by then, and not
        wanting to abuse CLI's uiout, I thought of making a temporary
        uiout when necessary.  This meant that I needed a way to destroy
        uiout objects.  Nothing else currently destroy's them, as all
        uiout objects are long lived along side the interpreters.  Now
        that the code in question that creates the temporary uiout is all
        within mi-interp.c, I could instead make the uiout that wraps
        mi->out be long lived too, and thus not need ui-out.h|c changes.
        Let me know if you have a preference.
    
      - Hopefuly the rest of the patch is more or less obvious given the
        comments I added.
    
    Tested on x86_64 Fedora 16, no regressions.
    
    2012-05-09  Pedro Alves  <palves@redhat.com>
    
    	PR gdb/13860
    
    	* gdbthread.h (struct thread_control_state): New field
    	`command_interp'.
    	* infrun.c (follow_fork): Copy the new thread control field to the
    	child fork thread.
    	(clear_proceed_status_thread): Clear the new thread control field.
    	(proceed): Set the new thread control field.
    	* interps.h (command_interp): Declare.
    	* interps.c (command_interpreter): New global.
    	(command_interp): New function.
    	(interp_exec): Set `command_interpreter' while here.
    
    	* ui-out.h (ui_out_dtor_ftype): New typedef.
    	(struct ui_out_impl): New field `dtor'.
    	(ui_out_free): Declare.
    	* ui-out.c (default_ui_out_impl): Install NULL `dtor' handler.
    	(ui_out_free): New function.
    	* cli-out.c (cli_uiout_dtor): New function.
    	(cli_ui_out_impl): Install it.
    
    	* mi/mi-interp.c: Include cli-out.h.
    	(mi_cmd_interpreter_exec): Add comment.
    	(restore_current_uiout_cleanup): New function.
    	(ui_out_free_cleanup): New function.
    	(mi_on_normal_stop): In async mode, if finishing an execution
    	command started by a CLI command, or any kind of breakpoint-like
    	event triggered, print the stop event to the output (CLI) stream.
    	* mi/mi-out.c (mi_ui_out_impl): Install NULL `dtor' handler.
    
    	gdb/testsuite/
    	* gdb.mi/mi-cli.exp: Also expect the new source line to be output
    	after a "next", in async mode.  Make it a pass/fail test.
    	* gdb.mi/mi-solib.exp: Test that the CLI solib event note is
    	output.

commit 756088b216dda92452b6033f531e597501238a14
Author: Pedro Alves <palves@redhat.com>
Date:   Wed May 9 14:10:30 2012 +0100

    PR gdb/13860: make "-exec-foo"'s MI output equal to "foo"'s MI output.
    
    Part of PR gdb/13860 is about the mi-solib.exp test's output being
    different in sync vs async modes.
    
    sync:
    
      >./gdb -nx -q ./testsuite/gdb.mi/solib-main -ex "set stop-on-solib-events 1" -ex "set target-async off" -i=mi
      =thread-group-added,id="i1"
      ~"Reading symbols from /home/pedro/gdb/mygit/build/gdb/testsuite/gdb.mi/solib-main..."
      ~"done.\n"
      (gdb)
      &"start\n"
      ~"Temporary breakpoint 1 at 0x400608: file ../../../src/gdb/testsuite/gdb.mi/solib-main.c, line 21.\n"
      =breakpoint-created,bkpt={number="1",type="breakpoint",disp="del",enabled="y",addr="0x0000000000400608",func="main",file="../../../src/gdb/testsuite/gdb.mi/solib-main.c",fullname="/home/pedro/gdb/mygit/src/gdb/testsuite/gdb.mi/solib-main.c",line="21",times="0",original-location="main"}
      ~"Starting program: /home/pedro/gdb/mygit/build/gdb/testsuite/gdb.mi/solib-main \n"
      =thread-group-started,id="i1",pid="17724"
      =thread-created,id="1",group-id="i1"
      ^running
      *running,thread-id="all"
      (gdb)
      =library-loaded,id="/lib64/ld-linux-x86-64.so.2",target-name="/lib64/ld-linux-x86-64.so.2",host-name="/lib64/ld-linux-x86-64.so.2",symbols-loaded="0",thread-group="i1"
      ~"Stopped due to shared library event (no libraries added or removed)\n"
      *stopped,reason="solib-event",frame={addr="0x000000379180f990",func="_dl_debug_state",args=[],from="/lib64/ld-linux-x86-64.so.2"},thread-id="1",stopped-threads="all",core="3"
      (gdb)
    
    async:
    
      >./gdb -nx -q ./testsuite/gdb.mi/solib-main -ex "set stop-on-solib-events 1" -ex "set target-async on" -i=mi
      =thread-group-added,id="i1"
      ~"Reading symbols from /home/pedro/gdb/mygit/build/gdb/testsuite/gdb.mi/solib-main..."
      ~"done.\n"
      (gdb)
      start
      &"start\n"
      ~"Temporary breakpoint 1 at 0x400608: file ../../../src/gdb/testsuite/gdb.mi/solib-main.c, line 21.\n"
      =breakpoint-created,bkpt={number="1",type="breakpoint",disp="del",enabled="y",addr="0x0000000000400608",func="main",file="../../../src/gdb/testsuite/gdb.mi/solib-main.c",fullname="/home/pedro/gdb/mygit/src/gdb/testsuite/gdb.mi/solib-main.c",line="21",times="0",original-location="main"}
      ~"Starting program: /home/pedro/gdb/mygit/build/gdb/testsuite/gdb.mi/solib-main \n"
      =thread-group-started,id="i1",pid="17729"
      =thread-created,id="1",group-id="i1"
      ^running
      *running,thread-id="all"
      =library-loaded,id="/lib64/ld-linux-x86-64.so.2",target-name="/lib64/ld-linux-x86-64.so.2",host-name="/lib64/ld-linux-x86-64.so.2",symbols-loaded="0",thread-group="i1"
      (gdb)
      *stopped,reason="solib-event",thread-id="1",stopped-threads="all",core="1"
    
    
    For now, let's focus only on the *stopped event.  We see that the
    async output is missing frame info.  And this causes a test failure in
    async mode, as "mi_expect_stop solib-event" wants to see the frame
    info.
    
    However, if we compare the event output when a real MI execution
    command is used, compared to a CLI command (e.g., run vs -exec-run,
    next vs -exec-next, etc.), we see:
    
      >./gdb -nx -q ./testsuite/gdb.mi/solib-main -ex "set stop-on-solib-events 1" -ex "set target-async off" -i=mi
      =thread-group-added,id="i1"
      ~"Reading symbols from /home/pedro/gdb/mygit/build/gdb/testsuite/gdb.mi/solib-main..."
      ~"done.\n"
      (gdb)
      r
      &"r\n"
      ~"Starting program: /home/pedro/gdb/mygit/build/gdb/testsuite/gdb.mi/solib-main \n"
      =thread-group-started,id="i1",pid="17751"
      =thread-created,id="1",group-id="i1"
      ^running
      *running,thread-id="all"
      (gdb)
      =library-loaded,id="/lib64/ld-linux-x86-64.so.2",target-name="/lib64/ld-linux-x86-64.so.2",host-name="/lib64/ld-linux-x86-64.so.2",symbols-loaded="0",thread-group="i1"
      ~"Stopped due to shared library event (no libraries added or removed)\n"
      *stopped,reason="solib-event",frame={addr="0x000000379180f990",func="_dl_debug_state",args=[],from="/lib64/ld-linux-x86-64.so.2"},thread-id="1",stopped-threads="all",core="3"
      (gdb)
      -exec-run
      =thread-exited,id="1",group-id="i1"
      =thread-group-exited,id="i1"
      =library-unloaded,id="/lib64/ld-linux-x86-64.so.2",target-name="/lib64/ld-linux-x86-64.so.2",host-name="/lib64/ld-linux-x86-64.so.2",thread-group="i1"
      =thread-group-started,id="i1",pid="17754"
      =thread-created,id="1",group-id="i1"
      ^running
      *running,thread-id="all"
      (gdb)
      =library-loaded,id="/lib64/ld-linux-x86-64.so.2",target-name="/lib64/ld-linux-x86-64.so.2",host-name="/lib64/ld-linux-x86-64.so.2",symbols-loaded="0",thread-group="i1"
      *stopped,reason="solib-event",thread-id="1",stopped-threads="all",core="1"
      =thread-selected,id="1"
      (gdb)
    
    As seen above, with MI commands, the *stopped event _doesn't_ have
    frame info.  This is because normal_stop, as commanded by the result
    of bpstat_print, skips printing frame info in this case (it's an
    "event", not a "breakpoint"), and when the interpreter is MI,
    mi_on_normal_stop skips calling print_stack_frame, as the normal_stop
    call was already done with the MI uiout.  This explains why the async
    output is different even with a CLI command.  Its because in async
    mode, the mi_on_normal_stop path is always taken; it is always reached
    with the MI uiout, because the stop is handled from the event loop,
    instead of from within `proceed -> wait_for_inferior -> normal_stop'
    with the interpreter overridden, as in sync mode.
    
    This patch fixes the issue by making all cases output the same
    *stopped event, by factoring out the print code from normal_stop, and
    using it from mi_on_normal_stop as well.  I chose the *stopped output
    without a frame, mainly because that is what you already get if you
    use MI execution commands, the commands frontends are supposed to use
    (except when implementing a console).  This patch makes it simpler to
    tweak the MI output differently if desired, as we only have to change
    the centralized print_stop_event (taking into account whether the
    uiout is MI-like), and all different modes will change accordingly.
    
    Tested on x86_64 Fedora 16, no regressions.  The mi-solib.exp test no
    longer fails in async mode with this patch, so the patch removes the
    kfail.
    
    2012-05-09  Pedro Alves  <palves@redhat.com>
    
    	PR gdb/13860
    
    	gdb/
    	* inferior.h (print_stop_event): Declare.
    	* infrun.c (print_stop_event): New, factored out from ...
    	(normal_stop): ... this.
    	* mi/mi-interp.c (mi_on_normal_stop): Use print_stop_event instead
    	of bpstat_print/print_stack_frame.
    
    	gdb/testsuite/
    	* gdb.mi/mi-solib.exp: Remove gdb/13860 kfail.
    	* lib/mi-support.exp (mi_expect_stop): Add special handling for
    	solib-event.

commit 00aff49923b3d9fe3a0ab89696016c513abf04b9
Author: Pedro Alves <palves@redhat.com>
Date:   Wed May 9 17:28:12 2012 +0100

    PR gdb/13860: make -interpreter-exec console "list" behave more like "list".
    
    Patch 3 in this series made me notice that "list" behaves differently
    in CLI vs MI.  Particularly:
    
      >./gdb -nx -q ./testsuite/gdb.mi/mi-cli
      Reading symbols from /home/pedro/gdb/mygit/build/gdb/testsuite/gdb.mi/mi-cli...done.
      (gdb) start
      Temporary breakpoint 1 at 0x40054d: file ../../../src/gdb/testsuite/gdb.mi/basics.c, line 62.
      Starting program: /home/pedro/gdb/mygit/build/gdb/testsuite/gdb.mi/mi-cli
    
      Temporary breakpoint 1, main () at ../../../src/gdb/testsuite/gdb.mi/basics.c:62
      62        callee1 (2, "A string argument.", 3.5);
      (gdb) list
      57      {
      58      }
      59
      60      main ()
      61      {
      62        callee1 (2, "A string argument.", 3.5);
      63        callee1 (2, "A string argument.", 3.5);
      64
      65        do_nothing (); /* Hello, World! */
      66
      (gdb)
    
    Note the list started at line 57.  IOW, the program stopped at line
    62, and GDB centered the list on that.
    
    compare with:
    
      >./gdb -nx -q ./testsuite/gdb.mi/mi-cli -i=mi
      =thread-group-added,id="i1"
      ~"Reading symbols from /home/pedro/gdb/mygit/build/gdb/testsuite/gdb.mi/mi-cli..."
      ~"done.\n"
      (gdb)
      start
      &"start\n"
      ~"Temporary breakpoint 1 at 0x40054d: file ../../../src/gdb/testsuite/gdb.mi/basics.c, line 62.\n"
      =breakpoint-created,bkpt={number="1",type="breakpoint",disp="del",enabled="y",addr="0x000000000040054d",func="main",file="../../../src/gdb/testsuite/gdb.mi/basics.c",fullname="/home/pedro/gdb/mygit/src/gdb/testsuite/gdb.mi/basics.c",line="62",times="0",original-location="main"}
      ~"Starting program: /home/pedro/gdb/mygit/build/gdb/testsuite/gdb.mi/mi-cli \n"
      =thread-group-started,id="i1",pid="14221"
      =thread-created,id="1",group-id="i1"
      ^running
      *running,thread-id="all"
      (gdb)
      =library-loaded,id="/lib64/ld-linux-x86-64.so.2",target-name="/lib64/ld-linux-x86-64.so.2",host-name="/lib64/ld-linux-x86-64.so.2",symbols-loaded="0",thread-group="i1"
      =library-loaded,id="/lib64/libm.so.6",target-name="/lib64/libm.so.6",host-name="/lib64/libm.so.6",symbols-loaded="0",thread-group="i1"
      =library-loaded,id="/lib64/libc.so.6",target-name="/lib64/libc.so.6",host-name="/lib64/libc.so.6",symbols-loaded="0",thread-group="i1"
      =breakpoint-modified,bkpt={number="1",type="breakpoint",disp="del",enabled="y",addr="0x000000000040054d",func="main",file="../../../src/gdb/testsuite/gdb.mi/basics.c",fullname="/home/pedro/gdb/mygit/src/gdb/testsuite/gdb.mi/basics.c",line="62",times="1",original-location="main"}
      ~"\nTemporary breakpoint "
      ~"1, main () at ../../../src/gdb/testsuite/gdb.mi/basics.c:62\n"
      ~"62\t  callee1 (2, \"A string argument.\", 3.5);\n"
      *stopped,reason="breakpoint-hit",disp="del",bkptno="1",frame={addr="0x000000000040054d",func="main",args=[],file="../../../src/gdb/testsuite/gdb.mi/basics.c",fullname="/home/pedro/gdb/mygit/src/gdb/testsuite/gdb.mi/basics.c",line="62"},thread-id="1",stopped-threads="all",core="0"
      =breakpoint-deleted,id="1"
      (gdb)
      -interpreter-exec console list
      ~"62\t  callee1 (2, \"A string argument.\", 3.5);\n"
      ~"63\t  callee1 (2, \"A string argument.\", 3.5);\n"
      ~"64\t\n"
      ~"65\t  do_nothing (); /* Hello, World! */\n"
      ~"66\t\n"
      ~"67\t  callme (1);\n"
      ~"68\t  callme (2);\n"
      ~"69\t\n"
      ~"70\t  return 0;\n"
      ~"71\t}\n"
      ^done
      (gdb)
    
    Here the list starts at line 62, where the program was stopped.
    
    This happens because print_stack_frame, called from both normal_stop
    and mi_on_normal_stop, is the function responsible for setting the
    current sal from the selected frame, overrides the PRINT_WHAT
    argument, and only after that does it decide whether to center the
    current sal line or not, based on the overriden value, and it will
    always decide false.
    
    (The print_stack_frame call in mi_on_normal_stop is a little different
    from the call in normal_stop, in that it is an unconditional
    SRC_AND_LOC call.  The next patch will make those uniform.)
    
    Tested on x86_64 Fedora 16, no regressions.
    
    gdb/
    2012-05-09  Pedro Alves  <palves@redhat.com>
    
    	* stack.c (print_stack_frame): Compute CENTER before overriding
    	PRINT_WHAT.
    
    gdb/testsuite/
    2012-05-09  Pedro Alves  <palves@redhat.com>
    
    	* gdb.mi/mi-cli.exp: Adjust expected output of "list".
    	* gdb.mi/mi2-cli.exp: Likewise.

-----------------------------------------------------------------------


hooks/post-receive
--
Repository for Project Archer.


^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2013-07-09 18:28 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2013-07-09 18:28 [SCM] tromey/always-async: reverse-20080717-branchpoint-15251-gde4d7b9 tromey

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).