Hi Andrew, >> +# Return 1 if target supports asynchronous execution, otherwise return 0. >> +gdb_caching_proc supports_target_async {} { >> + global srcdir subdir gdb_prompt > > These are not needed and should be removed. right: they are a remnant of the explicit gdb_reinitialize_dir $srcdir/$subdir in the first version. >> + gdb_test_multiple "continue &" "" { >> + -re "Continuing..*" { >> + set res 1 >> + } >> + -re ".*Asynchronous execution not supported on this target..*" { >> + set res 0 >> + } > > Both of these would be better written as '-re -wrap "....etc..."' adding > the -wrap will cause the $gdb_prompt to be matched. I don't think it > really matters in this case as you do call gdb_exit immediately after, > so I think any pending output from GDB is discarded, but it does make > the gdb.log a little neater, and so easier to grok. Unfortunately this doesn't work for the same reason I'd removed the explicit $gdb_prompt anchor -re "Continuing\\.\r\n$gdb_prompt $" { that I'd tried initially: in some cases, you get output like (gdb) continue &^M Continuing.^M (gdb) [Inferior 1 (process 3669382) exited normally]^M FAIL: gdb.dap/ada-scopes.exp: continue & (timeout) instead of the expected (gdb) continue &^M Continuing.^M (gdb) gdb_caching_proc supports_target_async caused gdb_exit to be called causing supports_target_async to incorrectly return 0. So that's what I'd like to check in. Rainer -- ----------------------------------------------------------------------------- Rainer Orth, Center for Biotechnology, Bielefeld University