]> git.ipfire.org Git - thirdparty/binutils-gdb.git/commit - gdb/testsuite/gdb.base/source-execution.c
"source", foreground execution commands, and target-async
authorPedro Alves <palves@redhat.com>
Tue, 25 Mar 2014 11:45:53 +0000 (11:45 +0000)
committerPedro Alves <palves@redhat.com>
Tue, 25 Mar 2014 11:45:53 +0000 (11:45 +0000)
commitd3839ede057ef077667978dbd065e7b5702c9176
treef6b662ebdd81841755771ff5eec833e2c05932f1
parentc955de363b91edba8a92877f97b1be68357d9582
"source", foreground execution commands, and target-async

Sourcing a GDB script that runs foreground execution commands in
succession fails if the target can async:

 Breakpoint 1, main () at ../../../src/gdb/testsuite/gdb.base/source-execution.c:36
 36        func1 ();
 (gdb) source ../../../src/gdb/testsuite/gdb.base/source-execution.gdb
 ../../../src/gdb/testsuite/gdb.base/source-execution.gdb:21: Error in sourced command file:
 Cannot execute this command while the selected thread is running.
 (gdb) FAIL: gdb.base/source-execution.exp: source source-execution.gdb

That is, after a foreground execution command, GDB moves on to the
following command immediately before waiting for the previous command
to complete.

https://sourceware.org/ml/gdb-patches/2011-09/msg00037.html (b4a14fd0)
addressed this for command lists, Python's gdb.execute, etc., but
missed "source".  Fixed now in the same way.

gdb/
2014-03-25  Pedro Alves  <palves@redhat.com>

* cli/cli-script.c (script_from_file): Force the interpreter to
sync mode.

gdb/testsuite/
2014-03-25  Pedro Alves  <palves@redhat.com>
    Doug Evans  <dje@google.com>

* gdb.base/source-execution.c: New file.
* gdb.base/source-execution.exp: New file.
* gdb.base/source-execution.gdb: New file.
gdb/ChangeLog
gdb/cli/cli-script.c
gdb/testsuite/ChangeLog
gdb/testsuite/gdb.base/source-execution.c [new file with mode: 0644]
gdb/testsuite/gdb.base/source-execution.exp [new file with mode: 0644]
gdb/testsuite/gdb.base/source-execution.gdb [new file with mode: 0644]