• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /freebsd-12-stable/contrib/gdb/gdb/

Lines Matching refs:ecs

76 static int currently_stepping (struct execution_control_state *ecs);
827 is used to initialize the starting line number in the ecs. With an
992 void init_execution_control_state (struct execution_control_state *ecs);
994 static void handle_step_into_function (struct execution_control_state *ecs);
995 void handle_inferior_event (struct execution_control_state *ecs);
997 static void check_sigtramp2 (struct execution_control_state *ecs);
998 static void step_into_function (struct execution_control_state *ecs);
999 static void step_over_function (struct execution_control_state *ecs);
1000 static void stop_stepping (struct execution_control_state *ecs);
1001 static void prepare_to_wait (struct execution_control_state *ecs);
1002 static void keep_going (struct execution_control_state *ecs);
1017 struct execution_control_state *ecs;
1025 a local to get the ecs pointer. */
1026 ecs = &ecss;
1029 init_execution_control_state (ecs);
1047 ecs->ptid = target_wait_hook (ecs->waiton_ptid, ecs->wp);
1049 ecs->ptid = target_wait (ecs->waiton_ptid, ecs->wp);
1052 handle_inferior_event (ecs);
1054 if (!ecs->wait_some_more)
1130 init_execution_control_state (struct execution_control_state *ecs)
1132 /* ecs->another_trap? */
1133 ecs->random_signal = 0;
1134 ecs->remove_breakpoints_on_following_step = 0;
1135 ecs->handling_longjmp = 0; /* FIXME */
1136 ecs->update_step_sp = 0;
1137 ecs->stepping_through_solib_after_catch = 0;
1138 ecs->stepping_through_solib_catchpoints = NULL;
1139 ecs->enable_hw_watchpoints_after_wait = 0;
1140 ecs->stepping_through_sigtramp = 0;
1141 ecs->sal = find_pc_line (prev_pc, 0);
1142 ecs->current_line = ecs->sal.line;
1143 ecs->current_symtab = ecs->sal.symtab;
1144 ecs->infwait_state = infwait_normal_state;
1145 ecs->waiton_ptid = pid_to_ptid (-1);
1146 ecs->wp = &(ecs->ws);
1176 context_switch (struct execution_control_state *ecs)
1184 if (in_thread_list (inferior_ptid) && in_thread_list (ecs->ptid))
1191 ecs->handling_longjmp, ecs->another_trap,
1192 ecs->stepping_through_solib_after_catch,
1193 ecs->stepping_through_solib_catchpoints,
1194 ecs->stepping_through_sigtramp,
1195 ecs->current_line, ecs->current_symtab, step_sp);
1198 load_infrun_state (ecs->ptid, &prev_pc,
1202 &ecs->handling_longjmp, &ecs->another_trap,
1203 &ecs->stepping_through_solib_after_catch,
1204 &ecs->stepping_through_solib_catchpoints,
1205 &ecs->stepping_through_sigtramp,
1206 &ecs->current_line, &ecs->current_symtab, &step_sp);
1208 inferior_ptid = ecs->ptid;
1248 handle_step_into_function (struct execution_control_state *ecs)
1254 && in_prologue (prev_pc, ecs->stop_func_start)))
1264 stop_stepping (ecs);
1285 step_over_function (ecs);
1286 keep_going (ecs);
1299 ecs->stop_func_start = real_stop_pc;
1310 tmp_sal = find_pc_line (ecs->stop_func_start, 0);
1313 step_into_function (ecs);
1325 stop_stepping (ecs);
1329 step_over_function (ecs);
1330 keep_going (ecs);
1335 adjust_pc_after_break (struct execution_control_state *ecs)
1365 if (ecs->ws.kind != TARGET_WAITKIND_STOPPED)
1368 if (ecs->ws.value.sig != TARGET_SIGNAL_TRAP)
1373 stop_pc = read_pc_pid (ecs->ptid) - DECR_PC_AFTER_BREAK;
1401 && !(currently_stepping (ecs)
1408 write_pc_pid (stop_pc, ecs->ptid);
1416 handle_inferior_event (struct execution_control_state *ecs)
1427 target_last_wait_ptid = ecs->ptid;
1428 target_last_waitstatus = *ecs->wp;
1430 adjust_pc_after_break (ecs);
1432 switch (ecs->infwait_state)
1436 ecs->waiton_ptid = pid_to_ptid (-1);
1439 if (ecs->enable_hw_watchpoints_after_wait)
1442 ecs->enable_hw_watchpoints_after_wait = 0;
1450 if (ecs->enable_hw_watchpoints_after_wait)
1453 ecs->enable_hw_watchpoints_after_wait = 0;
1474 ecs->infwait_state = infwait_normal_state;
1480 ecs->new_thread_event = (!ptid_equal (ecs->ptid, inferior_ptid)
1481 && !in_thread_list (ecs->ptid));
1483 if (ecs->ws.kind != TARGET_WAITKIND_EXITED
1484 && ecs->ws.kind != TARGET_WAITKIND_SIGNALLED && ecs->new_thread_event)
1486 add_thread (ecs->ptid);
1489 ui_out_text (uiout, target_pid_or_tid_to_str (ecs->ptid));
1513 prepare_to_wait (ecs);
1518 switch (ecs->ws.kind)
1561 prepare_to_wait (ecs);
1566 prepare_to_wait (ecs);
1571 print_stop_reason (EXITED, ecs->ws.value.integer);
1577 (LONGEST) ecs->ws.value.integer));
1582 stop_stepping (ecs);
1587 stop_signal = ecs->ws.value.sig;
1599 stop_stepping (ecs);
1607 pending_follow.kind = ecs->ws.kind;
1609 pending_follow.fork_event.parent_pid = PIDGET (ecs->ptid);
1610 pending_follow.fork_event.child_pid = ecs->ws.value.related_pid;
1614 stop_bpstat = bpstat_stop_status (stop_pc, ecs->ptid);
1616 ecs->random_signal = !bpstat_explains_signal (stop_bpstat);
1619 if (ecs->random_signal)
1622 keep_going (ecs);
1643 target_resume (ecs->ptid, 0, TARGET_SIGNAL_0);
1644 prepare_to_wait (ecs);
1651 savestring (ecs->ws.value.execd_pathname,
1652 strlen (ecs->ws.value.execd_pathname));
1659 stop_pc = read_pc_pid (ecs->ptid);
1660 ecs->saved_inferior_ptid = inferior_ptid;
1661 inferior_ptid = ecs->ptid;
1663 stop_bpstat = bpstat_stop_status (stop_pc, ecs->ptid);
1665 ecs->random_signal = !bpstat_explains_signal (stop_bpstat);
1666 inferior_ptid = ecs->saved_inferior_ptid;
1669 if (ecs->random_signal)
1672 keep_going (ecs);
1701 prepare_to_wait (ecs);
1715 Thus, we simply set the flag ecs->enable_hw_watchpoints_after_wait
1719 target_resume (ecs->ptid, 1, TARGET_SIGNAL_0);
1724 ecs->enable_hw_watchpoints_after_wait =
1727 prepare_to_wait (ecs);
1731 stop_signal = ecs->ws.value.sig;
1744 prepare_to_wait (ecs);
1755 if (ecs->new_thread_event)
1758 prepare_to_wait (ecs);
1762 stop_pc = read_pc_pid (ecs->ptid);
1767 gdb_assert (ptid_equal (singlestep_ptid, ecs->ptid));
1781 ecs->random_signal = 0;
1783 ecs->ptid = saved_singlestep_ptid;
1784 context_switch (ecs);
1786 context_hook (pid_to_thread_id (ecs->ptid));
1789 prepare_to_wait (ecs);
1809 ecs->random_signal = 0;
1810 if (!breakpoint_thread_match (stop_pc, ecs->ptid))
1815 ecs->random_signal = 0;
1819 really different from ecs->ptid. */
1820 if (!ptid_equal (singlestep_ptid, ecs->ptid)
1854 write_pc_pid (stop_pc + 4, ecs->ptid);
1862 target_resume (ecs->ptid,
1863 currently_stepping (ecs), TARGET_SIGNAL_0);
1866 currently_stepping (ecs), TARGET_SIGNAL_0);
1867 prepare_to_wait (ecs);
1873 if (!ptid_equal (inferior_ptid, ecs->ptid))
1874 context_switch (ecs);
1875 ecs->waiton_ptid = ecs->ptid;
1876 ecs->wp = &(ecs->ws);
1877 ecs->another_trap = 1;
1879 ecs->infwait_state = infwait_thread_hop_state;
1880 keep_going (ecs);
1888 ecs->random_signal = 0;
1892 ecs->random_signal = 1;
1901 if (!ptid_equal (ecs->ptid, inferior_ptid) &&
1908 if (ecs->random_signal && signal_print[stop_signal])
1942 target_resume (ecs->ptid, 0, stop_signal);
1943 prepare_to_wait (ecs);
1950 context_switch (ecs);
1953 context_hook (pid_to_thread_id (ecs->ptid));
1969 /* if (INSTRUCTION_NULLIFIED && currently_stepping (ecs)) */
1973 target_resume (ecs->ptid, 1, TARGET_SIGNAL_0);
1979 ecs->infwait_state = infwait_nullified_state;
1980 ecs->waiton_ptid = ecs->ptid;
1981 ecs->wp = &(ecs->tmpstatus);
1982 prepare_to_wait (ecs);
1989 if (HAVE_STEPPABLE_WATCHPOINT && STOPPED_BY_WATCHPOINT (ecs->ws))
1992 prepare_to_wait (ecs);
1999 if (HAVE_NONSTEPPABLE_WATCHPOINT && STOPPED_BY_WATCHPOINT (ecs->ws))
2020 target_resume (ecs->ptid, 1, TARGET_SIGNAL_0); /* Single step */
2022 ecs->waiton_ptid = ecs->ptid;
2023 ecs->wp = &(ecs->ws);
2024 ecs->infwait_state = infwait_nonstep_watch_state;
2025 prepare_to_wait (ecs);
2031 STOPPED_BY_WATCHPOINT (ecs->ws);
2033 ecs->stop_func_start = 0;
2034 ecs->stop_func_end = 0;
2035 ecs->stop_func_name = 0;
2038 find_pc_partial_function (stop_pc, &ecs->stop_func_name,
2039 &ecs->stop_func_start, &ecs->stop_func_end);
2040 ecs->stop_func_start += FUNCTION_START_OFFSET;
2041 ecs->another_trap = 0;
2046 ecs->random_signal = 0;
2054 (set ecs->another_trap to 1 to single step once)
2055 3) set ecs->random_signal to 1, and the decision between 1 and 2
2080 stop_stepping (ecs);
2088 stop_stepping (ecs);
2098 stop_stepping (ecs);
2117 stop_bpstat = bpstat_stop_status (stop_pc, ecs->ptid);
2145 ecs->random_signal
2151 ecs->random_signal = !bpstat_explains_signal (stop_bpstat);
2152 if (!ecs->random_signal)
2162 ecs->random_signal = 1;
2168 if (ecs->random_signal)
2183 stop_stepping (ecs);
2227 check_sigtramp2 (ecs);
2228 keep_going (ecs);
2258 keep_going (ecs);
2283 ecs->handling_longjmp = 1; /* FIXME */
2284 keep_going (ecs);
2297 ecs->another_trap = 1;
2298 keep_going (ecs);
2303 ecs->handling_longjmp = 0; /* FIXME */
2314 ecs->another_trap = 1;
2326 stop_stepping (ecs);
2336 stop_stepping (ecs);
2373 ecs->another_trap = 1;
2420 stop_stepping (ecs);
2450 &ecs->
2452 ecs->stepping_through_solib_after_catch = 1;
2456 ecs->another_trap = 1;
2462 ecs->another_trap = 1;
2486 if (ecs->stepping_through_solib_after_catch)
2490 if (SOLIB_IN_DYNAMIC_LINKER (PIDGET (ecs->ptid), stop_pc))
2492 ecs->another_trap = 1;
2493 keep_going (ecs);
2499 ecs->stepping_through_solib_after_catch = 0;
2501 stop_bpstat = bpstat_copy (ecs->stepping_through_solib_catchpoints);
2502 bpstat_clear (&ecs->stepping_through_solib_catchpoints);
2504 stop_stepping (ecs);
2515 check_sigtramp2 (ecs);
2516 keep_going (ecs);
2525 check_sigtramp2 (ecs);
2526 keep_going (ecs);
2539 check_sigtramp2 (ecs);
2540 keep_going (ecs);
2571 keep_going (ecs);
2578 ecs->update_step_sp = 1;
2640 find_pc_partial_function (stop_pc, &ecs->stop_func_name,
2641 &ecs->stop_func_start,
2642 &ecs->stop_func_end);
2644 step_range_start = ecs->stop_func_start;
2645 step_range_end = ecs->stop_func_end;
2646 ecs->stepping_through_sigtramp = 1;
2659 ecs->remove_breakpoints_on_following_step = 1;
2660 keep_going (ecs);
2664 if (((stop_pc == ecs->stop_func_start /* Quick test */
2665 || in_prologue (stop_pc, ecs->stop_func_start))
2666 && !IN_SOLIB_RETURN_TRAMPOLINE (stop_pc, ecs->stop_func_name))
2667 || IN_SOLIB_CALL_TRAMPOLINE (stop_pc, ecs->stop_func_name)
2668 || ecs->stop_func_name == 0)
2671 handle_step_into_function (ecs);
2677 ecs->sal = find_pc_line (stop_pc, 0);
2685 stop_stepping (ecs);
2691 if (IN_SOLIB_RETURN_TRAMPOLINE (stop_pc, ecs->stop_func_name))
2716 keep_going (ecs);
2721 if (ecs->sal.line == 0)
2729 stop_stepping (ecs);
2733 if ((stop_pc == ecs->sal.pc)
2734 && (ecs->current_line != ecs->sal.line
2735 || ecs->current_symtab != ecs->sal.symtab))
2743 stop_stepping (ecs);
2754 if (ecs->stop_func_end && ecs->sal.end >= ecs->stop_func_end)
2763 stop_stepping (ecs);
2766 step_range_start = ecs->sal.pc;
2767 step_range_end = ecs->sal.end;
2769 ecs->current_line = ecs->sal.line;
2770 ecs->current_symtab = ecs->sal.symtab;
2797 keep_going (ecs);
2803 currently_stepping (struct execution_control_state *ecs)
2806 && !ecs->handling_longjmp
2809 || ecs->stepping_through_solib_after_catch
2814 check_sigtramp2 (struct execution_control_state *ecs)
2844 ecs->remove_breakpoints_on_following_step = 1;
2845 ecs->another_trap = 1;
2853 step_into_function (struct execution_control_state *ecs)
2860 ecs->stop_func_start = SKIP_PROLOGUE (ecs->stop_func_start);
2862 ecs->sal = find_pc_line (ecs->stop_func_start, 0);
2869 if (ecs->sal.end
2870 && ecs->sal.pc != ecs->stop_func_start
2871 && ecs->sal.end < ecs->stop_func_end)
2872 ecs->stop_func_start = ecs->sal.end;
2876 ``ecs->stop_func_start == stop_pc'' will never succeed. Adjust
2877 ecs->stop_func_start to an address at which a breakpoint may be
2892 ecs->stop_func_start
2894 ecs->stop_func_start);
2897 if (ecs->stop_func_start == stop_pc)
2902 stop_stepping (ecs);
2909 sr_sal.pc = ecs->stop_func_start;
2910 sr_sal.section = find_pc_overlay (ecs->stop_func_start);
2923 keep_going (ecs);
2939 step_over_function (struct execution_control_state *ecs)
2998 stop_stepping (struct execution_control_state *ecs)
3001 ecs->wait_some_more = 0;
3009 keep_going (struct execution_control_state *ecs)
3014 if (ecs->update_step_sp)
3016 ecs->update_step_sp = 0;
3026 resume (currently_stepping (ecs), stop_signal);
3045 && ecs->remove_breakpoints_on_following_step)
3047 ecs->remove_breakpoints_on_following_step = 0;
3052 (through_sigtramp_breakpoint != NULL || !ecs->another_trap))
3057 stop_stepping (ecs);
3063 trap_expected = ecs->another_trap;
3081 resume (currently_stepping (ecs), stop_signal);
3084 prepare_to_wait (ecs);
3092 prepare_to_wait (struct execution_control_state *ecs)
3094 if (ecs->infwait_state == infwait_normal_state)
3105 ecs->waiton_ptid = pid_to_ptid (-1);
3106 ecs->wp = &(ecs->ws);
3111 ecs->wait_some_more = 1;