I updated my gdb sources and built it today. I found out that breakpoint structure was changed for gdb dap. Before it works correctly I could add "source" field to "Breakpoint" structure(as it is written in the dochttps://microsoft.github.io/debug-adapter-protocol/specification#Types_Breakpoint). But now I shouldn't do this otherwise I'm not able to set breakpoints with an error "gdb.dap.breakpoint._rewrite_src_breakpoint() got multiple values for keyword argument 'source". Could you please do as it was before? Log: How it works now. wo "source" field. qtc.dbg.dapengine: "Content-Length: 166\r\n\r\n{\"arguments\":{\"breakpoints\":[{\"line\":16}],\"source\":{\"path\":\"/home/artem/work/testproj/untitled/mainwindow.cpp\"}},\"command\":\"setBreakpoints\",\"seq\":15,\"type\":\"request\"}" How it worked before. with "source" field according to documentation. qtc.dbg.dapengine: "Content-Length: 260\r\n\r\n{\"arguments\":{\"breakpoints\":[{\"line\":16,\"source\":{\"name\":\"mainwindow.cpp\",\"path\":\"/home/artem/work/testproj/untitled/mainwindow.cpp\"}}],\"source\":{\"path\":\"/home/artem/work/testproj/untitled/mainwindow.cpp\"}},\"command\":\"setBreakpoints\",\"seq\":15,\"type\":\"request\"}" qtc.dbg.dapengine: insertBreakpoint 1 "1" qtc.dbg.dapengine: "Content-Length: 207\r\n\r\n{\"request_seq\": 15, \"type\": \"response\", \"command\": \"setBreakpoints\", \"success\": false, \"message\": \"gdb.dap.breakpoint._rewrite_src_breakpoint() got multiple values for keyword argument 'source'\", \"seq\": 177}"
set_breakpoint does: specs = [_rewrite_src_breakpoint(source=source, **bp) for bp in breakpoints] but if 'bp' has a 'source' entry then this will cause the clash. While we should probably fix this, at the same time I'm not sure this is expected. setBreakpoints takes an array of SourceBreakpoint objects, not Breakpoint objects. And SourceBreakpoint doesn't mention "source".
Yeah, You are right about SourceBreakpoint. Then it is not relevant.
https://sourceware.org/pipermail/gdb-patches/2023-September/202153.html
Thanks:) Idk Should I close the bug or someone else should do this?
The master branch has been updated by Tom Tromey <tromey@sourceware.org>: https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=f8ab027008863bd06513053ea9f84e1116c1cf73 commit f8ab027008863bd06513053ea9f84e1116c1cf73 Author: Tom Tromey <tromey@adacore.com> Date: Tue Sep 5 06:55:54 2023 -0600 Avoid spurious breakpoint-setting failure in DAP A user pointed out that if a DAP setBreakpoints request has a 'source' field in a SourceBreakpoint object, then the gdb DAP implementation will throw an exception. While SourceBreakpoint does not allow 'source' in the spec, it seems better to me to accept it. I don't think we should fully go down the "Postel's Law" path -- after all, we have the type-checker -- but at the same time, if we do send errors, they should be intentional and not artifacts of the implementation. Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=30820
Fixed.