[gdbplugin] fixes for multiple and moving breakpoints
This MR fixes 3 related issues with break-points in the GDB plugin:
-
More than one break-point in the same line: Since the debugger can move the requested break-point to the nearest line with a statement, there can be more than one line-based break-point at the same location.
This change is to ensure all the replicas are removed at once, because the request is asking for line and not break-point ids, and to prevent the function `toggleBreakpoint' to be confused.
A document should keep a line highlighted if there are at least one breakpoint in the line.
-
Line info were no properly captured from breakpoint objects when using lldb-mi because the field "pending" is provided even if the document has been resolved.
This also avoids capturing empty file names (lldb-mi returns "??" and "??/??" when the file name could not be resolved).
-
When using GDB/LLDM-MI, break-point location was not correctly updated in the document in response to a break-point modification (for example, after the debugger resolved a pending break-point).