[v2,0/6] Implement DAP cancellation

Message ID 20231211-dap-cancel-v2-0-db7b52cf0329@adacore.com
Headers
Series Implement DAP cancellation |

Message

Tom Tromey Dec. 11, 2023, 4:02 p.m. UTC
  DAP specifies a way to cancel requests.  Previously, I didn't
implement this, because it didn't seem necessary.  However, I realized
later that a 'repl' evaluation can cause the inferior to continue (or
gdb to invoke a long-running CLI or Python command), and a request
like this will not finish -- cancellation is necessary.

This series implements this feature.  I've split it into bite-sized
pieces.

Tested on x86-64 Fedora 38.

---
Changes in v2:
- Updated documentation per review
- Link to v1: https://inbox.sourceware.org/gdb-patches/20231201-dap-cancel-v1-0-872022fc328a@adacore.com

---
Tom Tromey (6):
      Clean up handling of DAP not-stopped response
      Move DAP JSON reader to its own thread
      Introduce gdb.interrupt
      Rename a couple of DAP procs in the testsuite
      Catch KeyboardInterrupt in send_gdb_with_response
      Implement DAP cancellation

 gdb/NEWS                          |   5 ++
 gdb/doc/gdb.texinfo               |  16 ++++++
 gdb/doc/python.texi               |  11 ++++
 gdb/python/lib/gdb/dap/server.py  | 115 ++++++++++++++++++++++++++++++++++++--
 gdb/python/lib/gdb/dap/startup.py |   4 +-
 gdb/python/python.c               |  19 +++++++
 gdb/testsuite/gdb.dap/pause.exp   |  71 +++++++++++++++++++++++
 gdb/testsuite/lib/dap-support.exp |  10 ++--
 8 files changed, 239 insertions(+), 12 deletions(-)
---
base-commit: 9a099bc220fbc97e9ccff6a7e1861e11665e8899
change-id: 20231201-dap-cancel-2c292d80ba37

Best regards,
  

Comments

Tom Tromey Dec. 11, 2023, 6:53 p.m. UTC | #1
>>>>> "Tom" == Tom Tromey <tromey@adacore.com> writes:

Tom> DAP specifies a way to cancel requests.  Previously, I didn't
Tom> implement this, because it didn't seem necessary.  However, I realized
Tom> later that a 'repl' evaluation can cause the inferior to continue (or
Tom> gdb to invoke a long-running CLI or Python command), and a request
Tom> like this will not finish -- cancellation is necessary.

Tom> This series implements this feature.  I've split it into bite-sized
Tom> pieces.

Tom> Tested on x86-64 Fedora 38.

I'm going to check this in now.

Tom