-
Dodji Seketeli authored
* src/dbgengine/nmv-i-debugger.h (Breakpoint::{m_sub_breakpoints, m_parent_breakpoint}): New members. (IDebugger::Breakpoint::number): Change the type of this into a string. It can now be something like "2.1", for a sub-breakpoint of breakpoint "2", representing one location of the breakpoint 2 that has several locations. (IDebugger::Breakpoint::{sub_breakpoint_number, has_multiple_locations, append_sub_breakpoint, sub_breakpoints, parent_breakpoint_number, is_sub_breakpoint): New methods. (IDebugger::{BreakpointsSlot, breakpoints_list_signal, breakpoint_set_signal, stopped_signal, enable_breakpoint, disable_breakpoint, set_breakpoint_ignore_count, set_breakpoint_condition, enable_countpoint, is_countpoint, get_cached_breakpoints, get_breakpoint_from_cache, delete_breakpoint}): Adjust for use of type of the breakpoint number. * src/dbgengine/nmv-dbg-common.h (Output::ResultRecord::{m_breakpoint, breakpoints}): Adjust breakpoint map type. * src/dbgengine/nmv-debugger-utils.cc (null_breakpoints_slot): Likewise. * src/dbgengine/nmv-debugger-utils.h (null_breakpoints_slot): Likewise. * src/dbgengine/nmv-gdb-engine.cc (GDBEngine::Priv::{cached_breakpoints, breakpoints_list_signal, breakpoints_set_signal, breakpoint_deleted_signal, stopped_signal, on_stopped_signal}, OnBreakpointHandler::do_handle). Likewise. Also adjust usage of breakpoint number type. (OnStoppedHandler::do_handle): Adjust usage of breakpoint number type. (OnCommandDoneHandler::{flag_breakpoint_as_countpoint, do_handle}): Likewise. (GDBEngine::{breakpoint_deleted_signal, breakpoints_list_signal, stopped_signal, on_stopped_signal, enable_breakpoint, disable_breakpoint, set_breakpoint_ignore_count, set_breakpoint_condition, enable_countpoint, is_countpoint, get_cached_breakpoints, get_breakpoint_from_cache, append_breakpoint_to_cache, delete_breakpoint}): Likewise. * src/dbgengine/nmv-gdb-engine.h (GDGEngine::{breakpoints_list_signal, breakpoints_set_signal, breakpoint_deleted_signal, stopped_signal, on_stopped_signal, append_breakpoint_to_cache, enable_breakpoint, disable_breakpoint, set_breakpoint_ignore_count, set_breakpoint_condition, enable_countpoint, is_countpoint, get_cached_breakpoints, get_breakpoint_from_cache, delete_breakpoint}): Likewise. * src/dbgengine/nmv-gdbmi-parser.cc (GDBMIParser::Priv::skip_blank): New. (SKIP_BLANK2): Make this use the new GDBMIParser::Priv::skip_blank. (GDBMIParser::parse_result_record): Adjust for the use of breakpoint number. (GDBMIParser::parse_breakpoint_with_one_loc): Renamed GDBMIParser::parse_breakpoint into this. Make this support either parsing a sub-breakpoint or not. (GDBMIParser::parse_breakpoint): Write a new version of this that uses parse_breakpoint_with_one_loc to possibly parse a breakpoint with several locations. (GDBMIParse::parse_breakpoint_table): Adjust for use of breakpoint number. * src/dbgengine/nmv-gdbmi-parser.h (GDBMIParser::parse_breakpoint_with_one_loc): New entry point. (GDBMIParser::parse_breakpoint_table): Adjust for use of breakpoint number. * src/persp/dbgperspective/nmv-breakpoints-view.cc (BPColumns::id): Change the type of the breakpoint id from int to string. (BreakpointsView::Priv::update_or_append_breakpoint): New. Actually factorized from ... (BreakpointsView::Priv::set_breakpoint_condition): ... here. Modify this to add/set the sub-breakpoints of a multiple breakpoint. (BreakpointsView::Priv::{add_breakpoints, breakpoint_list_has_id, erase_breakpoint, on_debugger_breakpoints_list_signal, on_debugger_stopped_signal, on_debugger_breakpoint_deleted_signal, on_debugger_breakpoints_set_signal, on_breakpoint_delete_action, on_breakpoint_enable_toggled, on_countpoint_toggled, on_breakpoint_ignore_count_edited, on_breakpoint_condition_edited}) (BreakpointsView::set_breakpoints): Adjust for the type of breakpoint id. (BreakpointsView::Priv::append_breakpoint): Make this return void now. Change it to append sub-breakpoints of a multiple-locations breakpoint. Add comments. * src/persp/dbgperspective/nmv-breakpoints-view.h (BreakpointsView::set_breakpoints): Adjust for the type of breakpoint id. * src/persp/dbgperspective/nmv-call-stack.cc (CallStack::Priv::on_debugger_stopped_signal): Likewise. * src/persp/dbgperspective/nmv-dbg-perspective.cc (DBGPerspective::{on_break_before_jump, on_debugger_breakpoints_set_signal, on_debugger_breakpoints_list_signal, on_debugger_breakpoint_deleted_signal, on_debugger_stopped_signal, jump_to_location, append_breakpoints, delete_breakpoint, toggle_breakpoint_enabled, delete_visual_breakpoint, get_frame_breakpoints_address_range, record_and_save_session, execute_program, re_initialize_set_breakpoints, get_breakpoint, delete_visual_breakpoints, apply_decorations_to_source, apply_decorations_to_asm} DBGPerspective::Priv::{breakpoints}): Likewise. (DBGPerspective::append_breakpoint): Append sub-breakpoints of a multiple-locations breakpoint. * src/persp/dbgperspective/nmv-dbg-perspective.h (DBGPerspective::{append_breakpoint, delete_breakpoint}): Adjust for the type of breakpoint id. * src/persp/dbgperspective/nmv-expr-monitor.cc (ExprMonitor::Priv::on_stopped_signal): Likewise. * src/persp/dbgperspective/nmv-local-vars-inspector.cc (LocalVarsInspector::Priv::on_stopped_signal): Likewise. * src/persp/dbgperspective/nmv-memory-view.cc (MemoryView::Priv::on_stopped_signal): Likewise. * src/persp/dbgperspective/nmv-registers-view.cc (RegistersView::Priv::on_debugger_stopped): Likewise. * src/persp/dbgperspective/nmv-thread-list.cc (ThreadList::Priv::on_debugger_stopped_signal): Likewise. * tests/test-breakpoint.cc (test_main): Set a breakpoint on the overloaded Person::overload method, to test this new "breakpoint with multiple locations" feature support. (on_breakpoints_set_signal): Adjust for the use of breakpoint id type. (on_stopped_signal): Likewise. Support stopping on 'Person::overload' overloaded method, and continuing from there. (on_program_finished_signal): Update the number of breakpoint stops expected. * tests/test-core.cc (on_stopped_signal): Adjust for the use of breakpoint id type. * tests/test-deref.cc (on_stopped_signal): Likewise. * tests/test-disassemble.cc (on_stopped_signal): Likewise. * tests/test-gdbmi.cc (gv_breakpoint3): New breakpoint with multiple location MI output. (test_breakpoint): Test the parsing of the new gv_breakpoint3. (test_breakpoint_table): Adjust for the use of breakpoint id type. * tests/test-local-vars-list.cc (on_stopped_signal): Adjust for the use of breakpoint id type. * tests/test-pretty-print.cc (on_stopped_signal): Likewise. * tests/test-threads.cc (on_stopped_signal): Likewise. * tests/test-types.cc (on_stopped_signal): Likewise. * tests/test-var-list.cc (on_stopped_signal): Likewise. * tests/test-var-path-expr.cc (on_breakpoints_set_signal) (on_stopped_signal): Likewise. * tests/test-var-walker.cc (on_stopped_signal): Likewise. * tests/test-variable-format.cc (on_stopped_signal): Likewise. * tests/test-varobj-walker.cc (on_stopped_signal): Likewise. * tests/test-vars.cc (on_stopped_signal): Likewise. * tests/test-watchpoint.cc (on_breakpoints_set_signal) (on_stopped_signal): Likewise.
b1a4e55e