40 #include "filenames.h" 73 #include "readline/readline.h" 74 #include "readline/history.h" 114 int,
int,
int,
unsigned);
175 int *other_type_used);
319 static const char *
const bpdisps[] = {
"del",
"dstp",
"dis",
"keep"};
321 return bpdisps[(int) disp];
335 _(
"Debugger's willingness to use " 336 "watchpoint hardware is %s.\n"),
351 _(
"Debugger's behavior regarding " 352 "pending breakpoints is %s.\n"),
367 _(
"Automatic usage of hardware breakpoints is %s.\n"),
495 #define ALL_BREAKPOINTS(B) for (B = breakpoint_chain; B; B = B->next) 497 #define ALL_BREAKPOINTS_SAFE(B,TMP) \ 498 for (B = breakpoint_chain; \ 499 B ? (TMP=B->next, 1): 0; \ 506 #define ALL_BP_LOCATIONS(B,BP_TMP) \ 507 for (BP_TMP = bp_locations; \ 508 BP_TMP < bp_locations + bp_locations_count && (B = *BP_TMP);\ 517 #define ALL_BP_LOCATIONS_AT_ADDR(BP_LOCP_TMP, BP_LOCP_START, ADDRESS) \ 518 for (BP_LOCP_START = BP_LOCP_START == NULL ? get_first_locp_gte_addr (ADDRESS) : BP_LOCP_START, \ 519 BP_LOCP_TMP = BP_LOCP_START; \ 521 && (BP_LOCP_TMP < bp_locations + bp_locations_count \ 522 && (*BP_LOCP_TMP)->address == ADDRESS); \ 527 #define ALL_TRACEPOINTS(B) \ 528 for (B = breakpoint_chain; B; B = B->next) \ 529 if (is_tracepoint (B)) 566 static int breakpoint_count;
572 static int prev_breakpoint_count;
576 static int tracepoint_count;
592 if (
func (b, user_data) != 0)
611 prev_breakpoint_count = breakpoint_count;
612 breakpoint_count = num;
716 const char *old_mode, *new_mode;
722 warning (
_(
"Target does not support breakpoint condition evaluation.\n" 723 "Using host evaluation mode instead."));
735 if (new_mode != old_mode)
759 loc->needs_update = 1;
778 _(
"Breakpoint condition evaluation " 779 "mode is %s (currently %s).\n"),
825 if (locp_found == NULL)
871 const char *arg = exp;
886 error (
_(
"Junk at end of expression"));
900 error (
_(
"Junk at end of expression"));
914 const char *text,
const char *word)
928 if (!isdigit (text[1]))
942 if (strncmp (
number, text, len) == 0)
972 error (
_(
"Bad breakpoint argument: '%s'"), arg);
985 error (
_(
"Only one stop condition allowed. There is currently" 986 " a %s stop condition defined for this breakpoint."),
997 error (
_(
"No breakpoint number %d."), bnum);
1009 for (c = commands; c; c = c->
next)
1014 error (
_(
"The 'while-stepping' command can " 1015 "only be used for tracepoints"));
1023 if (strstr (c->
line,
"collect ") == c->
line)
1024 error (
_(
"The 'collect' command can only be used for tracepoints"));
1026 if (strstr (c->
line,
"teval ") == c->
line)
1027 error (
_(
"The 'teval' command can only be used for tracepoints"));
1061 static std::unique_ptr<breakpoint>
1073 return std::unique_ptr<breakpoint> (b);
1105 for (c = commands; c; c = c->
next)
1110 error (
_(
"The 'while-stepping' command " 1111 "cannot be used for fast tracepoint"));
1113 error (
_(
"The 'while-stepping' command " 1114 "cannot be used for static tracepoint"));
1117 error (
_(
"The 'while-stepping' command " 1118 "can be used only once"));
1131 for (; c2; c2 = c2->
next)
1134 error (
_(
"The 'while-stepping' command cannot be nested"));
1148 static_tracepoints_here (
CORE_ADDR addr)
1158 if (
loc->address == addr)
1174 b->
commands = std::move (commands);
1185 int old_silent = b->
silent;
1188 if (old_silent != silent)
1198 int old_thread = b->
thread;
1201 if (old_thread != thread)
1211 int old_task = b->
task;
1214 if (old_task != task)
1234 if (arg == NULL || !*arg)
1236 if (breakpoint_count - prev_breakpoint_count > 1)
1237 new_arg =
string_printf (
"%d-%d", prev_breakpoint_count + 1,
1239 else if (breakpoint_count > 0)
1241 arg = new_arg.c_str ();
1249 if (control != NULL)
1254 = string_printf (_(
"Type commands for breakpoint(s) " 1255 "%s, one per line."),
1258 cmd = read_command_lines (&str[0],
1261 ? check_tracepoint_command : 0),
1270 validate_commands_for_breakpoint (b, cmd.get ());
1272 observer_notify_breakpoint_modified (b);
1342 if (bp_addr + bp_size <= memaddr)
1349 if (bp_addr >= memaddr + len)
1357 if (bp_addr < memaddr)
1360 bp_size -= memaddr - bp_addr;
1361 bptoffset = memaddr - bp_addr;
1365 if (bp_addr + bp_size > memaddr + len)
1368 bp_size -= (bp_addr + bp_size) - (memaddr + len);
1371 if (readbuf != NULL)
1381 memcpy (readbuf + bp_addr - memaddr,
1386 const unsigned char *
bp;
1392 writebuf_org + bp_addr - memaddr, bp_size);
1400 memcpy (writebuf + bp_addr - memaddr,
bp + bptoffset, bp_size);
1429 unsigned bc_l, bc_r, bc;
1437 while (bc_l + 1 < bc_r)
1441 bc = (bc_l + bc_r) / 2;
1487 warning (
_(
"reading through apparently deleted breakpoint #%d?"),
1494 && memaddr + len <= (bl->
address 1577 static struct value *
1580 struct value *bit_val;
1682 int within_current_scope;
1699 within_current_scope = 1;
1722 within_current_scope = (fi != NULL);
1723 if (within_current_scope)
1732 if (within_current_scope && reparse)
1774 error (
_(
"Can't set read/access watchpoint when " 1775 "hardware watchpoints are disabled."));
1778 else if (within_current_scope && b->
exp)
1781 struct value *val_chain, *v, *result, *
next;
1829 int bitpos = 0, bitsize = 0;
1861 for (tmp = &(b->
loc); *tmp != NULL; tmp = &((*tmp)->next))
1866 loc->pspace = frame_pspace;
1872 loc->length = ((bitpos % 8) + bitsize + 7) / 8;
1896 int i, target_resources_ok, other_type_used;
1929 if (target_resources_ok <= 0)
1933 if (target_resources_ok == 0 && !sw_mode)
1934 error (
_(
"Target does not support this type of " 1935 "hardware watchpoint."));
1936 else if (target_resources_ok < 0 && !sw_mode)
1937 error (
_(
"There are not enough available hardware " 1938 "resources for this watchpoint."));
1955 error (
_(
"Can't set read/access watchpoint when " 1956 "hardware watchpoints are disabled."));
1958 error (
_(
"Expression cannot be implemented with " 1959 "read/access watchpoint."));
1966 for (bl = b->
loc; bl; bl = bl->
next)
1970 for (v = val_chain; v; v =
next)
1984 else if (!within_current_scope)
1987 Watchpoint %d deleted because the program has left the block\n\ 1988 in which its expression is valid.\n"),
2051 "infrun: skipping breakpoint: " 2052 "stepping past insn at: %s\n",
2066 "infrun: stepping past non-steppable watchpoint. " 2067 "skipping watchpoint at %s:%d\n",
2084 const int save_duplicate = bl->
duplicate;
2134 int null_condition_or_parse_error = 0;
2171 if (!
loc->cond_bytecode)
2173 null_condition_or_parse_error = 1;
2185 if (null_condition_or_parse_error)
2194 if (!
loc->cond_bytecode)
2197 loc->cond_bytecode.reset ();
2229 const char *cmdrest;
2230 const char *format_start, *format_end;
2238 if (*cmdrest ==
',')
2242 if (*cmdrest++ !=
'"')
2243 error (
_(
"No format string following the location"));
2245 format_start = cmdrest;
2249 format_end = cmdrest;
2251 if (*cmdrest++ !=
'"')
2252 error (
_(
"Bad format string, non-terminated '\"'."));
2256 if (!(*cmdrest ==
',' || *cmdrest ==
'\0'))
2257 error (
_(
"Invalid argument syntax"));
2259 if (*cmdrest ==
',')
2265 std::vector<struct expression *> argvec;
2266 while (*cmdrest !=
'\0')
2272 argvec.push_back (expr.release ());
2274 if (*cmdrest ==
',')
2285 format_start, format_end - format_start,
2286 argvec.size (), argvec.
data ());
2308 int null_command_or_parse_error = 0;
2353 loc->owner->extra_string);
2358 if (!
loc->cmd_bytecode)
2360 null_command_or_parse_error = 1;
2368 if (null_command_or_parse_error)
2378 if (
loc->cmd_bytecode == NULL)
2381 loc->cmd_bytecode.reset ();
2391 if (
loc->owner->extra_string
2441 struct ui_file *tmp_error_stream,
2442 int *disabled_breaks,
2443 int *hw_breakpoint_error,
2444 int *hw_bp_error_explained_already)
2516 static int said = 0;
2522 _(
"Note: automatically using " 2523 "hardware breakpoints for " 2524 "read-only addresses.\n"));
2533 _(
"Cannot insert breakpoint %d.\n" 2534 "Cannot set software breakpoint " 2535 "at read-only address %s\n"),
2573 warning (
_(
"hardware breakpoint %d not supported in overlay!"),
2603 if (bp_excpt.
reason != 0)
2605 "Overlay breakpoint %d " 2606 "failed: in ROM?\n",
2636 if (bp_excpt.
reason != 0)
2659 if (!*disabled_breaks)
2662 "Cannot insert breakpoint %d.\n",
2665 "Temporarily disabling shared " 2666 "library breakpoints:\n");
2668 *disabled_breaks = 1;
2677 *hw_breakpoint_error = 1;
2678 *hw_bp_error_explained_already = bp_excpt.
message != NULL;
2680 "Cannot insert hardware breakpoint %d%s",
2682 bp_excpt.
message ?
":" :
".\n");
2696 "Cannot insert breakpoint %d.\n" 2703 "Cannot insert breakpoint %d: %s\n",
2780 Error inserting catchpoint %d: Your system does not support this type\n\ 2823 if (
loc->owner->loc ==
loc)
2824 loc->owner->loc =
loc->next;
2826 for (tmp =
loc->owner->loc; tmp->
next != NULL; tmp = tmp->
next)
2872 callback (
loc, NULL);
2886 int disabled_breaks = 0;
2887 int hw_breakpoint_error = 0;
2888 int hw_bp_details_reported = 0;
2894 tmp_error_stream.
puts (
"Warning:\n");
2922 &hw_breakpoint_error, &hw_bp_details_reported);
2943 int disabled_breaks = 0;
2944 int hw_breakpoint_error = 0;
2945 int hw_bp_error_explained_already = 0;
2951 tmp_error_stream.
puts (
"Warning:\n");
2978 &hw_breakpoint_error, &hw_bp_error_explained_already);
2987 int some_failed = 0;
3011 hw_breakpoint_error = 1;
3012 tmp_error_stream.
printf (
"Could not insert " 3013 "hardware watchpoint %d.\n",
3023 if (hw_breakpoint_error && !hw_bp_error_explained_already)
3025 tmp_error_stream.
printf (
"Could not insert hardware breakpoints:\n\ 3026 You may have requested too many hardware breakpoints/watchpoints.\n");
3066 Thread-specific breakpoint %d deleted - thread %s no longer in the thread list.\n"),
3115 b->
number = breakpoint_count;
3138 "longjmp",
"_longjmp",
"siglongjmp",
"_siglongjmp" 3140 #define NUM_LONGJMP_NAMES ARRAY_SIZE(longjmp_names) 3195 if (bp_objfile_data == NULL)
3200 return bp_objfile_data;
3209 delete bp_objfile_data;
3216 const char *
const func_name =
"_ovly_debug_event";
3230 if (bp_objfile_data->overlay_msym.minsym == NULL)
3235 if (
m.minsym == NULL)
3241 bp_objfile_data->overlay_msym =
m;
3290 std::vector<probe *> ret
3334 const char *func_name;
3347 if (
m.minsym == NULL)
3373 const char *
const func_name =
"std::terminate()";
3395 if (bp_objfile_data->terminate_msym.minsym == NULL)
3407 bp_objfile_data->terminate_msym =
m;
3428 const char *
const func_name =
"_Unwind_DebugHook";
3441 if (!bp_objfile_data->exception_searched)
3443 std::vector<probe *> ret
3458 bp_objfile_data->exception_probes = ret;
3459 bp_objfile_data->exception_searched = 1;
3462 if (!bp_objfile_data->exception_probes.empty ())
3466 for (
probe *p : bp_objfile_data->exception_probes)
3488 if (bp_objfile_data->exception_msym.minsym == NULL)
3493 if (debug_hook.minsym == NULL)
3499 bp_objfile_data->exception_msym = debug_hook;
3653 error (
_(
"Cannot detach breakpoints of inferior_ptid"));
3810 warning (
_(
"Could not remove hardware watchpoint %d."),
3992 int any_breakpoint_here = 0;
4012 any_breakpoint_here = 1;
4173 if (
loc->pspace->aspace == aspace &&
loc->inserted)
4178 l = std::max<CORE_ADDR> (
loc->address, addr);
4179 h = std::min<CORE_ADDR> (
loc->address +
loc->length, addr + len);
4231 bp_location_at (other.bp_location_at),
4232 breakpoint_at (other.breakpoint_at),
4233 commands (other.commands),
4234 old_val (other.old_val),
4235 print (other.print),
4237 print_it (other.print_it)
4260 for (; bs != NULL; bs = bs->
next)
4283 for (; bsp != NULL; bsp = bsp->
next)
4296 for (; bsp != NULL; bsp = bsp->
next)
4302 if (sig == GDB_SIGNAL_TRAP)
4337 b = (*bsp)->breakpoint_at;
4338 *bsp = (*bsp)->
next;
4399 return cmd && (strcmp (
"silent", cmd->
line) == 0);
4431 for (; bs != NULL; bs = bs->
next)
4544 uiout->
text (
"Thread ");
4550 uiout->
text (
" \"");
4555 uiout->
text (
" hit ");
4597 _(
"print_bp_stop_message: unrecognized enum value"));
4614 if (any_added || any_deleted)
4615 current_uiout->text (
_(
"Stopped due to shared library event:\n"));
4617 current_uiout->text (
_(
"Stopped due to shared library event (no " 4618 "libraries added or removed)\n"));
4694 for (; bs; bs = bs->
next)
4733 bp_location_at (bl),
4734 breakpoint_at (bl->owner),
4742 **bs_link_pointer =
this;
4743 *bs_link_pointer = &
next;
4748 bp_location_at (NULL),
4749 breakpoint_at (NULL),
4768 if (!stopped_by_watchpoint)
4816 if (newaddr == start)
4852 #define BP_TEMPFLAG 1 4853 #define BP_HARDWAREFLAG 2 4863 int within_current_scope;
4876 within_current_scope = 1;
4896 within_current_scope = (fr != NULL);
4900 if (within_current_scope)
4905 if (
function == NULL
4908 within_current_scope = 0;
4911 if (within_current_scope)
4918 if (within_current_scope)
4927 struct value *new_val;
4945 if ((b->
val != NULL) != (new_val != NULL)
4948 if (new_val != NULL)
4988 uiout->
text (
"\nWatchpoint ");
4990 uiout->
text (
" deleted because the program has left the block in\n" 4991 "which its expression is valid.\n");
5035 int must_check_value = 0;
5040 must_check_value = 1;
5045 must_check_value = 1;
5052 must_check_value = 1;
5054 if (must_check_value)
5065 "Error evaluating expression " 5066 "for watchpoint %d\n",
5127 int other_write_watchpoint = 0;
5143 other_write_watchpoint = 1;
5149 if (other_write_watchpoint
5200 bool condition_result =
true;
5244 cond = bl->
cond.get ();
5248 int within_current_scope = 1;
5293 within_current_scope = 0;
5295 if (within_current_scope)
5304 "Error in testing breakpoint condition:\n");
5310 warning (
_(
"Watchpoint condition cannot be tested " 5311 "in the current scope"));
5319 if (cond && !condition_result)
5373 bpstat bs_head = NULL, *bs_link = &bs_head;
5377 int need_remove_insert;
5392 for (bl = b->
loc; bl != NULL; bl = bl->
next)
5411 bs =
new bpstats (bl, &bs_link);
5455 for (bs = bs_head; bs != NULL; bs = bs->
next)
5470 for (bs = bs_head; bs != NULL; bs = bs->
next)
5516 need_remove_insert = 0;
5518 for (bs = bs_head; bs != NULL; bs = bs->
next)
5526 need_remove_insert = 1;
5529 if (need_remove_insert)
5531 else if (removed_any)
5572 for (bs = bs_head; bs != NULL; bs = bs->next)
5579 if (bs->breakpoint_at == NULL)
5586 bptype = bs->breakpoint_at->type;
5708 _(
"bpstat_what: tracepoint encountered"));
5729 _(
"bpstat_what: unhandled bptype %d"), (
int)
bptype);
5743 for (bs = bs_head; bs != NULL; bs = bs->
next)
5782 for (; bs != NULL; bs = bs->
next)
5799 int i, total_width, width, align;
5805 if (strcmp (text, col_name) == 0)
5814 total_width += width + 1;
5832 char host_evals = 0;
5833 char target_evals = 0;
5845 for (bl = b->
loc; bl; bl = bl->
next)
5853 if (host_evals && target_evals)
5855 else if (target_evals)
5890 if (
loc != NULL &&
loc->shlib_disabled)
5898 else if (
loc &&
loc->symtab)
5907 uiout->
text (
"in ");
5911 uiout->
text (
"at ");
5961 struct ep_type_description
5964 const char *description;
5966 static struct ep_type_description bptypes[] =
6004 if (((
int)
type >= (
sizeof (bptypes) /
sizeof (bptypes[0])))
6007 _(
"bptypes table does not describe type #%d."),
6010 return bptypes[(int)
type].description;
6019 const std::vector<int> &inf_nums,
6026 if (!is_mi && mi_only)
6031 for (
size_t i = 0; i < inf_nums.size (); i++)
6037 xsnprintf (mi_group,
sizeof (mi_group),
"i%d", inf_nums[i]);
6043 uiout->
text (
" inf ");
6062 static char bpenables[] =
"nynny";
6065 int header_of_multiple = 0;
6066 int part_of_multiple = (
loc != NULL);
6077 header_of_multiple = 1;
6085 if (part_of_multiple)
6099 if (part_of_multiple)
6106 if (part_of_multiple)
6114 if (part_of_multiple)
6135 _(
"print_one_breakpoint: bp_none encountered\n"));
6186 if (header_of_multiple)
6195 if (!header_of_multiple)
6203 if (
loc != NULL && !header_of_multiple)
6206 std::vector<int> inf_nums;
6211 if (
inf->pspace ==
loc->pspace)
6212 inf_nums.push_back (
inf->num);
6228 if (!part_of_multiple)
6234 uiout->
text (
" thread ");
6237 else if (b->
task != 0)
6239 uiout->
text (
" task ");
6246 if (!part_of_multiple)
6252 uiout->
text (
"\tstop only in stack frame at ");
6264 uiout->
text (
"\ttrace only if ");
6266 uiout->
text (
"\tstop only if ");
6278 uiout->
text (
" evals)");
6283 if (!part_of_multiple && b->
thread != -1)
6286 uiout->
text (
"\tstop only in thread ");
6298 if (!part_of_multiple)
6304 uiout->
text (
"\tcatchpoint");
6306 uiout->
text (
"\ttracepoint");
6308 uiout->
text (
"\tbreakpoint");
6309 uiout->
text (
" already hit ");
6312 uiout->
text (
" time\n");
6314 uiout->
text (
" times\n");
6327 uiout->
text (
"\tignore next ");
6329 uiout->
text (
" hits\n");
6338 uiout->
text (
"\tdisable after ");
6342 uiout->
text (
"additional ");
6344 uiout->
text (
"next ");
6346 uiout->
text (
" hits\n");
6355 uiout->
text (
"\ttrace buffer usage ");
6357 uiout->
text (
" bytes\n");
6362 if (!part_of_multiple && l)
6376 uiout->
text (
"\tpass count ");
6378 uiout->
text (
" \n");
6395 uiout->
text (
"\tnot ");
6396 uiout->
text (
"installed on target\n");
6460 int print_address_bits = 0;
6473 if (addr_bit > print_address_bits)
6474 print_address_bits = addr_bit;
6477 return print_address_bits;
6503 return b->
loc == NULL;
6519 int nr_printable_breakpoints;
6521 int print_address_bits = 0;
6522 int print_type_col_width = 14;
6529 nr_printable_breakpoints = 0;
6533 if (filter && !filter (b))
6538 if (args != NULL && *args !=
'\0')
6548 int addr_bit, type_len;
6551 if (addr_bit > print_address_bits)
6552 print_address_bits = addr_bit;
6555 if (type_len > print_type_col_width)
6556 print_type_col_width = type_len;
6558 nr_printable_breakpoints++;
6565 nr_printable_breakpoints,
6568 if (nr_printable_breakpoints > 0)
6570 if (nr_printable_breakpoints > 0)
6573 if (nr_printable_breakpoints > 0)
6576 if (nr_printable_breakpoints > 0)
6579 if (nr_printable_breakpoints > 0)
6584 if (nr_printable_breakpoints > 0)
6586 if (print_address_bits <= 32)
6591 if (nr_printable_breakpoints > 0)
6595 if (nr_printable_breakpoints > 0)
6602 if (filter && !filter (b))
6608 if (args != NULL && *args !=
'\0')
6628 if (nr_printable_breakpoints == 0)
6634 if (args == NULL || *args ==
'\0')
6635 uiout->
message (
"No breakpoints or watchpoints.\n");
6637 uiout->
message (
"No breakpoint or watchpoint matching '%s'.\n",
6651 return nr_printable_breakpoints;
6670 uiout->
text (
"default collect ");
6672 uiout->
text (
" \n");
6689 if (num_printed == 0)
6691 if (args == NULL || *args ==
'\0')
6692 uiout->
message (
"No watchpoints.\n");
6694 uiout->
message (
"No watchpoint matching '%s'.\n", args);
6713 for (; bl; bl = bl->
next)
6751 else if (b->
thread != -1)
6759 : ((others == 1) ?
" and" :
""));
6820 w2->cond_exp.get ())))
6842 || aspace1 == aspace2)
6858 || aspace1 == aspace2)
6859 && addr2 >= addr1 && addr2 < addr1 + len1);
6927 int hw_point1, hw_point2;
6936 if (hw_point1 != hw_point2)
6951 int bnum,
int have_bnum)
6961 warning (
_(
"Breakpoint %d address previously adjusted from %s to %s."),
6962 bnum, astr1, astr2);
6964 warning (
_(
"Breakpoint address adjusted from %s to %s."), astr1, astr2);
7012 if (adjusted_bpaddr != bpaddr)
7015 return adjusted_bpaddr;
7027 loc->cond_bytecode = NULL;
7028 loc->shlib_disabled = 0;
7114 if (--(*blp)->refc == 0)
7137 b1->
next = b.release ();
7189 const char *function_name;
7193 &func_addr, NULL, &is_gnu_ifunc);
7195 if (is_gnu_ifunc && !explicit_loc)
7623 int disabled_shlib_breaks = 0;
7649 if (!disabled_shlib_breaks)
7652 warning (
_(
"Temporarily disabling breakpoints " 7653 "for unloaded shared library \"%s\""),
7656 disabled_shlib_breaks = 1;
7691 int bp_modified = 0;
7704 if (
loc->shlib_disabled != 0)
7716 loc->shlib_disabled = 1;
7796 uiout->
text (
"Temporary catchpoint ");
7798 uiout->
text (
"Catchpoint ");
7805 uiout->
text (
" (forked process ");
7807 uiout->
text (
"), ");
7829 uiout->
text (
"fork");
7832 uiout->
text (
", process ");
7912 uiout->
text (
"Temporary catchpoint ");
7914 uiout->
text (
"Catchpoint ");
7921 uiout->
text (
" (vforked process ");
7923 uiout->
text (
"), ");
7944 uiout->
text (
"vfork");
7947 uiout->
text (
", process ");
8029 if (other == bl->
owner)
8035 if (self->pspace != NULL && other->pspace != self->pspace)
8038 for (other_bl = other->loc; other_bl != NULL; other_bl = other_bl->
next)
8040 if (other->ops->breakpoint_hit (other_bl, aspace, bp_addr, ws))
8065 || self->compiled->exec (iter->
so_name, 0, NULL, 0) == 0)
8079 || self->compiled->exec (iter, 0, NULL, 0) == 0)
8097 uiout->
text (
"Temporary catchpoint ");
8099 uiout->
text (
"Catchpoint ");
8130 msg =
xstrprintf (
_(
"load of library matching %s"), self->regex);
8132 msg = xstrdup (
_(
"load of library"));
8137 msg =
xstrprintf (
_(
"unload of library matching %s"), self->regex);
8139 msg = xstrdup (
_(
"unload of library"));
8145 uiout->
field_string (
"catch-type", self->is_load ?
"load" :
"unload");
8154 self->is_load ?
"load" :
"unload");
8164 self->is_load ?
"load" :
"unload");
8193 _(
"Invalid regexp")));
8194 c->regex = xstrdup (arg);
8197 c->is_load = is_load;
8214 const int enabled = 1;
8243 const char *cond_string,
8251 b->
cond_string = (cond_string == NULL) ? NULL : xstrdup (cond_string);
8272 int tempflag,
const char *cond_string,
8343 uiout->
text (
"Temporary catchpoint ");
8345 uiout->
text (
"Catchpoint ");
8352 uiout->
text (
" (exec'd ");
8354 uiout->
text (
"), ");
8374 uiout->
text (
"exec");
8377 uiout->
text (
", program \"");
8379 uiout->
text (
"\" ");
8414 for (bl = b->
loc; bl; bl = bl->
next)
8437 for (bl = b->
loc; bl; bl = bl->
next)
8459 *other_type_used = 0;
8470 *other_type_used = 1;
8526 std::unique_ptr<breakpoint> b (
new breakpoint ());
8629 sal.explicit_pc = 1;
8657 if (loc_gdbarch == NULL)
8671 for (tmp = &(b->
loc); *tmp != NULL && (*tmp)->
address <= adjusted_address;
8672 tmp = &((*tmp)->next))
8677 loc->requested_address = sal->
pc;
8678 loc->address = adjusted_address;
8684 loc->gdbarch = loc_gdbarch;
8729 target_mem = (
gdb_byte *) alloca (len);
8738 && memcmp (target_mem, bpoint, len) == 0)
8771 char *printf_line = NULL;
8780 if (*dprintf_args ==
',')
8784 if (*dprintf_args !=
'"')
8785 error (
_(
"Bad format string, missing '\"'."));
8788 printf_line =
xstrprintf (
"printf %s", dprintf_args);
8792 error (
_(
"No function supplied for dprintf call"));
8795 printf_line =
xstrprintf (
"call (void) %s (%s,%s)",
8800 printf_line =
xstrprintf (
"call (void) %s (%s)",
8807 printf_line =
xstrprintf (
"agent-printf %s", dprintf_args);
8810 warning (
_(
"Target cannot run dprintf commands, falling back to GDB printf"));
8811 printf_line =
xstrprintf (
"printf %s", dprintf_args);
8816 _(
"Invalid dprintf style."));
8826 printf_cmd_line->
next = NULL;
8827 printf_cmd_line->
line = printf_line;
8864 int enabled,
int internal,
unsigned flags,
8871 int target_resources_ok;
8874 target_resources_ok =
8877 if (target_resources_ok == 0)
8878 error (
_(
"No hardware breakpoint support in the target."));
8879 else if (target_resources_ok < 0)
8880 error (
_(
"Hardware breakpoints used exceeds limit."));
8885 for (
const auto &sal : sals)
8896 sal.pspace, sal.pc, sal.section, thread);
8899 if (&sal == &sals[0])
8949 warning (
_(
"Couldn't determine the static " 8950 "tracepoint marker to probe"));
8969 error (
_(
"Garbage '%s' follows condition"), arg);
8979 error (
_(
"Format string required"));
8986 if (location != NULL)
8987 b->
location = std::move (location);
8990 b->
filter = filter.release ();
9001 int thread,
int task,
int ignore_count,
9003 int enabled,
int internal,
unsigned flags,
9004 int display_canonical)
9009 sals, std::move (location),
9011 std::move (cond_string),
9012 std::move (extra_string),
9014 thread, task, ignore_count,
9016 enabled,
internal,
flags,
9043 int thread,
int task,
int ignore_count,
9045 int enabled,
int internal,
unsigned flags)
9050 for (
const auto &lsal : canonical->
lsals)
9058 (lsal.canonical != NULL ? xstrdup (lsal.canonical) : NULL);
9061 std::move (location),
9062 std::move (filter_string),
9063 std::move (cond_string),
9064 std::move (extra_string),
9066 thread, task, ignore_count, ops,
9067 from_tty, enabled,
internal,
flags,
9118 canonical->lsals.push_back (std::move (lsal));
9122 error (
_(
"No default breakpoint address now."));
9136 const char *spec = NULL;
9143 && strchr (
"+-", spec[0]) != NULL
9165 for (
auto &sal :
sals)
9184 for (
const auto &sal : sals)
9197 error (
_(
"May not have a fast tracepoint at %s%s"),
9198 paddress (sarch, sal.pc), (msg ? msg :
""));
9213 char **cond_string,
int *thread,
int *task,
9216 *cond_string = NULL;
9223 const char *end_tok;
9225 const char *cond_start = NULL;
9226 const char *cond_end = NULL;
9230 if ((*tok ==
'"' || *tok ==
',') && rest)
9238 toklen = end_tok - tok;
9240 if (toklen >= 1 && strncmp (tok,
"if", toklen) == 0)
9242 tok = cond_start = end_tok + 1;
9245 *cond_string =
savestring (cond_start, cond_end - cond_start);
9247 else if (toklen >= 1 && strncmp (tok,
"thread", toklen) == 0)
9255 error (
_(
"Junk after thread keyword."));
9259 else if (toklen >= 1 && strncmp (tok,
"task", toklen) == 0)
9264 *task = strtol (tok, &tmptok, 0);
9266 error (
_(
"Junk after task keyword."));
9268 error (
_(
"Unknown task %d."), *task);
9277 error (
_(
"Junk at end of arguments."));
9283 static std::vector<symtab_and_line>
9287 const char *p = &(*arg_p)[3];
9299 error (
_(
"No known static tracepoint marker named %s"),
9300 marker_str.c_str ());
9302 std::vector<symtab_and_line> sals;
9313 sals.push_back (sal);
9327 const char *cond_string,
9328 int thread,
const char *extra_string,
9330 int tempflag,
enum bptype type_wanted,
9334 int from_tty,
int enabled,
int internal,
9338 struct cleanup *bkpt_chain = NULL;
9341 int prev_bkpt_count = breakpoint_count;
9346 if (extra_string != NULL && *extra_string ==
'\0')
9347 extra_string = NULL;
9370 && !
nquery (
_(
"Make %s pending on future shared library load? "),
9398 for (
auto &lsal : canonical.
lsals)
9405 for (
const auto &lsal : canonical.
lsals)
9430 &cond, &thread, &task, &rest);
9431 cond_string_copy.reset (cond);
9432 extra_string_copy.reset (rest);
9437 && extra_string != NULL && *extra_string !=
'\0')
9438 error (
_(
"Garbage '%s' at end of location"), extra_string);
9442 cond_string_copy.reset (xstrdup (cond_string));
9445 extra_string_copy.reset (xstrdup (extra_string));
9449 std::move (cond_string_copy),
9450 std::move (extra_string_copy),
9453 thread, task, ignore_count, ops,
9454 from_tty, enabled,
internal,
flags);
9464 b->cond_string = NULL;
9468 b->cond_string = cond_string != NULL ? xstrdup (cond_string) : NULL;
9473 b->extra_string = extra_string != NULL ? xstrdup (extra_string) : NULL;
9474 b->ignore_count = ignore_count;
9476 b->condition_not_parsed = 1;
9485 if (canonical.
lsals.size () > 1)
9487 warning (
_(
"Multiple breakpoints were set.\nUse the " 9488 "\"delete\" command to delete unwanted breakpoints."));
9489 prev_breakpoint_count = prev_bkpt_count;
9521 if (location != NULL
9530 tempflag, type_wanted,
9547 if (sal->
pc == 0 && sal->
symtab != NULL)
9550 error (
_(
"No line %d in file \"%s\"."),
9563 const struct block *b;
9623 Usage: stop in <function | address>\n\ 9624 stop at <line>\n"));
9632 if (arg == (
char *) NULL)
9634 else if (*arg !=
'*')
9636 const char *argptr = arg;
9642 while (*argptr && !hasColon)
9644 hasColon = (*argptr ==
':');
9649 badInput = (*argptr !=
':');
9651 badInput = isdigit (*arg);
9665 if (arg == (
char *) NULL || *arg ==
'*')
9669 const char *argptr = arg;
9674 while (*argptr && !hasColon)
9676 hasColon = (*argptr ==
':');
9681 badInput = (*argptr ==
':');
9683 badInput = !isdigit (*arg);
9706 if (arg[0] !=
',' || arg[1] ==
'\0')
9707 error (
_(
"Format string required"));
9731 error (
_(
"May only run agent-printf on the target"));
9744 || ws->
value.
sig != GDB_SIGNAL_TRAP)
9748 bl->
length, aspace, bp_addr);
9780 uiout->
text (
"Temporary ranged breakpoint ");
9782 uiout->
text (
"Ranged breakpoint ");
9834 address_end = address_start + bl->
length - 1;
9836 uiout->
text (
"\taddress range: ");
9859 printf_filtered (
_(
"Hardware assisted ranged breakpoint %d from %s to %s."),
9901 error (
_(
"Could not find location of the end of the range."));
9915 const char *arg_start;
9917 int bp_count, can_use_bp, length;
9923 error (
_(
"This target does not support hardware ranged breakpoints."));
9930 error (
_(
"Hardware breakpoints used exceeds limit."));
9933 if (arg == NULL || arg[0] ==
'\0')
9934 error(
_(
"No address range specified."));
9942 error (
_(
"Too few arguments."));
9943 else if (canonical_start.
lsals.empty ())
9944 error (
_(
"Could not find location of the beginning of the range."));
9948 if (canonical_start.
lsals.size () > 1
9949 || lsal_start.
sals.size () != 1)
9950 error (
_(
"Cannot create a ranged breakpoint with multiple locations."));
9953 std::string addr_string_start (arg_start, arg - arg_start);
9971 &canonical_end, NULL, NULL);
9973 if (canonical_end.
lsals.empty ())
9974 error (
_(
"Could not find location of the end of the range."));
9977 if (canonical_end.
lsals.size () > 1
9978 || lsal_end.
sals.size () != 1)
9979 error (
_(
"Cannot create a ranged breakpoint with multiple locations."));
9984 if (sal_start.
pc > end)
9985 error (
_(
"Invalid address range, end precedes start."));
9987 length = end - sal_start.
pc + 1;
9990 error (
_(
"Address range too large."));
9991 else if (length == 1)
10004 b->
number = breakpoint_count;
10006 b->
location = std::move (start_location);
10023 int i = exp->
nelts;
10043 case BINOP_LOGICAL_AND:
10044 case BINOP_LOGICAL_OR:
10045 case BINOP_BITWISE_AND:
10046 case BINOP_BITWISE_IOR:
10047 case BINOP_BITWISE_XOR:
10049 case BINOP_NOTEQUAL:
10075 case OP_OBJC_NSSTRING:
10078 case UNOP_LOGICAL_NOT:
10079 case UNOP_COMPLEMENT:
10084 case UNOP_CAST_TYPE:
10085 case UNOP_REINTERPRET_CAST:
10086 case UNOP_DYNAMIC_CAST:
10274 tuple_emitter.
emplace (uiout,
"value");
10275 uiout->
text (
"\nOld value = ");
10278 uiout->
text (
"\nNew value = ");
10281 uiout->
text (
"\n");
10291 tuple_emitter.
emplace (uiout,
"value");
10292 uiout->
text (
"\nValue = ");
10295 uiout->
text (
"\n");
10307 tuple_emitter.
emplace (uiout,
"value");
10308 uiout->
text (
"\nOld value = ");
10311 uiout->
text (
"\nNew value = ");
10320 tuple_emitter.
emplace (uiout,
"value");
10321 uiout->
text (
"\nValue = ");
10325 uiout->
text (
"\n");
10343 const char *tuple_name;
10348 uiout->
text (
"Watchpoint ");
10349 tuple_name =
"wpt";
10352 uiout->
text (
"Hardware watchpoint ");
10353 tuple_name =
"wpt";
10356 uiout->
text (
"Hardware read watchpoint ");
10357 tuple_name =
"hw-rwpt";
10360 uiout->
text (
"Hardware access (read/write) watchpoint ");
10361 tuple_name =
"hw-awpt";
10365 _(
"Invalid hardware watchpoint type."));
10370 uiout->
text (
": ");
10396 _(
"Invalid watchpoint type."));
10502 _(
"Invalid hardware watchpoint type."));
10506 uiout->
text (
_(
"\n\ 10507 Check the underlying instruction at PC for the memory\n\ 10508 address and value which triggered this watchpoint.\n"));
10509 uiout->
text (
"\n");
10527 uiout->
text (
"\tmask ");
10529 uiout->
text (
"\n");
10540 const char *tuple_name;
10545 uiout->
text (
"Masked hardware watchpoint ");
10546 tuple_name =
"wpt";
10549 uiout->
text (
"Masked hardware read watchpoint ");
10550 tuple_name =
"hw-rwpt";
10553 uiout->
text (
"Masked hardware access (read/write) watchpoint ");
10554 tuple_name =
"hw-awpt";
10558 _(
"Invalid hardware watchpoint type."));
10563 uiout->
text (
": ");
10589 _(
"Invalid hardware watchpoint type."));
10614 int just_location,
int internal)
10617 const struct block *exp_valid_block = NULL, *cond_exp_valid_block = NULL;
10618 struct value *val, *mark, *result;
10619 int saved_bitpos = 0, saved_bitsize = 0;
10620 const char *exp_start = NULL;
10621 const char *exp_end = NULL;
10622 const char *tok, *end_tok;
10624 const char *cond_start = NULL;
10625 const char *cond_end = NULL;
10635 if (arg != NULL && arg[0] !=
'\0')
10637 const char *value_start;
10639 exp_end = arg + strlen (arg);
10643 for (tok = exp_end - 1; tok > arg; tok--)
10646 while (tok > arg && (*tok ==
' ' || *tok ==
'\t'))
10651 while (tok > arg && (*tok !=
' ' && *tok !=
'\t'))
10653 value_start = tok + 1;
10656 while (tok > arg && (*tok ==
' ' || *tok ==
'\t'))
10663 while (tok > arg && (*tok !=
' ' && *tok !=
'\t'))
10666 toklen = end_tok - tok + 1;
10668 if (toklen == 6 &&
startswith (tok,
"thread"))
10677 error(
_(
"You can specify only one thread."));
10683 if (*endp !=
' ' && *endp !=
'\t' && *endp !=
'\0')
10688 else if (toklen == 4 &&
startswith (tok,
"mask"))
10693 struct value *mask_value, *mark;
10696 error(
_(
"You can specify only one mask."));
10698 use_mask = just_location = 1;
10728 while (exp_end > exp_start && (exp_end[-1] ==
' ' || exp_end[-1] ==
'\t'))
10736 len = exp_end - exp_start;
10737 while (len > 0 && isspace (exp_start[len - 1]))
10739 error (
_(
"Cannot watch constant value `%.*s'."), len, exp_start);
10746 if (val != NULL && just_location)
10756 exp_valid_block = NULL;
10766 error (
_(
"This target does not support masked watchpoints."));
10767 else if (ret == -2)
10768 error (
_(
"Invalid mask or memory region."));
10771 else if (val != NULL)
10777 toklen = end_tok - tok;
10778 if (toklen >= 1 && strncmp (tok,
"if", toklen) == 0)
10781 tok = cond_start = end_tok + 1;
10791 error (
_(
"Junk at end of command."));
10803 if (exp_valid_block != NULL && wp_frame != NULL)
10826 scope_breakpoint->
frame_id = caller_frame_id;
10829 scope_breakpoint->
loc->
gdbarch = caller_arch;
10834 scope_breakpoint->
type);
10850 std::unique_ptr<watchpoint> w (
new watchpoint ());
10858 w->thread = thread;
10861 w->exp = std::move (exp);
10862 w->exp_valid_block = exp_valid_block;
10863 w->cond_exp_valid_block = cond_exp_valid_block;
10869 w->exp_string_reparse
10872 w->exp_string =
xstrprintf (
"-location %.*s",
10873 (
int) (exp_end - exp_start), exp_start);
10876 w->exp_string =
savestring (exp_start, exp_end - exp_start);
10880 w->hw_wp_mask = mask;
10885 w->val_bitpos = saved_bitpos;
10886 w->val_bitsize = saved_bitsize;
10891 w->cond_string =
savestring (cond_start, cond_end - cond_start);
10893 w->cond_string = 0;
10897 w->watchpoint_frame = watchpoint_frame;
10906 if (scope_breakpoint != NULL)
10910 w->related_breakpoint = scope_breakpoint;
10914 if (!just_location)
10930 int found_memory_cnt = 0;
10931 struct value *head = v;
10992 found_memory_cnt += num_regs;
11005 return found_memory_cnt;
11020 int just_location = 0;
11176 struct gdbarch *frame_gdbarch;
11191 std::vector<symtab_and_line> sals
11197 NULL, (
struct symtab *) NULL, 0));
11199 if (sals.size () != 1)
11200 error (
_(
"Couldn't get information on specified line."));
11205 error (
_(
"Junk at end of arguments."));
11231 struct gdbarch *caller_gdbarch;
11261 std::move (location_breakpoint),
11262 std::move (caller_breakpoint));
11267 proceed (-1, GDB_SIGNAL_DEFAULT);
11281 const char *cond_string;
11283 if (((*arg)[0] !=
'i') || ((*arg)[1] !=
'f') || !isspace ((*arg)[2]))
11292 cond_string = *arg;
11296 (*arg) += strlen (cond_string);
11298 return cond_string;
11316 const char *cond_string = NULL;
11335 if ((*arg !=
'\0') && !isspace (*arg))
11336 error (
_(
"Junk at end of arguments."));
11353 error (
_(
"unsupported or unknown fork kind; cannot catch it"));
11364 const char *cond_string = NULL;
11379 if ((*arg !=
'\0') && !isspace (*arg))
11380 error (
_(
"Junk at end of arguments."));
11385 c->exec_pathname = NULL;
11394 const char *addr_string,
11430 error (
_(
"Catch requires an event name."));
11437 error (
_(
"Catch requires an event name."));
11445 uintptr_t ua = (uintptr_t) a;
11446 uintptr_t ub = (uintptr_t) b;
11457 return ua > ub ? 1 : 0;
11468 std::vector<symtab_and_line> decoded_sals;
11478 sals = decoded_sals;
11486 if (last_sal.
symtab == 0)
11487 error (
_(
"No source file specified."));
11515 std::vector<struct breakpoint *> found;
11516 for (
const auto &sal : sals)
11518 const char *sal_fullname;
11532 sal_fullname = (sal.symtab == NULL
11547 int pc_match = (!sal.explicit_line
11549 && (
loc->pspace == sal.pspace)
11550 && (
loc->address == sal.pc)
11552 ||
loc->section == sal.section));
11553 int line_match = 0;
11555 if ((default_match || sal.explicit_line)
11556 &&
loc->symtab != NULL
11557 && sal_fullname != NULL
11558 && sal.pspace ==
loc->pspace
11559 &&
loc->line_number == sal.line
11561 sal_fullname) == 0)
11564 if (pc_match || line_match)
11573 found.push_back (b);
11578 if (found.empty ())
11581 error (
_(
"No breakpoint at %s."), arg);
11583 error (
_(
"No breakpoint at this line."));
11587 std::sort (found.begin (), found.end (),
11592 found.erase (std::unique (found.begin (), found.end (),
11599 if (found.size () > 1)
11603 if (found.size () == 1)
11628 for (; bs; bs = bs->
next)
11677 return (a > b) - (a < b);
11730 int bp_location_downloaded = 0;
11748 for (bl = b->
loc; bl; bl = bl->
next)
11761 bp_location_downloaded = 1;
11765 if (bp_location_downloaded)
11775 const int left_inserted = left->
inserted;
11776 const int left_duplicate = left->
duplicate;
11829 || pspace_num !=
loc->pspace->num)
11841 loc->cond_bytecode.reset ();
11860 int last_pspace_num = -1;
11876 unsigned old_locations_count;
11908 for (old_locp = old_locations.get ();
11909 old_locp < old_locations.get () + old_locations_count;
11917 int found_object = 0;
11919 int keep_in_target = 0;
11925 && (*locp)->address < old_loc->
address)
11930 && (*loc2p)->address == old_loc->
address);
11938 && (last_addr != old_loc->
address 11939 || last_pspace_num != old_loc->
pspace->
num))
11942 last_pspace_num = old_loc->
pspace->
num;
11945 if (*loc2p == old_loc)
11951 last_addr = old_loc->
address;
11972 keep_in_target = 1;
11990 && (*loc2p)->address == old_loc->
address);
12009 if (loc2 != old_loc
12013 keep_in_target = 1;
12021 if (!keep_in_target)
12034 "breakpoint %d\n"),
12092 old_loc->
owner = NULL;
12098 old_loc->
owner = NULL;
12114 bp_loc_first = NULL;
12115 wp_loc_first = NULL;
12116 awp_loc_first = NULL;
12117 rwp_loc_first = NULL;
12138 loc_first_p = &wp_loc_first;
12140 loc_first_p = &rwp_loc_first;
12142 loc_first_p = &awp_loc_first;
12144 loc_first_p = &bp_loc_first;
12146 if (*loc_first_p == NULL
12150 *loc_first_p =
loc;
12151 loc->duplicate = 0;
12155 loc->needs_update = 1;
12168 loc->duplicate = 1;
12201 if (--(
loc->events_till_retirement) == 0)
12230 for (bs = bps; bs; bs = bs->
next)
12261 if (b->
loc == NULL)
12324 xfree (self->function_name);
12353 #define internal_error_pure_virtual_called() \ 12354 gdb_assert_not_reached ("pure virtual function called") 12431 enum bptype type_wanted)
12441 enum bptype type_wanted,
12442 enum bpdisp disposition,
12444 int task,
int ignore_count,
12447 int internal,
unsigned flags)
12452 static std::vector<symtab_and_line>
12543 || ws->
value.
sig != GDB_SIGNAL_TRAP)
12605 uiout->
text (
"Temporary breakpoint ");
12607 uiout->
text (
"Breakpoint ");
12615 uiout->
text (
", ");
12663 _(
"unhandled breakpoint type %d"), (
int) tp->
type);
12679 enum bptype type_wanted)
12689 enum bptype type_wanted,
12690 enum bpdisp disposition,
12692 int task,
int ignore_count,
12694 int from_tty,
int enabled,
12695 int internal,
unsigned flags)
12698 std::move (cond_string),
12699 std::move (extra_string),
12701 disposition, thread, task,
12702 ignore_count, ops, from_tty,
12703 enabled,
internal,
flags);
12706 static std::vector<symtab_and_line>
12792 "gdb should not stop!\n"));
12798 "gdb should not stop!\n"));
12883 enum bptype type_wanted)
12890 canonical->lsals.push_back (std::move (lsal));
12893 static std::vector<symtab_and_line>
12898 std::vector<symtab_and_line>
sals =
parse_probes (location, search_pspace, NULL);
12900 error (
_(
"probe not found"));
12931 uiout->
text (
"\tmarker id is ");
12932 uiout->
field_string (
"static-tracepoint-marker-string-id",
12934 uiout->
text (
"\n");
12960 _(
"unhandled tracepoint type %d"), (
int) b->
type);
12979 _(
"unhandled tracepoint type %d"), (
int) self->type);
12992 enum bptype type_wanted)
13002 enum bptype type_wanted,
13007 int from_tty,
int enabled,
13008 int internal,
unsigned flags)
13016 enabled,
internal,
flags);
13019 static std::vector<symtab_and_line>
13036 enum bptype type_wanted)
13042 static std::vector<symtab_and_line>
13101 struct bpstats *tmp_bs_p = &tmp_bs;
13129 enum bptype type_wanted)
13132 const char *arg_start, *arg;
13138 const char *ptr = str.c_str ();
13144 canonical->lsals.push_back (std::move (lsal));
13152 enum bptype type_wanted,
13153 enum bpdisp disposition,
13155 int task,
int ignore_count,
13157 int from_tty,
int enabled,
13158 int internal,
unsigned flags)
13169 for (
size_t i = 0; i < lsal.
sals.size (); i++)
13174 std::unique_ptr<tracepoint> tp (
new tracepoint ());
13176 std::move (location), NULL,
13177 std::move (cond_string),
13178 std::move (extra_string),
13179 type_wanted, disposition,
13180 thread, task, ignore_count, ops,
13181 from_tty, enabled,
internal,
flags,
13189 tp->static_trace_marker_id_idx = i;
13195 static std::vector<symtab_and_line>
13285 if (b->
next == bpt)
13334 if (
next == related)
13337 function (related);
13345 function (related);
13349 while (related != b);
13361 int breaks_to_delete = 0;
13369 breaks_to_delete = 1;
13375 || (breaks_to_delete &&
query (
_(
"Delete all breakpoints? "))))
13402 && !
loc->shlib_disabled
13403 && !
loc->pspace->executing_startup)
13416 htab_t htab = htab_create_alloc (13, htab_hash_string,
13417 (
int (*) (
const void *,
13418 const void *))
streq,
13421 for (l =
loc; l != NULL; l = l->
next)
13430 slot = (
const char **) htab_find_slot (htab, (
const void *)
name,
13436 htab_delete (htab);
13442 htab_delete (htab);
13493 warning (
_(
"static tracepoint %d changed probed marker from %s to %s"),
13506 if (!sal.explicit_pc
13508 && sal.symtab != NULL
13528 warning (
_(
"marker for static tracepoint %d (%s) not " 13529 "found at previous line number"),
13534 uiout->
text (
"Now in ");
13538 uiout->
text (
" at ");
13552 uiout->
text (
"\n");
13554 b->loc->line_number = sal2.
line;
13557 b->location.reset (NULL);
13595 if ((a == NULL) != (b == NULL))
13653 if (!sals_end.
empty () && (sals.
size () != 1 || sals_end.
size () != 1))
13659 "multiple locations found\n"),
13675 for (
const auto &sal : sals)
13698 warning (
_(
"failed to reevaluate condition " 13699 "for breakpoint %d: %s"),
13706 if (!sals_end.
empty ())
13710 new_loc->
length = end - sals[0].pc + 1;
13725 for (; e; e = e->
next)
13730 if (have_ambiguous_names)
13732 for (; l; l = l->
next)
13741 for (; l; l = l->
next)
13760 static std::vector<symtab_and_line>
13768 std::vector<symtab_and_line> sals;
13776 int not_found_and_ok = 0;
13790 && search_pspace != NULL
13795 not_found_and_ok = 1;
13797 if (!not_found_and_ok)
13813 for (
auto &sal : sals)
13817 char *cond_string, *extra_string;
13821 &cond_string, &thread, &task,
13855 std::vector<symtab_and_line> expanded, expanded_end;
13859 filter_pspace, &found);
13861 expanded = std::move (sals);
13865 std::vector<symtab_and_line> sals_end
13867 filter_pspace, &found);
13869 expanded_end = std::move (sals_end);
13881 enum bptype type_wanted)
13895 enum bptype type_wanted,
13896 enum bpdisp disposition,
13898 int task,
int ignore_count,
13900 int from_tty,
int enabled,
13901 int internal,
unsigned flags)
13904 std::move (cond_string),
13905 std::move (extra_string),
13906 type_wanted, disposition,
13907 thread, task, ignore_count, ops, from_tty,
13908 enabled,
internal,
flags);
13914 static std::vector<symtab_and_line>
13922 (
struct symtab *) NULL, 0,
13929 if (!canonical.
lsals.empty ())
13932 return std::move (lsal.
sals);
13975 "Error in re-setting breakpoint %d: ",
14026 if (b->
number == bptnum)
14030 if (from_tty && count != 0)
14041 "breakpoint %d is reached."),
14043 else if (count == 1)
14048 "crossings of breakpoint %d."),
14055 error (
_(
"No breakpoint number %d."), bptnum);
14063 const char *p = args;
14071 error (
_(
"bad breakpoint number: '%s'"), args);
14073 error (
_(
"Second argument (specified ignore-count) is missing."));
14090 if (bp_num_range.first == 0)
14092 warning (
_(
"bad breakpoint number at or near '%d'"),
14093 bp_num_range.first);
14099 for (
int i = bp_num_range.first; i <= bp_num_range.second; i++)
14101 bool match =
false;
14123 if (args == NULL || *args ==
'\0')
14144 if (b->
number == bp_num)
14149 if (!b || b->
number != bp_num)
14150 error (
_(
"Bad breakpoint number '%d'"), bp_num);
14153 error (
_(
"Bad breakpoint location number '%d'"), loc_num);
14157 if (++n == loc_num)
14160 error (
_(
"Bad breakpoint location number '%d'"), loc_num);
14181 int trailer,
const char **end_out = NULL)
14183 const char *end = start;
14187 ?
_(
"Negative breakpoint number '%.*s'")
14188 :
_(
"Negative breakpoint location number '%.*s'"),
14189 int (end - start), start);
14192 ?
_(
"Bad breakpoint number '%.*s'")
14193 :
_(
"Bad breakpoint location number '%.*s'"),
14194 int (end - start), start);
14196 if (end_out != NULL)
14206 static std::pair<int, int>
14209 std::string::size_type arg_offset)
14211 std::pair<int, int>
range;
14212 const char *bp_loc = &arg[arg_offset];
14213 std::string::size_type dash = arg.find (
'-', arg_offset);
14214 if (dash != std::string::npos)
14217 if (arg.length () == dash + 1)
14219 ?
_(
"Bad breakpoint number at or near: '%s'")
14220 :
_(
"Bad breakpoint location number at or near: '%s'"),
14224 const char *start_first = bp_loc;
14225 const char *start_second = &arg[dash + 1];
14231 ?
_(
"Inverted breakpoint range at '%.*s'")
14232 :
_(
"Inverted breakpoint location range at '%.*s'"),
14233 int (end - start_first), start_first);
14259 std::pair<int, int> &bp_num_range,
14260 std::pair<int, int> &bp_loc_range)
14262 std::string::size_type dot = arg.find (
'.');
14264 if (dot != std::string::npos)
14268 if (arg.length () == dot + 1 || dot == 0)
14269 error (
_(
"Bad breakpoint number at or near: '%s'"), arg.c_str ());
14273 bp_num_range.second = bp_num_range.first;
14283 bp_loc_range.first = 0;
14284 bp_loc_range.second = 0;
14318 std::pair<int, int> &bp_loc_range,
14321 for (
int i = bp_loc_range.first; i <= bp_loc_range.second; i++)
14348 for (location = bpt->
loc; location; location = location->
next)
14382 while (!num.empty ())
14384 std::pair<int, int> bp_num_range, bp_loc_range;
14388 if (bp_loc_range.first == bp_loc_range.second
14389 && bp_loc_range.first == 0)
14402 (bp_num_range.first, bp_loc_range,
enable);
14424 int target_resources_ok;
14430 target_resources_ok =
14433 if (target_resources_ok == 0)
14434 error (
_(
"No hardware breakpoint support in the target."));
14435 else if (target_resources_ok < 0)
14436 error (
_(
"Hardware breakpoints used exceeds limit."));
14472 for (location = bpt->
loc; location; location = location->
next)
14567 const bfd_byte *data)
14583 &&
loc->address +
loc->length > addr
14584 && addr + len >
loc->address)
14626 std::vector<CORE_ADDR> next_pcs;
14630 if (!next_pcs.empty ())
14685 tracepoint_count = num;
14696 if (location != NULL
14743 if (arg &&
startswith (arg,
"-m") && isspace (arg[2]))
14794 const char *addr_str;
14795 char small_buf[100];
14806 warning (
_(
"Uploaded tracepoint %d has no " 14807 "source location, using raw address"),
14810 addr_str = small_buf;
14815 warning (
_(
"Uploaded tracepoint %d condition " 14816 "has no source form, ignoring it"),
14842 xsnprintf (small_buf,
sizeof (small_buf),
"%d %d", utp->
pass,
14865 warning (
_(
"Uploaded tracepoint %d actions " 14866 "have no source form, ignoring them"),
14887 if (num_printed == 0)
14889 if (args == NULL || *args ==
'\0')
14890 uiout->
message (
"No tracepoints.\n");
14892 uiout->
message (
"No tracepoint matching '%s'.\n", args);
14924 int breaks_to_delete = 0;
14933 breaks_to_delete = 1;
14939 || (breaks_to_delete &&
query (
_(
"Delete all tracepoints? "))))
14978 if (args == 0 || *args == 0)
14979 error (
_(
"passcount command requires an " 14980 "argument (count + optional TP num)"));
14985 if (*args && strncasecmp (args,
"all", 3) == 0)
14991 error (
_(
"Junk at end of arguments."));
14999 else if (*args ==
'\0')
15060 const char *instring = arg == NULL ? NULL : *arg;
15062 if (parser != NULL)
15067 else if (arg == NULL || *arg == NULL || ! **arg)
15068 tpnum = tracepoint_count;
15074 if (instring && *instring)
15115 int extra_trace_bits = 0;
15117 if (filename == 0 || *filename == 0)
15118 error (
_(
"Argument required (file name in which to save)"));
15135 extra_trace_bits = 1;
15152 if (!fp.
open (expanded_filename.get (),
"w"))
15153 error (
_(
"Unable to open file '%s' for saving (%s)"),
15156 if (extra_trace_bits)
15183 fp.
puts (
" commands\n");
15198 fp.
puts (
" end\n");
15202 fp.
puts (
"disable $bpnum\n");
15214 fp.
printf (
"disable $bpnum.%d\n", n);
15244 all_tracepoints (
void)
15261 #define LOCATION_HELP_STRING \ 15262 "Linespecs are colon-separated lists of location parameters, such as\n\ 15263 source filename, function name, label name, and line number.\n\ 15264 Example: To specify the start of a label named \"the_top\" in the\n\ 15265 function \"fact\" in the file \"factorial.c\", use\n\ 15266 \"factorial.c:fact:the_top\".\n\ 15268 Address locations begin with \"*\" and specify an exact address in the\n\ 15269 program. Example: To specify the fourth byte past the start function\n\ 15270 \"main\", use \"*main + 4\".\n\ 15272 Explicit locations are similar to linespecs but use an option/argument\n\ 15273 syntax to specify location parameters.\n\ 15274 Example: To specify the start of the label named \"the_top\" in the\n\ 15275 function \"fact\" in the file \"factorial.c\", use \"-source factorial.c\n\ 15276 -function fact -label the_top\".\n\ 15278 By default, a specified function is matched against the program's\n\ 15279 functions in all scopes. For C++, this means in all namespaces and\n\ 15280 classes. For Ada, this means in all packages. E.g., in C++,\n\ 15281 \"func()\" matches \"A::func()\", \"A::B::func()\", etc. The\n\ 15282 \"-qualified\" flag overrides this behavior, making GDB interpret the\n\ 15283 specified name as a complete fully-qualified name instead.\n" 15290 #define BREAK_ARGS_HELP(command) \ 15291 command" [PROBE_MODIFIER] [LOCATION] [thread THREADNUM] [if CONDITION]\n\ 15292 PROBE_MODIFIER shall be present if the command is to be placed in a\n\ 15293 probe point. Accepted values are `-probe' (for a generic, automatically\n\ 15294 guessed probe type), `-probe-stap' (for a SystemTap probe) or \n\ 15295 `-probe-dtrace' (for a DTrace probe).\n\ 15296 LOCATION may be a linespec, address, or explicit location as described\n\ 15299 With no LOCATION, uses current execution address of the selected\n\ 15300 stack frame. This is useful for breaking on return to a stack frame.\n\ 15302 THREADNUM is the number from \"info threads\".\n\ 15303 CONDITION is a boolean expression.\n\ 15304 \n" LOCATION_HELP_STRING "\n\ 15305 Multiple breakpoints at one place are permitted, and useful if their\n\ 15306 conditions are different.\n\ 15308 Do \"help breakpoints\" for info on other commands dealing with breakpoints." 15320 void *user_data_catch,
15321 void *user_data_tcatch)
15342 "the name of a save subcommand.\n"));
15354 if ((*callback) (b, data))
15390 for (bl = b->
loc; bl != NULL; bl = bl->
next)
15410 loc->symtab = NULL;
15416 static int initialized = 0;
15610 breakpoint_count = 0;
15612 tracepoint_count = 0;
15615 Set ignore-count of breakpoint number N to COUNT.\n\ 15616 Usage is `ignore N COUNT'."));
15619 Set commands to be executed when the given breakpoints are hit.\n\ 15620 Give a space-separated breakpoint list as argument after \"commands\".\n\ 15621 A list element can be a breakpoint number (e.g. `5') or a range of numbers\n\ 15623 With no argument, the targeted breakpoint is the last one set.\n\ 15624 The commands themselves follow starting on the next line.\n\ 15625 Type a line containing \"end\" to indicate the end of them.\n\ 15626 Give \"silent\" as the first line to make the breakpoint silent;\n\ 15627 then no output is printed when it is hit, except what the commands print."));
15630 Specify breakpoint number N to break only if COND is true.\n\ 15631 Usage is `condition N COND', where N is an integer and COND is an\n\ 15632 expression to be evaluated whenever breakpoint N is reached."));
15636 Set a temporary breakpoint.\n\ 15637 Like \"break\" except the breakpoint is only temporary,\n\ 15638 so it will be deleted when hit. Equivalent to \"break\" followed\n\ 15639 by using \"enable delete\" on the breakpoint number.\n\ 15645 Set a hardware assisted breakpoint.\n\ 15646 Like \"break\" except the breakpoint requires hardware support,\n\ 15647 some target hardware may not have this support.\n\ 15653 Set a temporary hardware assisted breakpoint.\n\ 15654 Like \"hbreak\" except the breakpoint is only temporary,\n\ 15655 so it will be deleted when hit.\n\ 15661 Enable some breakpoints.\n\ 15662 Give breakpoint numbers (separated by spaces) as arguments.\n\ 15663 With no subcommand, breakpoints are enabled until you command otherwise.\n\ 15664 This is used to cancel the effect of the \"disable\" command.\n\ 15665 With a subcommand you can enable temporarily."),
15671 Enable some breakpoints.\n\ 15672 Give breakpoint numbers (separated by spaces) as arguments.\n\ 15673 This is used to cancel the effect of the \"disable\" command.\n\ 15674 May be abbreviated to simply \"enable\".\n"),
15678 Enable breakpoints for one hit. Give breakpoint numbers.\n\ 15679 If a breakpoint is hit while enabled in this fashion, it becomes disabled."),
15683 Enable breakpoints and delete when hit. Give breakpoint numbers.\n\ 15684 If a breakpoint is hit while enabled in this fashion, it is deleted."),
15688 Enable breakpoints for COUNT hits. Give count and then breakpoint numbers.\n\ 15689 If a breakpoint is hit while enabled in this fashion,\n\ 15690 the count is decremented; when it reaches zero, the breakpoint is disabled."),
15694 Enable breakpoints and delete when hit. Give breakpoint numbers.\n\ 15695 If a breakpoint is hit while enabled in this fashion, it is deleted."),
15699 Enable breakpoints for one hit. Give breakpoint numbers.\n\ 15700 If a breakpoint is hit while enabled in this fashion, it becomes disabled."),
15704 Enable breakpoints for COUNT hits. Give count and then breakpoint numbers.\n\ 15705 If a breakpoint is hit while enabled in this fashion,\n\ 15706 the count is decremented; when it reaches zero, the breakpoint is disabled."),
15710 Disable some breakpoints.\n\ 15711 Arguments are breakpoint numbers with spaces in between.\n\ 15712 To disable all breakpoints, give no argument.\n\ 15713 A disabled breakpoint is not forgotten, but has no effect until re-enabled."),
15719 Disable some breakpoints.\n\ 15720 Arguments are breakpoint numbers with spaces in between.\n\ 15721 To disable all breakpoints, give no argument.\n\ 15722 A disabled breakpoint is not forgotten, but has no effect until re-enabled.\n\ 15723 This command may be abbreviated \"disable\"."),
15727 Delete some breakpoints or auto-display expressions.\n\ 15728 Arguments are breakpoint numbers with spaces in between.\n\ 15729 To delete all breakpoints, give no argument.\n\ 15731 Also a prefix command for deletion of other GDB objects.\n\ 15732 The \"unset\" command is also an alias for \"delete\"."),
15738 Delete some breakpoints or auto-display expressions.\n\ 15739 Arguments are breakpoint numbers with spaces in between.\n\ 15740 To delete all breakpoints, give no argument.\n\ 15741 This command may be abbreviated \"delete\"."),
15745 Clear breakpoint at specified location.\n\ 15746 Argument may be a linespec, explicit, or address location as described below.\n\ 15748 With no argument, clears all breakpoints in the line that the selected frame\n\ 15749 is executing in.\n" 15751 See also the \"delete\" command which clears breakpoints by number."));
15755 Set breakpoint at specified location.\n" 15767 Break in function/address or break at a line in the current file."),
15770 _(
"Break in function or address."), &
stoplist);
15772 _(
"Break at a line in the current file."), &
stoplist);
15774 Status of user-settable breakpoints, or breakpoint number NUMBER.\n\ 15775 The \"Type\" column indicates one of:\n\ 15776 \tbreakpoint - normal breakpoint\n\ 15777 \twatchpoint - watchpoint\n\ 15778 The \"Disp\" column contains one of \"keep\", \"del\", or \"dis\" to indicate\n\ 15779 the disposition of the breakpoint after it gets hit. \"dis\" means that the\n\ 15780 breakpoint will be disabled. The \"Address\" and \"What\" columns indicate the\n\ 15781 address and file/line number respectively.\n\ 15783 Convenience variable \"$_\" and default examine address for \"x\"\n\ 15784 are set to the address of the last breakpoint listed unless the command\n\ 15785 is prefixed with \"server \".\n\n\ 15786 Convenience variable \"$bpnum\" contains the number of the last\n\ 15787 breakpoint set."));
15791 Status of specified breakpoints (all user-settable breakpoints if no argument).\n\ 15792 The \"Type\" column indicates one of:\n\ 15793 \tbreakpoint - normal breakpoint\n\ 15794 \twatchpoint - watchpoint\n\ 15795 The \"Disp\" column contains one of \"keep\", \"del\", or \"dis\" to indicate\n\ 15796 the disposition of the breakpoint after it gets hit. \"dis\" means that the\n\ 15797 breakpoint will be disabled. The \"Address\" and \"What\" columns indicate the\n\ 15798 address and file/line number respectively.\n\ 15800 Convenience variable \"$_\" and default examine address for \"x\"\n\ 15801 are set to the address of the last breakpoint listed unless the command\n\ 15802 is prefixed with \"server \".\n\n\ 15803 Convenience variable \"$bpnum\" contains the number of the last\n\ 15804 breakpoint set."));
15809 Status of all breakpoints, or breakpoint number NUMBER.\n\ 15810 The \"Type\" column indicates one of:\n\ 15811 \tbreakpoint - normal breakpoint\n\ 15812 \twatchpoint - watchpoint\n\ 15813 \tlongjmp - internal breakpoint used to step through longjmp()\n\ 15814 \tlongjmp resume - internal breakpoint at the target of longjmp()\n\ 15815 \tuntil - internal breakpoint used by the \"until\" command\n\ 15816 \tfinish - internal breakpoint used by the \"finish\" command\n\ 15817 The \"Disp\" column contains one of \"keep\", \"del\", or \"dis\" to indicate\n\ 15818 the disposition of the breakpoint after it gets hit. \"dis\" means that the\n\ 15819 breakpoint will be disabled. The \"Address\" and \"What\" columns indicate the\n\ 15820 address and file/line number respectively.\n\ 15822 Convenience variable \"$_\" and default examine address for \"x\"\n\ 15823 are set to the address of the last breakpoint listed unless the command\n\ 15824 is prefixed with \"server \".\n\n\ 15825 Convenience variable \"$bpnum\" contains the number of the last\n\ 15830 Set catchpoints to catch events."),
15835 Set temporary catchpoints to catch events."),
15855 Usage: catch load [REGEX]\n\ 15856 If REGEX is given, only stop for libraries matching the regular expression."),
15862 Usage: catch unload [REGEX]\n\ 15863 If REGEX is given, only stop for libraries matching the regular expression."),
15870 Set a watchpoint for an expression.\n\ 15871 Usage: watch [-l|-location] EXPRESSION\n\ 15872 A watchpoint stops execution of your program whenever the value of\n\ 15873 an expression changes.\n\ 15874 If -l or -location is given, this evaluates EXPRESSION and watches\n\ 15875 the memory to which it refers."));
15879 Set a read watchpoint for an expression.\n\ 15880 Usage: rwatch [-l|-location] EXPRESSION\n\ 15881 A watchpoint stops execution of your program whenever the value of\n\ 15882 an expression is read.\n\ 15883 If -l or -location is given, this evaluates EXPRESSION and watches\n\ 15884 the memory to which it refers."));
15888 Set a watchpoint for an expression.\n\ 15889 Usage: awatch [-l|-location] EXPRESSION\n\ 15890 A watchpoint stops execution of your program whenever the value of\n\ 15891 an expression is either read or written.\n\ 15892 If -l or -location is given, this evaluates EXPRESSION and watches\n\ 15893 the memory to which it refers."));
15897 Status of specified watchpoints (all watchpoints if no argument)."));
15903 Set debugger's willingness to use watchpoint hardware."),
_(
"\ 15904 Show debugger's willingness to use watchpoint hardware."),
_(
"\ 15905 If zero, gdb will not use hardware for new watchpoints, even if\n\ 15906 such is available. (However, any hardware watchpoints that were\n\ 15907 created before setting this to nonzero, will continue to use watchpoint\n\ 15918 Set a tracepoint at specified location.\n\ 15921 Do \"help tracepoints\" for info on other tracepoint commands."));
15930 Set a fast tracepoint at specified location.\n\ 15933 Do \"help tracepoints\" for info on other tracepoint commands."));
15937 Set a static tracepoint at location or marker.\n\ 15939 strace [LOCATION] [if CONDITION]\n\ 15940 LOCATION may be a linespec, explicit, or address location (described below) \n\ 15941 or -m MARKER_ID.\n\n\ 15942 If a marker id is specified, probe the marker with that name. With\n\ 15943 no LOCATION, uses current execution address of the selected stack frame.\n\ 15944 Static tracepoints accept an extra collect action -- ``collect $_sdata''.\n\ 15945 This collects arbitrary user data passed in the probe point call to the\n\ 15946 tracing library. You can inspect it when analyzing the trace buffer,\n\ 15947 by printing the $_sdata variable like any other convenience variable.\n\ 15949 CONDITION is a boolean expression.\n\ 15951 Multiple tracepoints at one place are permitted, and useful if their\n\ 15952 conditions are different.\n\ 15954 Do \"help breakpoints\" for info on other commands dealing with breakpoints.\n\ 15955 Do \"help tracepoints\" for info on other tracepoint commands."));
15959 Status of specified tracepoints (all tracepoints if no argument).\n\ 15960 Convenience variable \"$tpnum\" contains the number of the\n\ 15961 last tracepoint set."));
15966 Delete specified tracepoints.\n\ 15967 Arguments are tracepoint numbers, separated by spaces.\n\ 15968 No argument means delete all tracepoints."),
15973 Disable specified tracepoints.\n\ 15974 Arguments are tracepoint numbers, separated by spaces.\n\ 15975 No argument means disable all tracepoints."),
15980 Enable specified tracepoints.\n\ 15981 Arguments are tracepoint numbers, separated by spaces.\n\ 15982 No argument means enable all tracepoints."),
15987 Set the passcount for a tracepoint.\n\ 15988 The trace will end when the tracepoint has been passed 'count' times.\n\ 15989 Usage: passcount COUNT TPNUM, where TPNUM may also be \"all\";\n\ 15990 if TPNUM is omitted, passcount refers to the last tracepoint defined."));
15993 _(
"Save breakpoint definitions as a script."),
15998 Save current breakpoint definitions as a script.\n\ 15999 This includes all types of breakpoints (breakpoints, watchpoints,\n\ 16000 catchpoints, tracepoints). Use the 'source' command in another debug\n\ 16001 session to restore them."),
16006 Save current tracepoint definitions as a script.\n\ 16007 Use the 'source' command in another debug session to restore them."),
16015 Breakpoint specific settings\n\ 16016 Configure various breakpoint-specific variables such as\n\ 16017 pending breakpoint behavior"),
16018 &breakpoint_set_cmdlist,
"set breakpoint ",
16021 Breakpoint specific settings\n\ 16022 Configure various breakpoint-specific variables such as\n\ 16023 pending breakpoint behavior"),
16024 &breakpoint_show_cmdlist,
"show breakpoint ",
16029 Set debugger's behavior regarding pending breakpoints."),
_(
"\ 16030 Show debugger's behavior regarding pending breakpoints."),
_(
"\ 16031 If on, an unrecognized breakpoint location will cause gdb to create a\n\ 16032 pending breakpoint. If off, an unrecognized breakpoint location results in\n\ 16033 an error. If auto, an unrecognized breakpoint location results in a\n\ 16034 user-query to see if a pending breakpoint should be created."),
16037 &breakpoint_set_cmdlist,
16038 &breakpoint_show_cmdlist);
16044 Set automatic usage of hardware breakpoints."),
_(
"\ 16045 Show automatic usage of hardware breakpoints."),
_(
"\ 16046 If set, the debugger will automatically use hardware breakpoints for\n\ 16047 breakpoints set with \"break\" but falling in read-only memory. If not set,\n\ 16048 a warning will be emitted for such breakpoints."),
16051 &breakpoint_set_cmdlist,
16052 &breakpoint_show_cmdlist);
16056 Set mode for inserting breakpoints."),
_(
"\ 16057 Show mode for inserting breakpoints."),
_(
"\ 16058 When this mode is on, breakpoints are inserted immediately as soon as\n\ 16059 they're created, kept inserted even when execution stops, and removed\n\ 16060 only when the user deletes them. When this mode is off (the default),\n\ 16061 breakpoints are inserted only when execution continues, and removed\n\ 16062 when execution stops."),
16065 &breakpoint_set_cmdlist,
16066 &breakpoint_show_cmdlist);
16071 Set mode of breakpoint condition evaluation."),
_(
"\ 16072 Show mode of breakpoint condition evaluation."),
_(
"\ 16073 When this is set to \"host\", breakpoint conditions will be\n\ 16074 evaluated on the host's side by GDB. When it is set to \"target\",\n\ 16075 breakpoint conditions will be downloaded to the target (if the target\n\ 16076 supports such feature) and conditions will be evaluated on the target's side.\n\ 16077 If this is set to \"auto\" (default), this will be automatically set to\n\ 16078 \"target\" if it supports condition evaluation, otherwise it will\n\ 16079 be set to \"gdb\""),
16082 &breakpoint_set_cmdlist,
16083 &breakpoint_show_cmdlist);
16086 Set a breakpoint for an address range.\n\ 16087 break-range START-LOCATION, END-LOCATION\n\ 16088 where START-LOCATION and END-LOCATION can be one of the following:\n\ 16089 LINENUM, for that line in the current file,\n\ 16090 FILE:LINENUM, for that line in that file,\n\ 16091 +OFFSET, for that number of lines after the current line\n\ 16092 or the start of the range\n\ 16093 FUNCTION, for the first line in that function,\n\ 16094 FILE:FUNCTION, to distinguish among like-named static functions.\n\ 16095 *ADDRESS, for the instruction at that address.\n\ 16097 The breakpoint will stop execution of the inferior whenever it executes\n\ 16098 an instruction at any address within the [START-LOCATION, END-LOCATION]\n\ 16099 range (including START-LOCATION and END-LOCATION)."));
16102 Set a dynamic printf at specified location.\n\ 16103 dprintf location,format string,arg1,arg2,...\n\ 16104 location may be a linespec, explicit, or address location.\n" 16110 Set the style of usage for dynamic printf."),
_(
"\ 16111 Show the style of usage for dynamic printf."),
_(
"\ 16112 This setting chooses how GDB will do a dynamic printf.\n\ 16113 If the value is \"gdb\", then the printing is done by GDB to its own\n\ 16114 console, as with the \"printf\" command.\n\ 16115 If the value is \"call\", the print is done by calling a function in your\n\ 16116 program; by default printf(), but you can choose a different function or\n\ 16117 output stream by setting dprintf-function and dprintf-channel."),
16124 Set the function to use for dynamic printf"),
_(
"\ 16125 Show the function to use for dynamic printf"), NULL,
16132 Set the channel to use for dynamic printf"),
_(
"\ 16133 Show the channel to use for dynamic printf"), NULL,
16139 Set whether dprintf continues after GDB disconnects."),
_(
"\ 16140 Show whether dprintf continues after GDB disconnects."),
_(
"\ 16141 Use this to let dprintf commands continue to hit and produce output\n\ 16142 even if GDB disconnects or detaches from the target."),
16148 agent-printf \"printf format string\", arg1, arg2, arg3, ..., argn\n\ 16149 (target agent only) This is useful for formatted output in user-defined commands."));
int threads_are_executing(void)
void error_no_arg(const char *why)
struct gdbarch * target_gdbarch(void)
int frame_id_p(struct frame_id l)
int breakpoint_in_range_p(const address_space *aspace, CORE_ADDR addr, ULONGEST len)
static int watchpoint_locations_match(struct bp_location *loc1, struct bp_location *loc2)
int hardware_watchpoint_inserted_in_range(const address_space *aspace, CORE_ADDR addr, ULONGEST len)
static struct breakpoint_ops catch_exec_breakpoint_ops
struct frame_info * frame_find_by_id(struct frame_id id)
static struct breakpoint_ops tracepoint_probe_breakpoint_ops
static void until_break_fsm_clean_up(struct thread_fsm *self, struct thread_info *thread)
static int remove_breakpoint(struct bp_location *)
void annotate_watchpoint(int num)
void set_cmd_context(struct cmd_list_element *cmd, void *context)
static int dprintf_breakpoint_hit(const struct bp_location *bl, const address_space *aspace, CORE_ADDR bp_addr, const struct target_waitstatus *ws)
static struct breakpoint_ops bkpt_probe_breakpoint_ops
#define target_remove_fork_catchpoint(pid)
union exp_element elts[1]
symtab_and_line get_last_displayed_sal()
char * hex_string(LONGEST num)
int breakpoint_inserted_here_p(const address_space *aspace, CORE_ADDR pc)
struct value * value_mark(void)
void(* walk_bp_location_callback)(struct bp_location *, void *)
agent_expr_up cond_bytecode
static const struct objfile_data * breakpoint_objfile_key
void release_static_tracepoint_marker(struct static_tracepoint_marker *marker)
const char * symtab_to_filename_for_display(struct symtab *symtab)
static const char * bp_location_condition_evaluator(struct bp_location *bl)
virtual void set_semaphore(struct objfile *objfile, struct gdbarch *gdbarch)
void annotate_breakpoints_table(void)
static void ftrace_command(const char *arg, int from_tty)
#define SYMTAB_COMPUNIT(symtab)
struct command_line * breakpoint_commands(struct breakpoint *b)
static void init_raw_breakpoint_without_location(struct breakpoint *b, struct gdbarch *gdbarch, enum bptype bptype, const struct breakpoint_ops *ops)
void(* print_recreate)(struct breakpoint *, struct ui_file *fp)
static int command_line_is_silent(struct command_line *cmd)
static void show_can_use_hw_watchpoints(struct ui_file *file, int from_tty, struct cmd_list_element *c, const char *value)
struct breakpoint * create_jit_event_breakpoint(struct gdbarch *gdbarch, CORE_ADDR address)
static const char * range
static int base_breakpoint_explains_signal(struct breakpoint *b, enum gdb_signal sig)
int number_of_program_spaces(void)
#define target_can_run_breakpoint_commands()
static void bkpt_create_breakpoints_sal(struct gdbarch *gdbarch, struct linespec_result *canonical, gdb::unique_xmalloc_ptr< char > cond_string, gdb::unique_xmalloc_ptr< char > extra_string, enum bptype type_wanted, enum bpdisp disposition, int thread, int task, int ignore_count, const struct breakpoint_ops *ops, int from_tty, int enabled, int internal, unsigned flags)
void observer_notify_breakpoint_created(struct breakpoint *b)
void handle_solib_event(void)
struct thread_info * find_thread_ptid(ptid_t ptid)
static void set_condition_evaluation_mode(const char *args, int from_tty, struct cmd_list_element *c)
enum breakpoint_here breakpoint_here_p(const address_space *aspace, CORE_ADDR pc)
static std::vector< symtab_and_line > location_to_sals(struct breakpoint *b, struct event_location *location, struct program_space *search_pspace, int *found)
struct value * value_next(const struct value *value)
static void show_breakpoint_cmd(const char *args, int from_tty)
int insert_single_step_breakpoints(struct gdbarch *gdbarch)
static struct bp_location * allocate_bp_location(struct breakpoint *bpt)
static void base_breakpoint_re_set(struct breakpoint *b)
void set_ignore_count(int bptnum, int count, int from_tty)
#define target_remove_watchpoint(addr, len, type, cond)
static void insert_breakpoint_locations(void)
struct observer * observer_attach_thread_exit(observer_thread_exit_ftype *f)
struct value * value_addr(struct value *arg1)
static int breakpoint_address_match_range(const address_space *aspace1, CORE_ADDR addr1, int len1, const address_space *aspace2, CORE_ADDR addr2)
void enable_breakpoints_after_startup(void)
void enable_overlay_breakpoints(void)
static void free_bp_location(struct bp_location *loc)
static void enable_count_command(const char *args, int from_tty)
int putchar_unfiltered(int c)
static void print_one_catch_vfork(struct breakpoint *b, struct bp_location **last_loc)
int target_insert_mask_watchpoint(CORE_ADDR addr, CORE_ADDR mask, enum target_hw_bp_type rw)
void remove_solib_event_breakpoints(void)
const struct blockvector * blockvector_for_pc_sect(CORE_ADDR pc, struct obj_section *section, const struct block **pblock, struct compunit_symtab *cust)
struct frame_info * get_selected_frame(const char *message)
static int bp_locations_compare_addrs(const void *ap, const void *bp)
static void base_breakpoint_create_breakpoints_sal(struct gdbarch *gdbarch, struct linespec_result *c, gdb::unique_xmalloc_ptr< char > cond_string, gdb::unique_xmalloc_ptr< char > extra_string, enum bptype type_wanted, enum bpdisp disposition, int thread, int task, int ignore_count, const struct breakpoint_ops *o, int from_tty, int enabled, int internal, unsigned flags)
void * get_cmd_context(struct cmd_list_element *cmd)
void delete_longjmp_breakpoint_cleanup(void *arg)
static void watch_maybe_just_location(const char *arg, int accessflag, int from_tty)
struct observer * observer_attach_free_objfile(observer_free_objfile_ftype *f)
static void print_one_catch_exec(struct breakpoint *b, struct bp_location **last_loc)
void field_core_addr(const char *fldname, struct gdbarch *gdbarch, CORE_ADDR address)
CORE_ADDR get_frame_pc(struct frame_info *frame)
static const char * breakpoint_condition_evaluation_mode(void)
#define SYMBOL_PRINT_NAME(symbol)
std::unique_ptr< agent_expr > agent_expr_up
static void remove_threaded_breakpoints(struct thread_info *tp, int silent)
void value_print(struct value *val, struct ui_file *stream, const struct value_print_options *options)
void check_tracepoint_command(char *line, void *closure)
static void handle_jit_event(void)
static void show_automatic_hardware_breakpoints(struct ui_file *file, int from_tty, struct cmd_list_element *c, const char *value)
int value_equal_contents(struct value *arg1, struct value *arg2)
static void bpstat_remove_bp_location(bpstat bps, struct breakpoint *bpt)
struct frame_info * get_current_frame(void)
static void internal_bkpt_re_set(struct breakpoint *b)
void field_string(const char *fldname, const char *string)
static void base_breakpoint_print_mention(struct breakpoint *b)
static struct uploaded_tp * this_utp
constexpr size_type size() const noexcept
void disable_breakpoints_before_startup(void)
struct address_space * aspace
target_hw_bp_type watchpoint_type
static void tracepoint_probe_create_sals_from_location(const struct event_location *location, struct linespec_result *canonical, enum bptype type_wanted)
void insert_breakpoints(void)
static std::vector< symtab_and_line > bkpt_decode_location(struct breakpoint *b, const struct event_location *location, struct program_space *search_pspace)
static int breakpoint_1(const char *args, int allflag, int(*filter)(const struct breakpoint *))
static struct breakpoint_ops catch_vfork_breakpoint_ops
int is_breakpoint(const struct breakpoint *bpt)
#define BREAK_ARGS_HELP(command)
int ptid_get_pid(const ptid_t &ptid)
int(* works_in_software_mode)(const struct breakpoint *)
static void save_command(const char *arg, int from_tty)
static int breakpoint_locations_match(struct bp_location *loc1, struct bp_location *loc2)
gdb::unique_xmalloc_ptr< expression > expression_up
struct regcache * get_thread_regcache(ptid_t ptid)
void bpstat_clear(bpstat *bsp)
void error_stream(const string_file &stream)
static void print_one_breakpoint_location(struct breakpoint *b, struct bp_location *loc, int loc_number, struct bp_location **last_loc, int allflag)
mach_port_t mach_port_t name mach_port_t mach_port_t name kern_return_t int int rusage_t pid_t pid
void bpstat_clear_actions(void)
struct frame_id initiating_frame
command_line_up read_command_lines_1(char *(*read_next_line_func)(void), int parse_commands, void(*validator)(char *, void *), void *closure)
void annotate_record(void)
static int all_locations_are_pending(struct breakpoint *b, struct program_space *pspace)
int may_insert_fast_tracepoints
struct breakpoint * create_solib_event_breakpoint(struct gdbarch *gdbarch, CORE_ADDR address)
static int works_in_software_mode_watchpoint(const struct breakpoint *b)
struct cmd_list_element * enablelist
static void print_recreate_catch_fork(struct breakpoint *b, struct ui_file *fp)
static void print_recreate_masked_watchpoint(struct breakpoint *b, struct ui_file *fp)
#define gnu_ifunc_resolver_stop
static int base_breakpoint_remove_location(struct bp_location *bl, enum remove_bp_reason reason)
void add_setshow_auto_boolean_cmd(const char *name, enum command_class theclass, enum auto_boolean *var, const char *set_doc, const char *show_doc, const char *help_doc, cmd_const_sfunc_ftype *set_func, show_value_ftype *show_func, struct cmd_list_element **set_list, struct cmd_list_element **show_list)
enum print_stop_action bpstat_print(bpstat bs, int kind)
static void condition_completer(struct cmd_list_element *cmd, completion_tracker &tracker, const char *text, const char *word)
int section_is_overlay(struct obj_section *section)
static void create_fork_vfork_event_catchpoint(struct gdbarch *gdbarch, int tempflag, const char *cond_string, const struct breakpoint_ops *ops)
void cmd_const_sfunc_ftype(const char *args, int from_tty, struct cmd_list_element *c)
LONGEST value_as_long(struct value *val)
static void momentary_bkpt_check_status(bpstat bs)
CORE_ADDR frame_unwind_caller_pc(struct frame_info *this_frame)
int number_is_in_list(const char *list, int number)
int breakpoint_address_match(const address_space *aspace1, CORE_ADDR addr1, const address_space *aspace2, CORE_ADDR addr2)
static void base_breakpoint_print_recreate(struct breakpoint *b, struct ui_file *fp)
static int breakpoint_address_is_meaningful(struct breakpoint *bpt)
struct gdbarch * frame_unwind_caller_arch(struct frame_info *next_frame)
#define BMSYMBOL_VALUE_ADDRESS(symbol)
void warning(const char *fmt,...)
void void wrap_hint(const char *identstring)
struct cmd_list_element * deprecate_cmd(struct cmd_list_element *cmd, const char *replacement)
regcache(gdbarch *gdbarch)
#define target_enable_tracepoint(loc)
static int compare_breakpoints(const breakpoint *a, const breakpoint *b)
static void agent_printf_command(const char *arg, int from_tty)
static void create_breakpoint_sal(struct gdbarch *gdbarch, gdb::array_view< const symtab_and_line > sals, event_location_up &&location, gdb::unique_xmalloc_ptr< char > filter, gdb::unique_xmalloc_ptr< char > cond_string, gdb::unique_xmalloc_ptr< char > extra_string, enum bptype type, enum bpdisp disposition, int thread, int task, int ignore_count, const struct breakpoint_ops *ops, int from_tty, int enabled, int internal, unsigned flags, int display_canonical)
static void info_breakpoints_command(const char *args, int from_tty)
int query(const char *ctlstr,...)
static void print_mention_catch_fork(struct breakpoint *b)
void jit_breakpoint_re_set(void)
void tbreak_command(const char *arg, int from_tty)
struct program_space * pspace
LONGEST value_bitsize(const struct value *value)
static void hbreak_command(const char *arg, int from_tty)
static void print_mention_watchpoint(struct breakpoint *b)
static struct cmd_list_element * enablebreaklist
enum print_stop_action(* print_it)(struct bpstats *bs)
#define target_supports_enable_disable_tracepoint()
void breakpoint_auto_delete(bpstat bs)
int deprecated_value_modifiable(const struct value *value)
static void show_always_inserted_mode(struct ui_file *file, int from_tty, struct cmd_list_element *c, const char *value)
static int bp_location_has_shadow(struct bp_location *bl)
struct symbol * find_pc_sect_function(CORE_ADDR pc, struct obj_section *section)
static void catch_unload_command_1(const char *arg, int from_tty, struct cmd_list_element *command)
enum language set_language(enum language lang)
event_location_up new_linespec_location(const char **linespec, symbol_name_match_type match_type)
counted_command_line commands
void install_breakpoint(int internal, std::unique_ptr< breakpoint > &&arg, int update_gll)
static struct breakpoint_ops ranged_breakpoint_ops
static enum auto_boolean pending_break_support
static std::pair< int, int > extract_bp_or_bp_range(extract_bp_kind kind, const std::string &arg, std::string::size_type arg_offset)
char * plongest(LONGEST l)
static struct cmd_list_element * catch_cmdlist
struct cmd_list_element * maintenanceinfolist
int events_till_retirement
void ATTRIBUTE_NORETURN invalid_thread_id_error(const char *string)
void field_skip(const char *fldname)
struct symtab_and_line get_current_source_symtab_and_line(void)
void annotate_field(int num)
static enum print_stop_action momentary_bkpt_print_it(bpstat bs)
bp_target_info overlay_target_info
int(* resources_needed)(const struct bp_location *)
static void print_mention_ranged_breakpoint(struct breakpoint *b)
std::string extract_arg(const char **arg)
#define internal_error_pure_virtual_called()
static void print_recreate_catch_solib(struct breakpoint *b, struct ui_file *fp)
struct cmd_list_element * add_info(const char *name, cmd_const_cfunc_ftype *fun, const char *doc)
static const char * condition_evaluation_mode
static int need_moribund_for_location_type(struct bp_location *loc)
void select_frame(struct frame_info *fi)
#define target_supports_stopped_by_sw_breakpoint()
struct frame_id get_stack_frame_id(struct frame_info *next_frame)
static void create_breakpoints_sal_default(struct gdbarch *, struct linespec_result *, gdb::unique_xmalloc_ptr< char >, gdb::unique_xmalloc_ptr< char >, enum bptype, enum bpdisp, int, int, int, const struct breakpoint_ops *, int, int, int, unsigned)
#define SYMBOL_CLASS(symbol)
static int automatic_hardware_breakpoints
static void save_breakpoints(const char *filename, int from_tty, int(*filter)(const struct breakpoint *))
void * memset(T *s, int c, size_t n)=delete
int show_thread_that_caused_stop(void)
void internal_error(const char *file, int line, const char *fmt,...)
int valid_global_thread_id(int global_id)
const struct frame_id null_frame_id
struct thread_info * inferior_thread(void)
static void update_global_location_list_nothrow(enum ugll_insert_mode)
event_location_up location_range_end
void table_header(int width, ui_align align, const std::string &col_name, const std::string &col_hdr)
const struct language_defn * language_def(enum language lang)
CORE_ADDR requested_address
void awatch_command_wrapper(const char *arg, int from_tty, int internal)
static void print_one_catch_fork(struct breakpoint *b, struct bp_location **last_loc)
struct cmd_list_element * deletelist
#define VEC_unordered_remove(T, V, I)
static void dprintf_re_set(struct breakpoint *b)
void add_setshow_enum_cmd(const char *name, enum command_class theclass, const char *const *enumlist, const char **var, const char *set_doc, const char *show_doc, const char *help_doc, cmd_const_sfunc_ftype *set_func, show_value_ftype *show_func, struct cmd_list_element **set_list, struct cmd_list_element **show_list)
static void strace_command(const char *arg, int from_tty)
void(* print_mention)(struct breakpoint *)
union target_waitstatus::@174 value
const struct gdb_exception exception_none
static void bpstat_check_breakpoint_conditions(bpstat bs, ptid_t ptid)
int value_lazy(const struct value *value)
int gdbarch_breakpoint_kind_from_pc(struct gdbarch *gdbarch, CORE_ADDR *pcptr)
event_location_up copy_event_location(const struct event_location *src)
static std::vector< symtab_and_line > decode_static_tracepoint_spec(const char **arg_p)
void value_free(struct value *val)
struct cmd_list_element * add_cmd(const char *name, enum command_class theclass, const char *doc, struct cmd_list_element **list)
struct symbol * block_linkage_function(const struct block *bl)
int breakpoints_not_allowed
static int bkpt_insert_location(struct bp_location *bl)
#define target_insert_watchpoint(addr, len, type, cond)
static breakpoint * add_to_breakpoint_chain(std::unique_ptr< breakpoint > &&b)
#define target_insert_fork_catchpoint(pid)
expression_up parse_exp_1(const char **, CORE_ADDR pc, const struct block *, int)
struct value * value_copy(struct value *arg)
struct breakpoint_ops dprintf_breakpoint_ops
static int overlay_events_enabled
const struct block * innermost_block
static void print_mention_catch_solib(struct breakpoint *b)
struct line_offset line_offset
static void enable_trace_command(const char *args, int from_tty)
static int ambiguous_names_p(struct bp_location *loc)
static void stop_command(const char *arg, int from_tty)
static CORE_ADDR bp_locations_shadow_len_after_address_max
scoped_restore_tmpl< int > make_scoped_restore_show_memory_breakpoints(int show)
void filename_completer(struct cmd_list_element *ignore, completion_tracker &tracker, const char *text, const char *word)
static struct bp_location * base_breakpoint_allocate_location(struct breakpoint *self)
enum language la_language
void validate_actionline(const char *line, struct breakpoint *b)
struct bp_location *(* allocate_location)(struct breakpoint *)
const struct block * cond_exp_valid_block
static int is_masked_watchpoint(const struct breakpoint *b)
struct breakpoint * create_thread_event_breakpoint(struct gdbarch *gdbarch, CORE_ADDR address)
static void set_breakpoint_cmd(const char *args, int from_tty)
static enum print_stop_action print_bp_stop_message(bpstat bs)
#define VEC_safe_push(T, V, O)
struct obj_section * section
struct cmd_list_element * cmdlist
const breakpoint_ops * ops
void set_next_address(struct gdbarch *, CORE_ADDR)
~solib_catchpoint() override
void save_trace_state_variables(struct ui_file *fp)
~longjmp_breakpoint() override
virtual void clear_semaphore(struct objfile *objfile, struct gdbarch *gdbarch)
struct tracepoint * get_tracepoint(int num)
struct breakpoint * set_raw_breakpoint(struct gdbarch *gdbarch, struct symtab_and_line, enum bptype, const struct breakpoint_ops *)
static void set_breakpoint_number(int internal, struct breakpoint *b)
struct internalvar * lookup_internalvar(const char *name)
char * skip_spaces(char *chp)
event_location_up location
static void print_breakpoint_location(struct breakpoint *b, struct bp_location *loc)
const gdb_byte * value_contents_for_printing(struct value *value)
void set_longjmp_breakpoint(struct thread_info *tp, struct frame_id frame)
static void find_condition_and_thread(const char *tok, CORE_ADDR pc, char **cond_string, int *thread, int *task, char **rest)
static int breakpoint_proceeded
static void enable_disable_bp_num_loc(int bp_num, int loc_num, bool enable)
ULONGEST traceframe_usage
static char * read_uploaded_action(void)
static void save_tracepoints_command(const char *args, int from_tty)
static void output_thread_groups(struct ui_out *uiout, const char *field_name, const std::vector< int > &inf_nums, int mi_only)
int bpstat_causes_stop(bpstat bs)
int number_of_inferiors(void)
static int hw_breakpoint_used_count(void)
static int bkpt_remove_location(struct bp_location *bl, enum remove_bp_reason reason)
static void decref_bp_location(struct bp_location **loc)
static struct until_break_fsm * new_until_break_fsm(struct interp *cmd_interp, int thread, breakpoint_up &&location_breakpoint, breakpoint_up &&caller_breakpoint)
static int breakpoint_enabled(struct breakpoint *b)
breakpoint * related_breakpoint
static struct bp_location * add_location_to_breakpoint(struct breakpoint *, const struct symtab_and_line *)
int target_remove_mask_watchpoint(CORE_ADDR addr, CORE_ADDR mask, enum target_hw_bp_type rw)
static void create_exception_master_breakpoint(void)
static void breakpoint_re_set_default(struct breakpoint *)
agent_expr_up gen_printf(CORE_ADDR scope, struct gdbarch *gdbarch, CORE_ADDR function, LONGEST channel, const char *format, int fmtlen, int nargs, struct expression **exprs)
int program_breakpoint_here_p(struct gdbarch *gdbarch, CORE_ADDR address)
static void build_target_command_list(struct bp_location *bl)
void set_cmd_sfunc(struct cmd_list_element *cmd, cmd_const_sfunc_ftype *sfunc)
#define ALL_BREAKPOINTS_SAFE(B, TMP)
static int breakpoint_hit_catch_solib(const struct bp_location *bl, const address_space *aspace, CORE_ADDR bp_addr, const struct target_waitstatus *ws)
#define target_stopped_by_watchpoint()
struct breakpoint_ops tracepoint_breakpoint_ops
void breakpoint_program_space_exit(struct program_space *pspace)
static void bkpt_create_sals_from_location(const struct event_location *location, struct linespec_result *canonical, enum bptype type_wanted)
static struct breakpoint * momentary_breakpoint_from_master(struct breakpoint *orig, enum bptype type, const struct breakpoint_ops *ops, int loc_enabled)
int stepping_past_instruction_at(struct address_space *aspace, CORE_ADDR address)
void enable_breakpoint(struct breakpoint *bpt)
struct value * allocate_value(struct type *type)
static int insert_catch_exec(struct bp_location *bl)
void text(const char *string)
void delete_longjmp_breakpoint(int thread)
struct bound_minimal_symbol lookup_minimal_symbol_text(const char *name, struct objfile *objf)
struct regcache * get_current_regcache(void)
int moribund_breakpoint_here_p(const address_space *aspace, CORE_ADDR pc)
#define target_stopped_data_address(target, addr_p)
static int works_in_software_mode_masked_watchpoint(const struct breakpoint *b)
void insert_single_step_breakpoint(struct gdbarch *gdbarch, const address_space *aspace, CORE_ADDR next_pc)
const struct block * block_for_pc(CORE_ADDR pc)
int is_addr_in_objfile(CORE_ADDR addr, const struct objfile *objfile)
void _initialize_breakpoint(void)
void unpack_value_bitfield(struct value *dest_val, LONGEST bitpos, LONGEST bitsize, const gdb_byte *valaddr, LONGEST embedded_offset, const struct value *val)
int may_insert_tracepoints
static enum async_reply_reason until_break_fsm_async_reply_reason(struct thread_fsm *self)
bpstat bpstat_stop_status(const address_space *aspace, CORE_ADDR bp_addr, ptid_t ptid, const struct target_waitstatus *ws)
void printf_filtered(const char *format,...)
int longest_to_int(LONGEST)
void dummy_frame_discard(struct frame_id dummy_id, ptid_t ptid)
const char * paddress(struct gdbarch *gdbarch, CORE_ADDR addr)
static struct type * new_type(char *)
void breakpoint_set_task(struct breakpoint *b, int task)
void initialize_explicit_location(struct explicit_location *explicit_loc)
static struct breakpoint_ops bkpt_base_breakpoint_ops
#define SYMBOL_OBJ_SECTION(objfile, symbol)
struct obj_section * find_pc_overlay(CORE_ADDR pc)
static void info_watchpoints_command(const char *args, int from_tty)
const address_space * get_frame_address_space(struct frame_info *frame)
static unsigned bp_locations_count
static bool is_longjmp_type(bptype type)
void set_current_program_space(struct program_space *pspace)
const char * symtab_to_fullname(struct symtab *s)
int bpstat_should_step(void)
enum offset_relative_sign sign
#define target_insert_vfork_catchpoint(pid)
struct cmd_list_element * add_prefix_cmd(const char *name, enum command_class theclass, cmd_const_cfunc_ftype *fun, const char *doc, struct cmd_list_element **prefixlist, const char *prefixname, int allow_unknown, struct cmd_list_element **list)
void breakpoint_free_objfile(struct objfile *objfile)
static void base_breakpoint_print_one_detail(const struct breakpoint *self, struct ui_out *uiout)
struct trace_status * current_trace_status(void)
static CORE_ADDR adjust_breakpoint_address(struct gdbarch *gdbarch, CORE_ADDR bpaddr, enum bptype bptype)
scoped_restore_tmpl< T > make_scoped_restore(T *var)
#define MSYMBOL_OBJ_SECTION(objfile, symbol)
static enum print_stop_action bkpt_print_it(bpstat bs)
LONGEST value_offset(const struct value *value)
mach_port_t kern_return_t mach_port_t msgports mach_port_t kern_return_t pid_t pid mach_port_t kern_return_t mach_port_t task mach_port_t kern_return_t int flags
static void delete_trace_command(const char *arg, int from_tty)
void null_cleanup(void *arg)
static const char *const condition_evaluation_enums[]
static void breakpoint_re_set_one(breakpoint *b)
struct value * evaluate_expression(struct expression *exp)
static int breakpoint_location_address_range_overlap(struct bp_location *, const address_space *, CORE_ADDR, int)
std::vector< agent_expr * > tcommands
int in_thread_list(ptid_t ptid)
static int breakpoint_address_bits(struct breakpoint *b)
struct thread_info * iterate_over_threads(thread_callback_func, void *)
int frame_id_eq(struct frame_id l, struct frame_id r)
static int bpstat_do_actions_1(bpstat *bsp)
static int breakpoint_hit_watchpoint(const struct bp_location *bl, const address_space *aspace, CORE_ADDR bp_addr, const struct target_waitstatus *ws)
static void catch_fork_command_1(const char *arg, int from_tty, struct cmd_list_element *command)
int(* insert_location)(struct bp_location *)
static void info_tracepoints_command(const char *args, int from_tty)
std::vector< probe * > exception_probes
static struct breakpoint * set_raw_breakpoint_without_location(struct gdbarch *, enum bptype, const struct breakpoint_ops *)
struct cmd_list_element * setlist
enum stop_stack_kind call_dummy
static CORE_ADDR find_breakpoint_range_end(struct symtab_and_line sal)
static int remove_breakpoint_1(struct bp_location *, enum remove_bp_reason)
static void re_set_watchpoint(struct breakpoint *b)
static enum print_stop_action internal_bkpt_print_it(bpstat bs)
int shared_objfile_contains_address_p(struct program_space *pspace, CORE_ADDR address)
static char * wrap_indent_at_field(struct ui_out *uiout, const char *col_name)
#define VEC_iterate(T, V, I, P)
int mem_ranges_overlap(CORE_ADDR start1, int len1, CORE_ADDR start2, int len2)
struct tracepoint * get_tracepoint_by_number_on_target(int num)
int target_remove_breakpoint(struct gdbarch *gdbarch, struct bp_target_info *bp_tgt, enum remove_bp_reason reason)
struct frame_id get_frame_id(struct frame_info *fi)
static void default_collect_info(void)
static void set_breakpoint_count(int num)
void breakpoint_re_set(void)
struct type * check_typedef(struct type *type)
struct gdbarch * get_sal_arch(struct symtab_and_line sal)
static void update_inserted_breakpoint_locations(void)
struct frame_info * block_innermost_frame(const struct block *block)
#define CATCH(EXCEPTION, MASK)
command_line_up copy_command_lines(struct command_line *cmds)
static enum print_stop_action print_it_masked_watchpoint(bpstat bs)
int contained_in(const struct block *a, const struct block *b)
static void print_mention_catch_vfork(struct breakpoint *b)
int solib_contains_address_p(const struct so_list *const solib, CORE_ADDR address)
static struct cmd_list_element * tcatch_cmdlist
static void ignore_command(const char *args, int from_tty)
static int unduplicated_should_be_inserted(struct bp_location *bl)
static void tracepoint_re_set(struct breakpoint *b)
thread_suspend_state suspend
#define ALL_BP_LOCATIONS_AT_ADDR(BP_LOCP_TMP, BP_LOCP_START, ADDRESS)
static int is_no_memory_software_watchpoint(struct breakpoint *b)
std::vector< symtab_and_line > sals
static int remove_catch_vfork(struct bp_location *bl, enum remove_bp_reason reason)
static std::vector< symtab_and_line > decode_location_default(struct breakpoint *b, const struct event_location *location, struct program_space *search_pspace)
static void create_overlay_event_breakpoint(void)
struct tracepoint * create_tracepoint_from_upload(struct uploaded_tp *utp)
std::unique_ptr< T, xfree_deleter< T > > unique_xmalloc_ptr
static void validate_commands_for_breakpoint(struct breakpoint *b, struct command_line *commands)
static int remove_catch_fork(struct bp_location *bl, enum remove_bp_reason reason)
struct target_ops current_target
static void bkpt_probe_create_sals_from_location(const struct event_location *location, struct linespec_result *canonical, enum bptype type_wanted)
int detach_breakpoints(ptid_t ptid)
gdb::unique_xmalloc_ptr< char >(* la_watch_location_expression)(struct type *type, CORE_ADDR addr)
std::string memory_error_message(enum target_xfer_status err, struct gdbarch *gdbarch, CORE_ADDR memaddr)
static const char * dprintf_style
static const char * wrap_indent
struct symtab_and_line find_pc_line(CORE_ADDR pc, int notcurrent)
#define target_watchpoint_addr_within_range(target, addr, start, length)
void bpstat_run_callbacks(bpstat bs_head)
struct bp_location * bp_location_at
struct thread_info * find_thread_global_id(int global_id)
objfile(bfd *, const char *, objfile_flags)
static void tracepoint_print_recreate(struct breakpoint *self, struct ui_file *fp)
struct tracepoint * get_tracepoint_by_number(const char **arg, number_or_range_parser *parser)
CORE_ADDR address_significant(gdbarch *gdbarch, CORE_ADDR addr)
static const char dprintf_style_call[]
int target_is_non_stop_p(void)
static void parse_breakpoint_sals(const struct event_location *location, struct linespec_result *canonical)
static CORE_ADDR bp_locations_placed_address_before_address_max
static void check_status_catch_solib(struct bpstats *bs)
static void map_breakpoint_numbers(const char *, gdb::function_view< void(breakpoint *)>)
int pending_breakpoint_p(struct breakpoint *b)
static void check_fast_tracepoint_sals(struct gdbarch *gdbarch, gdb::array_view< const symtab_and_line > sals)
static void print_one_ranged_breakpoint(struct breakpoint *b, struct bp_location **last_loc)
void fprintf_filtered(struct ui_file *stream, const char *format,...)
std::unique_ptr< compiled_regex > compiled
struct breakpoint * iterate_over_breakpoints(int(*callback)(struct breakpoint *, void *), void *data)
#define SYMTAB_OBJFILE(symtab)
static void bpstat_check_watchpoint(bpstat bs)
int static_trace_marker_id_idx
void set_cmd_completer(struct cmd_list_element *cmd, completer_ftype *completer)
static void extract_bp_number_and_location(const std::string &arg, std::pair< int, int > &bp_num_range, std::pair< int, int > &bp_loc_range)
std::vector< probe * > longjmp_probes
static int until_break_fsm_should_stop(struct thread_fsm *self, struct thread_info *thread)
static void print_mention_catch_exec(struct breakpoint *b)
static void stopin_command(const char *arg, int from_tty)
struct mem_region * lookup_mem_region(CORE_ADDR addr)
int stepping_past_nonsteppable_watchpoint(void)
void add_setshow_zinteger_cmd(const char *name, enum command_class theclass, int *var, const char *set_doc, const char *show_doc, const char *help_doc, cmd_const_sfunc_ftype *set_func, show_value_ftype *show_func, struct cmd_list_element **set_list, struct cmd_list_element **show_list)
static int explains_signal_watchpoint(struct breakpoint *b, enum gdb_signal sig)
CORE_ADDR gdbarch_convert_from_func_ptr_addr(struct gdbarch *gdbarch, CORE_ADDR addr, struct target_ops *targ)
static void momentary_bkpt_print_mention(struct breakpoint *b)
static void breakpoint_sals_to_pc(std::vector< symtab_and_line > &sals)
int is_watchpoint(const struct breakpoint *bpt)
void fprintf_unfiltered(struct ui_file *stream, const char *format,...)
static void base_breakpoint_create_sals_from_location(const struct event_location *location, struct linespec_result *canonical, enum bptype type_wanted)
static void watchpoint_value_print(struct value *val, struct ui_file *stream)
static int bkpt_probe_remove_location(struct bp_location *bl, enum remove_bp_reason reason)
static void commands_command(const char *arg, int from_tty)
struct cmd_list_element * showlist
void exception_print(struct ui_file *file, struct gdb_exception e)
int(* breakpoint_hit)(const struct bp_location *bl, const address_space *aspace, CORE_ADDR bp_addr, const struct target_waitstatus *ws)
struct cmd_list_element * add_com_alias(const char *name, const char *oldname, enum command_class theclass, int abbrev_flag)
void fputs_filtered(const char *linebuffer, struct ui_file *stream)
struct breakpoint * clone_momentary_breakpoint(struct breakpoint *orig)
struct observer * observer_attach_solib_unloaded(observer_solib_unloaded_ftype *f)
int streq(const char *lhs, const char *rhs)
const linespec_location * get_linespec_location(const struct event_location *location)
static void set_breakpoint_location_function(struct bp_location *loc, int explicit_loc)
int get_number_trailer(const char **pp, int trailer)
static void print_one_catch_solib(struct breakpoint *b, struct bp_location **locs)
const struct block * exp_valid_block
scoped_restore_tmpl< int > prevent_dont_repeat(void)
static int always_inserted_mode
gdb_byte shadow_contents[BREAKPOINT_MAX]
static void build_target_condition_list(struct bp_location *bl)
struct symbol * get_frame_function(struct frame_info *frame)
static enum print_stop_action base_breakpoint_print_it(bpstat bs)
static void watchpoint_del_at_next_stop(struct watchpoint *w)
static void mark_breakpoint_location_modified(struct bp_location *loc)
int gdbarch_stack_frame_destroyed_p(struct gdbarch *gdbarch, CORE_ADDR addr)
static int msym_not_found_p(const struct minimal_symbol *msym)
struct cleanup * make_cleanup(make_cleanup_ftype *function, void *arg)
int frame_id_artificial_p(struct frame_id l)
static const char dprintf_style_agent[]
static int tracepoint_locations_match(struct bp_location *loc1, struct bp_location *loc2)
int software_breakpoint_inserted_here_p(const address_space *aspace, CORE_ADDR pc)
static void invalidate_bp_value_on_memory_change(struct inferior *inferior, CORE_ADDR addr, ssize_t len, const bfd_byte *data)
enum bp_print_how print_it
struct gdbarch * get_objfile_arch(const struct objfile *objfile)
static void strace_marker_create_sals_from_location(const struct event_location *location, struct linespec_result *canonical, enum bptype type_wanted)
int ptid_to_global_thread_id(ptid_t ptid)
char * solib_name_from_address(struct program_space *pspace, CORE_ADDR address)
void update_breakpoint_locations(struct breakpoint *b, struct program_space *filter_pspace, gdb::array_view< const symtab_and_line > sals, gdb::array_view< const symtab_and_line > sals_end)
static enum print_stop_action print_it_catch_fork(bpstat bs)
int gdbarch_has_global_breakpoints(struct gdbarch *gdbarch)
std::vector< symtab_and_line > parse_probes(const struct event_location *location, struct program_space *search_pspace, struct linespec_result *canonical)
void disable_breakpoint(struct breakpoint *bpt)
static void print_recreate_ranged_breakpoint(struct breakpoint *b, struct ui_file *fp)
static void tracepoint_print_one_detail(const struct breakpoint *self, struct ui_out *uiout)
struct inferior * find_inferior_pid(int pid)
static int gdb_evaluates_breakpoint_condition_p(void)
int single_step_breakpoint_inserted_here_p(const address_space *aspace, CORE_ADDR pc)
#define target_supports_evaluation_of_breakpoint_conditions()
void iterate_over_bp_locations(walk_bp_location_callback callback)
char so_name[SO_NAME_MAX_PATH_SIZE]
struct breakpoint * breakpoint_find_if(int(*func)(struct breakpoint *b, void *d), void *user_data)
static std::vector< symtab_and_line > tracepoint_decode_location(struct breakpoint *b, const struct event_location *location, struct program_space *search_pspace)
static int insert_masked_watchpoint(struct bp_location *bl)
void add_setshow_string_cmd(const char *name, enum command_class theclass, char **var, const char *set_doc, const char *show_doc, const char *help_doc, cmd_const_sfunc_ftype *set_func, show_value_ftype *show_func, struct cmd_list_element **set_list, struct cmd_list_element **show_list)
static std::vector< symtab_and_line > base_breakpoint_decode_location(struct breakpoint *b, const struct event_location *location, struct program_space *search_pspace)
#define VEC_index(T, V, I)
static char * dprintf_channel
#define target_disable_tracepoint(loc)
static const char condition_evaluation_both[]
static void print_one_detail_ranged_breakpoint(const struct breakpoint *b, struct ui_out *uiout)
#define ALL_BREAKPOINTS(B)
static struct symtab_and_line update_static_tracepoint(struct breakpoint *b, struct symtab_and_line sal)
struct gdbarch * get_type_arch(const struct type *type)
#define ALL_TRACEPOINTS(B)
struct gdbarch * get_current_arch(void)
static void rwatch_command(const char *arg, int from_tty)
static void thbreak_command(const char *arg, int from_tty)
void field_stream(const char *fldname, string_file &stream)
static void stopat_command(const char *arg, int from_tty)
struct breakpoint * get_breakpoint(int num)
void exception_fprintf(struct ui_file *file, struct gdb_exception e, const char *prefix,...)
static void iterate_over_related_breakpoints(struct breakpoint *b, gdb::function_view< void(breakpoint *)> function)
static int breakpoint_kind(struct bp_location *bl, CORE_ADDR *addr)
#define target_static_tracepoint_markers_by_strid(marker_id)
const char * print_thread_id(struct thread_info *thr)
void decode_line_full(const struct event_location *location, int flags, struct program_space *search_pspace, struct symtab *default_symtab, int default_line, struct linespec_result *canonical, const char *select_mode, const char *filter)
#define target_download_tracepoint(t)
static int startswith(const char *string, const char *pattern)
static struct breakpoint_ops watchpoint_breakpoint_ops
struct thread_fsm * thread_fsm
event_location_up new_explicit_location(const struct explicit_location *explicit_loc)
static int bp_loc_is_permanent(struct bp_location *loc)
int nquery(const char *ctlstr,...)
struct cmd_list_element * stoplist
int bpstat_num(bpstat *bsp, int *num)
static struct breakpoint_ops catch_solib_breakpoint_ops
void disable_breakpoints_in_shlibs(void)
static void enable_delete_command(const char *args, int from_tty)
static struct breakpoint_ops momentary_breakpoint_ops
const char * skip_to_space(const char *chp)
std::unique_ptr< event_location, event_location_deleter > event_location_up
int gdbarch_addr_bit(struct gdbarch *gdbarch)
int ada_get_task_number(ptid_t)
std::vector< symtab_and_line >(* decode_location)(struct breakpoint *b, const struct event_location *location, struct program_space *search_pspace)
#define target_has_execution
std::vector< agent_expr * > conditions
static void create_breakpoints_sal(struct gdbarch *gdbarch, struct linespec_result *canonical, gdb::unique_xmalloc_ptr< char > cond_string, gdb::unique_xmalloc_ptr< char > extra_string, enum bptype type, enum bpdisp disposition, int thread, int task, int ignore_count, const struct breakpoint_ops *ops, int from_tty, int enabled, int internal, unsigned flags)
int(* explains_signal)(struct breakpoint *, enum gdb_signal)
ULONGEST strtoulst(const char *num, const char **trailer, int base)
const char * event_location_to_string(struct event_location *location)
cmd_const_sfunc_ftype * sfunc
static void software_watchpoint_add_no_memory_location(struct breakpoint *b, struct program_space *pspace)
enum watchpoint_triggered watchpoint_triggered
char * xstrprintf(const char *format,...)
static int breakpoint_hit_catch_fork(const struct bp_location *bl, const address_space *aspace, CORE_ADDR bp_addr, const struct target_waitstatus *ws)
int target_exact_watchpoints
static enum print_stop_action print_it_catch_exec(bpstat bs)
virtual CORE_ADDR get_relocated_address(struct objfile *objfile)=0
void printf_unfiltered(const char *format,...)
int section_is_mapped(struct obj_section *osect)
LONGEST value_bitpos(const struct value *value)
void completer_ftype(struct cmd_list_element *, completion_tracker &tracker, const char *text, const char *word)
void print_command_lines(struct ui_out *uiout, struct command_line *cmd, unsigned int depth)
struct cmd_list_element * add_abbrev_prefix_cmd(const char *name, enum command_class theclass, cmd_const_cfunc_ftype *fun, const char *doc, struct cmd_list_element **prefixlist, const char *prefixname, int allow_unknown, struct cmd_list_element **list)
static const char dprintf_style_gdb[]
int get_last_displayed_line(void)
struct frame_id frame_unwind_caller_id(struct frame_info *next_frame)
int find_pc_partial_function_gnu_ifunc(CORE_ADDR pc, const char **name, CORE_ADDR *address, CORE_ADDR *endaddr, int *is_gnu_ifunc_p)
static void print_solib_event(int is_catchpoint)
virtual void puts(const char *str)
std::vector< linespec_sals > lsals
void print_breakpoint(breakpoint *b)
static struct breakpoint * create_internal_breakpoint(struct gdbarch *gdbarch, CORE_ADDR address, enum bptype type, const struct breakpoint_ops *ops)
struct breakpoint * breakpoint_chain
static enum print_stop_action print_it_catch_vfork(bpstat bs)
struct breakpoint_ops bkpt_breakpoint_ops
struct program_space * pspace
static void internal_bkpt_check_status(bpstat bs)
static int bkpt_probe_insert_location(struct bp_location *bl)
void skip_prologue_sal(struct symtab_and_line *sal)
static int is_hardware_watchpoint(const struct breakpoint *bpt)
CORE_ADDR gdbarch_adjust_breakpoint_address(struct gdbarch *gdbarch, CORE_ADDR bpaddr)
event_location_up new_address_location(CORE_ADDR addr, const char *addr_string, int addr_string_len)
static int base_breakpoint_works_in_software_mode(const struct breakpoint *b)
static void tracepoint_create_breakpoints_sal(struct gdbarch *gdbarch, struct linespec_result *canonical, gdb::unique_xmalloc_ptr< char > cond_string, gdb::unique_xmalloc_ptr< char > extra_string, enum bptype type_wanted, enum bpdisp disposition, int thread, int task, int ignore_count, const struct breakpoint_ops *ops, int from_tty, int enabled, int internal, unsigned flags)
int breakpoint_ext_lang_cond_says_stop(struct breakpoint *b)
static void swap_insertion(struct bp_location *left, struct bp_location *right)
void breakpoint_set_commands(struct breakpoint *b, command_line_up &&commands)
static void check_no_tracepoint_commands(struct command_line *commands)
void(* check_status)(struct bpstats *bs)
static void ours_for_output()
std::unique_ptr< struct breakpoint, breakpoint_deleter > breakpoint_up
static void watch_command_1(const char *arg, int accessflag, int from_tty, int just_location, int internal)
struct cmd_list_element * add_alias_cmd(const char *name, cmd_list_element *old, enum command_class theclass, int abbrev_flag, struct cmd_list_element **list)
static int can_use_hw_watchpoints
void observer_notify_breakpoint_deleted(struct breakpoint *b)
void void spaces(int numspaces)
void watch_command_wrapper(const char *arg, int from_tty, int internal)
static void awatch_command(const char *arg, int from_tty)
static int watchpoint_exp_is_const(const struct expression *exp)
static agent_expr_up parse_cmd_to_aexpr(CORE_ADDR scope, char *cmd)
static void print_one_breakpoint(struct breakpoint *b, struct bp_location **last_loc, int allflag)
static void strace_marker_create_breakpoints_sal(struct gdbarch *gdbarch, struct linespec_result *canonical, gdb::unique_xmalloc_ptr< char > cond_string, gdb::unique_xmalloc_ptr< char > extra_string, enum bptype type_wanted, enum bpdisp disposition, int thread, int task, int ignore_count, const struct breakpoint_ops *ops, int from_tty, int enabled, int internal, unsigned flags)
#define SWITCH_THRU_ALL_UIS()
static void bkpt_print_recreate(struct breakpoint *tp, struct ui_file *fp)
static void update_dprintf_commands(const char *args, int from_tty, struct cmd_list_element *c)
std::vector< symtab_and_line > decode_line_1(const struct event_location *location, int flags, struct program_space *search_pspace, struct symtab *default_symtab, int default_line)
struct symtab * get_last_displayed_symtab(void)
static const char * translate_condition_evaluation_mode(const char *mode)
void breakpoint_xfer_memory(gdb_byte *readbuf, gdb_byte *writebuf, const gdb_byte *writebuf_org, ULONGEST memaddr, LONGEST len)
void annotate_breakpoints_headers(void)
static int resources_needed_masked_watchpoint(const struct bp_location *bl)
const char * ep_parse_optional_if_clause(const char **arg)
void disable_watchpoints_before_interactive_call_start(void)
int find_line_pc(struct symtab *symtab, int line, CORE_ADDR *pc)
static void mark_breakpoint_modified(struct breakpoint *b)
const char * target_thread_name(struct thread_info *info)
const address_space * aspace
struct value * parse_to_comma_and_eval(const char **expp)
struct cmd_list_element * disablelist
static void create_longjmp_master_breakpoint(void)
void location_completer(struct cmd_list_element *ignore, completion_tracker &tracker, const char *text, const char *)
void print_recreate_thread(struct breakpoint *b, struct ui_file *fp)
event_location_up new_probe_location(const char *probe)
static void show_pending_break_support(struct ui_file *file, int from_tty, struct cmd_list_element *c, const char *value)
static void create_std_terminate_master_breakpoint(void)
struct breakpoint * breakpoint_at
static int bkpt_breakpoint_hit(const struct bp_location *bl, const address_space *aspace, CORE_ADDR bp_addr, const struct target_waitstatus *ws)
static int breakpoint_has_pc(struct breakpoint *b, struct program_space *pspace, CORE_ADDR pc, struct obj_section *section)
bpstat bpstat_copy(bpstat bs)
static int insert_watchpoint(struct bp_location *bl)
static void base_breakpoint_check_status(bpstat bs)
int gdbarch_fast_tracepoint_valid_at(struct gdbarch *gdbarch, CORE_ADDR addr, char **msg)
int breakpoint_has_location_inserted_here(struct breakpoint *bp, const address_space *aspace, CORE_ADDR pc)
void printf(const char *,...) ATTRIBUTE_PRINTF(2
static void condition_command(const char *arg, int from_tty)
static int insert_catch_solib(struct bp_location *ignore)
static void save_breakpoints_command(const char *args, int from_tty)
static void maintenance_info_breakpoints(const char *args, int from_tty)
static const char *const longjmp_names[]
static void breakpoint_adjustment_warning(CORE_ADDR, CORE_ADDR, int, int)
void throw_exception(struct gdb_exception exception)
struct symbol * fixup_symbol_section(struct symbol *sym, struct objfile *objfile)
void(* create_sals_from_location)(const struct event_location *location, struct linespec_result *canonical, enum bptype type_wanted)
struct command_line * next
static void disable_command(const char *args, int from_tty)
struct thread_info * parse_thread_id(const char *tidstr, const char **end)
void fetch_subexp_value(struct expression *exp, int *pc, struct value **valp, struct value **resultp, struct value **val_chain, int preserve_errors)
enum command_control_type control_type
static void disable_trace_command(const char *args, int from_tty)
int find_line_pc_range(struct symtab_and_line sal, CORE_ADDR *startptr, CORE_ADDR *endptr)
static int bpstat_remove_breakpoint_callback(struct thread_info *th, void *data)
static int locations_are_equal(struct bp_location *a, struct bp_location *b)
static struct bp_location * hoist_existing_locations(struct breakpoint *b, struct program_space *pspace)
static void tracepoint_create_sals_from_location(const struct event_location *location, struct linespec_result *canonical, enum bptype type_wanted)
static void set_tracepoint_count(int num)
#define MSYMBOL_TYPE(msymbol)
const struct extension_language_defn * get_breakpoint_cond_ext_lang(struct breakpoint *b, enum extension_language skip_lang)
void help_list(struct cmd_list_element *list, const char *cmdtype, enum command_class theclass, struct ui_file *stream)
char * hex_string_custom(LONGEST num, int width)
static int tracepoint_breakpoint_hit(const struct bp_location *bl, const address_space *aspace, CORE_ADDR bp_addr, const struct target_waitstatus *ws)
T & emplace(Args &&... args)
void discard_cleanups(struct cleanup *old_chain)
int target_insert_breakpoint(struct gdbarch *gdbarch, struct bp_target_info *bp_tgt)
breakpoint_up set_momentary_breakpoint(struct gdbarch *gdbarch, struct symtab_and_line sal, struct frame_id frame_id, enum bptype type)
const struct language_defn * current_language
int last_displayed_sal_is_valid(void)
bool query_table_field(int colno, int *width, int *alignment, const char **col_name)
char * static_trace_marker_id
CORE_ADDR overlay_unmapped_address(CORE_ADDR pc, struct obj_section *section)
struct bound_minimal_symbol lookup_minimal_symbol_by_pc(CORE_ADDR pc)
static void incref_bp_location(struct bp_location *loc)
static void update_dprintf_command_list(struct breakpoint *b)
bpstat bpstat_find_breakpoint(bpstat bsp, struct breakpoint *breakpoint)
static void print_recreate_catch_vfork(struct breakpoint *b, struct ui_file *fp)
#define ALL_PSPACES(pspace)
static char * dprintf_function
#define ALL_NON_EXITED_THREADS(T)
static std::vector< symtab_and_line > tracepoint_probe_decode_location(struct breakpoint *b, const struct event_location *location, struct program_space *search_pspace)
const char * ext_lang_capitalized_name(const struct extension_language_defn *extlang)
void operator_length(const struct expression *expr, int endpos, int *oplenp, int *argsp)
static int insert_catch_vfork(struct bp_location *bl)
#define target_can_download_tracepoint()
static int base_breakpoint_resources_needed(const struct bp_location *bl)
static void update_global_location_list(enum ugll_insert_mode)
constexpr bool empty() const noexcept
struct cleanup * make_bpstat_clear_actions_cleanup(void)
void proceed(CORE_ADDR addr, enum gdb_signal siggnal)
static int breakpoint_event_location_empty_p(const struct breakpoint *b)
void remove_solib_event_breakpoints_at_next_stop(void)
const char * async_reason_lookup(enum async_reply_reason reason)
ULONGEST traceframe_usage
event_location_up location
static void say_where(struct breakpoint *b)
static void commands_command_1(const char *arg, int from_tty, struct command_line *control)
int xsnprintf(char *str, size_t size, const char *format,...)
#define SYMBOL_BLOCK_VALUE(symbol)
struct breakpoint * set_longjmp_breakpoint_for_call_dummy(void)
static std::vector< symtab_and_line > bkpt_probe_decode_location(struct breakpoint *b, const struct event_location *location, struct program_space *search_pspace)
#define TYPE_CODE(thistype)
void clear_proceed_status(int step)
thread_control_state control
int(* remove_location)(struct bp_location *, enum remove_bp_reason reason)
enum target_waitkind kind
static void break_range_command(const char *arg, int from_tty)
#define target_insert_exec_catchpoint(pid)
void add_catch_command(const char *name, const char *docstring, cmd_const_sfunc_ftype *sfunc, completer_ftype *completer, void *user_data_catch, void *user_data_tcatch)
static void describe_other_breakpoints(struct gdbarch *, struct program_space *, CORE_ADDR, struct obj_section *, int)
void field_int(const char *fldname, int value)
bp_target_info target_info
int target_read_memory(CORE_ADDR memaddr, gdb_byte *myaddr, ssize_t len)
bool open(const char *name, const char *mode)
static void show_condition_evaluation_mode(struct ui_file *file, int from_tty, struct cmd_list_element *c, const char *value)
void expression_completer(struct cmd_list_element *ignore, completion_tracker &tracker, const char *text, const char *word)
const gdb_byte * gdbarch_breakpoint_from_pc(struct gdbarch *gdbarch, CORE_ADDR *pcptr, int *lenptr)
static void catch_command(const char *arg, int from_tty)
void breakpoint_init_inferior(enum inf_context context)
static void create_sals_from_location_default(const struct event_location *location, struct linespec_result *canonical, enum bptype type_wanted)
#define target_region_ok_for_hw_watchpoint(addr, len)
struct minimal_symbol * minsym
char * safe_strerror(int)
void set_internalvar_integer(struct internalvar *var, LONGEST l)
static void trace_pass_set_count(struct tracepoint *tp, int count, int from_tty)
void until_break_command(const char *arg, int from_tty, int anywhere)
~scoped_rbreak_breakpoints()
static void break_command_1(const char *arg, int flag, int from_tty)
static void disable_breakpoints_in_freed_objfile(struct objfile *objfile)
int remove_breakpoints(void)
static int remove_masked_watchpoint(struct bp_location *bl, enum remove_bp_reason reason)
int create_breakpoint(struct gdbarch *gdbarch, const struct event_location *location, const char *cond_string, int thread, const char *extra_string, int parse_extra, int tempflag, enum bptype type_wanted, int ignore_count, enum auto_boolean pending_break_support, const struct breakpoint_ops *ops, int from_tty, int enabled, int internal, unsigned flags)
struct interp * command_interp(void)
std::vector< symtab_and_line > decode_line_with_current_source(const char *string, int flags)
struct program_space * pspace
#define gnu_ifunc_resolve_name
int hardware_breakpoint_inserted_here_p(const address_space *aspace, CORE_ADDR pc)
void get_user_print_options(struct value_print_options *opts)
void clear_breakpoint_hit_counts(void)
void add_setshow_boolean_cmd(const char *name, enum command_class theclass, int *var, const char *set_doc, const char *show_doc, const char *help_doc, cmd_const_sfunc_ftype *set_func, show_value_ftype *show_func, struct cmd_list_element **set_list, struct cmd_list_element **show_list)
static int hw_watchpoint_use_count(struct breakpoint *)
int pc_at_non_inline_function(const address_space *aspace, CORE_ADDR pc, const struct target_waitstatus *ws)
CORE_ADDR related_address
static int base_breakpoint_breakpoint_hit(const struct bp_location *bl, const address_space *aspace, CORE_ADDR bp_addr, const struct target_waitstatus *ws)
static int can_use_hardware_watchpoint(struct value *)
static struct breakpoint * create_solib_event_breakpoint_1(struct gdbarch *gdbarch, CORE_ADDR address, enum ugll_insert_mode insert_mode)
static int resources_needed_watchpoint(const struct bp_location *bl)
static const char * bptype_string(enum bptype type)
static int extract_bp_num(extract_bp_kind kind, const char *start, int trailer, const char **end_out=NULL)
int bpstat_explains_signal(bpstat bsp, enum gdb_signal sig)
#define target_insert_hw_breakpoint(gdbarch, bp_tgt)
int user_breakpoint_p(struct breakpoint *b)
void add_solib_catchpoint(const char *arg, int is_load, int is_temp, int enabled)
static void disable_breakpoints_in_unloaded_shlib(struct so_list *solib)
int event_location_empty_p(const struct event_location *location)
void set_std_terminate_breakpoint(void)
static int bpstat_check_location(const struct bp_location *bl, const address_space *aspace, CORE_ADDR bp_addr, const struct target_waitstatus *ws)
void add_completion(gdb::unique_xmalloc_ptr< char > name, completion_match_for_lcd *match_for_lcd=NULL, const char *text=NULL, const char *word=NULL)
static struct breakpoint_objfile_data * get_breakpoint_objfile_data(struct objfile *objfile)
static struct bp_location ** bp_locations
int gdbarch_adjust_breakpoint_address_p(struct gdbarch *gdbarch)
static void internal_bkpt_print_mention(struct breakpoint *b)
void message(const char *format,...) ATTRIBUTE_PRINTF(2
static const char condition_evaluation_auto[]
void(* print_one_detail)(const struct breakpoint *, struct ui_out *)
struct breakpoint_ops base_breakpoint_ops
static void print_recreate_catch_exec(struct breakpoint *b, struct ui_file *fp)
void break_command(const char *arg, int from_tty)
std::string string_printf(const char *fmt,...)
struct breakpoint * single_step_breakpoints
void complete_internalvar(completion_tracker &tracker, const char *name)
void value_free_to_mark(const struct value *mark)
static void base_breakpoint_after_condition_true(struct bpstats *bs)
static void force_breakpoint_reinsertion(struct bp_location *bl)
#define target_can_accel_watchpoint_condition(addr, len, type, cond)
static bool is_tracepoint_type(bptype type)
void disable_overlay_breakpoints(void)
static enum print_stop_action print_it_watchpoint(bpstat bs)
static void print_one_detail_masked_watchpoint(const struct breakpoint *b, struct ui_out *uiout)
void breakpoint_set_silent(struct breakpoint *b, int silent)
static int insert_catch_fork(struct bp_location *bl)
static int rbreak_start_breakpoint_count
struct cmd_list_element * save_cmdlist
int ptid_equal(const ptid_t &ptid1, const ptid_t &ptid2)
static void enable_disable_breakpoint_location_range(int bp_num, std::pair< int, int > &bp_loc_range, bool enable)
static void trace_pass_command(const char *, int)
int target_ranged_break_num_registers(void)
static int disconnected_dprintf
static void breakpoint_about_to_proceed(void)
struct inferior * current_inferior(void)
struct cmd_list_element * add_info_alias(const char *name, const char *oldname, int abbrev_flag)
const char * print_core_address(struct gdbarch *gdbarch, CORE_ADDR address)
const bp_location_ops * ops
int is_exited(ptid_t ptid)
static void map_breakpoint_number_range(std::pair< int, int > bp_num_range, gdb::function_view< void(breakpoint *)> function)
int memory_validate_breakpoint(struct gdbarch *gdbarch, struct bp_target_info *bp_tgt)
int breakpoints_should_be_inserted_now(void)
void(* after_condition_true)(struct bpstats *bs)
enum overlay_debugging_state overlay_debugging
static std::unique_ptr< breakpoint > new_breakpoint_from_type(bptype type)
static void catch_load_command_1(const char *arg, int from_tty, struct cmd_list_element *command)
static void bkpt_re_set(struct breakpoint *b)
struct program_space * current_program_space
static const char * bp_condition_evaluator(struct breakpoint *b)
void breakpoint_set_thread(struct breakpoint *b, int thread)
static struct value * extract_bitfield_from_watchpoint_value(struct watchpoint *w, struct value *val)
struct value * parse_and_eval(const char *exp)
static int executing_breakpoint_commands
scoped_rbreak_breakpoints()
unsigned long long ULONGEST
static void bp_locations_target_extensions_update(void)
#define target_can_use_hardware_watchpoint(TYPE, CNT, OTHERTYPE)
static enum print_stop_action print_it_catch_solib(bpstat bs)
static int ignore(struct target_ops *ops, struct gdbarch *gdbarch, struct bp_target_info *bp_tgt)
static PyObject * field_name(struct type *type, int field)
static const char * condition_evaluation_mode_1
void release_value(struct value *val)
void initialize_breakpoint_ops(void)
char * savestring(const char *ptr, size_t len)
#define target_remove_vfork_catchpoint(pid)
struct breakpoint * caller_breakpoint
static void bkpt_print_mention(struct breakpoint *b)
static struct breakpoint_ops strace_marker_breakpoint_ops
void annotate_breakpoints_table_end(void)
#define target_remove_exec_catchpoint(pid)
static int bp_location_inserted_here_p(struct bp_location *bl, const address_space *aspace, CORE_ADDR pc)
counted_command_line commands
void update_breakpoints_after_exec(void)
static void catch_load_or_unload(const char *arg, int from_tty, int is_load, struct cmd_list_element *command)
struct breakpoint * location_breakpoint
int thread_is_stepping_over_breakpoint(int thread)
struct type * value_type(const struct value *value)
int watchpoints_triggered(struct target_waitstatus *ws)
int print_address_symbolic(struct gdbarch *, CORE_ADDR, struct ui_file *, int, const char *)
static enum print_stop_action print_it_ranged_breakpoint(bpstat bs)
void annotate_breakpoint(int num)
static void one_breakpoint_xfer_memory(gdb_byte *readbuf, gdb_byte *writebuf, const gdb_byte *writebuf_org, ULONGEST memaddr, LONGEST len, struct bp_target_info *target_info, struct gdbarch *gdbarch)
std::vector< probe * > find_probes_in_objfile(struct objfile *objfile, const char *provider, const char *name)
static void enable_breakpoint_disp(struct breakpoint *, enum bpdisp, int count)
unsigned int debug_infrun
static int breakpoint_hit_ranged_breakpoint(const struct bp_location *bl, const address_space *aspace, CORE_ADDR bp_addr, const struct target_waitstatus *ws)
void bpstat_do_actions(void)
void puts(const char *) override
static const char condition_evaluation_host[]
CORE_ADDR value_as_address(struct value *val)
#define NUM_LONGJMP_NAMES
static void catch_exec_command_1(const char *arg, int from_tty, struct cmd_list_element *command)
static struct bp_location ** get_first_locp_gte_addr(CORE_ADDR address)
agent_expr_up gen_eval_for_expr(CORE_ADDR scope, struct expression *expr)
#define gnu_ifunc_resolver_return_stop
static struct minimal_symbol msym_not_found
std::unique_ptr< command_line, command_lines_deleter > command_line_up
static void mention(struct breakpoint *)
static int insert_bp_location(struct bp_location *bl, struct ui_file *tmp_error_stream, int *disabled_breaks, int *hw_breakpoint_error, int *hw_bp_error_explained_already)
~exec_catchpoint() override
void annotate_catchpoint(int num)
static void enable_command(const char *args, int from_tty)
void delete_std_terminate_breakpoint(void)
static std::vector< symtab_and_line > strace_marker_decode_location(struct breakpoint *b, const struct event_location *location, struct program_space *search_pspace)
void thread_fsm_ctor(struct thread_fsm *self, struct thread_fsm_ops *ops, struct interp *cmd_interp)
breakpoint_up set_momentary_breakpoint_at_pc(struct gdbarch *gdbarch, CORE_ADDR pc, enum bptype type)
void breakpoint_retire_moribund(void)
#define TYPE_LENGTH(thistype)
static void enable_once_command(const char *args, int from_tty)
ptid_t forked_inferior_pid
static int remove_catch_exec(struct bp_location *bl, enum remove_bp_reason reason)
static void trace_command(const char *arg, int from_tty)
void init_ada_exception_breakpoint(struct breakpoint *b, struct gdbarch *gdbarch, struct symtab_and_line sal, const char *addr_string, const struct breakpoint_ops *ops, int tempflag, int enabled, int from_tty)
static struct breakpoint * new_single_step_breakpoint(int thread, struct gdbarch *gdbarch)
#define target_remove_hw_breakpoint(gdbarch, bp_tgt)
static int bp_locations_compare(const void *ap, const void *bp)
static void watch_command(const char *arg, int from_tty)
virtual bool can_evaluate_arguments() const =0
static void dprintf_after_condition_true(struct bpstats *bs)
static int breakpoint_hit_catch_vfork(const struct bp_location *bl, const address_space *aspace, CORE_ADDR bp_addr, const struct target_waitstatus *ws)
int remove_breakpoints_pid(int pid)
void remove_jit_event_breakpoints(void)
static struct bp_location * find_location_by_number(int bp_num, int loc_num)
static struct breakpoint_ops masked_watchpoint_breakpoint_ops
static void tracepoint_print_mention(struct breakpoint *b)
static const char *const dprintf_style_enums[]
struct thread_fsm thread_fsm
static void enable_disable_command(const char *args, int from_tty, bool enable)
struct address_space * placed_address_space
int value_true(struct value *val)
#define ALL_OBJFILES(obj)
void resolve_sal_pc(struct symtab_and_line *sal)
static int hw_watchpoint_used_count_others(struct breakpoint *except, enum bptype type, int *other_type_used)
static struct breakpoint_ops catch_fork_breakpoint_ops
struct cmd_list_element * add_com(const char *name, enum command_class theclass, cmd_const_cfunc_ftype *fun, const char *doc)
enum enable_state enable_state
static int is_non_inline_function(struct breakpoint *b)
static void tcatch_command(const char *arg, int from_tty)
completer_ftype * completer
void switch_to_program_space_and_thread(program_space *pspace)
static bool breakpoint_cond_eval(expression *exp)
struct observer * observer_attach_memory_changed(observer_memory_changed_ftype *f)
CORE_ADDR value_address(const struct value *value)
int is_catchpoint(struct breakpoint *ep)
struct bound_minimal_symbol longjmp_msym[NUM_LONGJMP_NAMES]
void enable_watchpoints_after_interactive_call_stop(void)
static void momentary_bkpt_re_set(struct breakpoint *b)
void(* create_breakpoints_sal)(struct gdbarch *, struct linespec_result *, gdb::unique_xmalloc_ptr< char >, gdb::unique_xmalloc_ptr< char >, enum bptype, enum bpdisp, int, int, int, const struct breakpoint_ops *, int, int, int, unsigned)
struct bound_minimal_symbol lookup_minimal_symbol(const char *name, const char *sfile, struct objfile *objf)
PTR xcalloc(size_t number, size_t size)
static int resources_needed_ranged_breakpoint(const struct bp_location *bl)
void rwatch_command_wrapper(const char *arg, int from_tty, int internal)
static int remove_watchpoint(struct bp_location *bl, enum remove_bp_reason reason)
struct command_line ** body_list
static int breakpoint_hit_catch_exec(const struct bp_location *bl, const address_space *aspace, CORE_ADDR bp_addr, const struct target_waitstatus *ws)
int gdbarch_breakpoint_kind_from_current_state(struct gdbarch *gdbarch, struct regcache *regcache, CORE_ADDR *pcptr)
#define ALL_BP_LOCATIONS(B, BP_TMP)
#define LOCATION_HELP_STRING
void delete_longjmp_breakpoint_at_next_stop(int thread)
int is_scalar_type_recursive(struct type *t)
void delete_breakpoint(struct breakpoint *bpt)
struct program_space * get_frame_program_space(struct frame_info *frame)
static int base_breakpoint_insert_location(struct bp_location *bl)
void(* print_one)(struct breakpoint *, struct bp_location **)
static const char condition_evaluation_target[]
void breakpoint_re_set_thread(struct breakpoint *b)
void maybe_print_thread_hit_breakpoint(struct ui_out *uiout)
static void print_mention_masked_watchpoint(struct breakpoint *b)
std::shared_ptr< command_line > counted_command_line
static void dprintf_command(const char *arg, int from_tty)
static int should_be_inserted(struct bp_location *bl)
static void delete_command(const char *arg, int from_tty)
int is_tracepoint(const struct breakpoint *b)
#define target_supports_stopped_by_hw_breakpoint()
const char multiple_symbols_all[]
event_location_up string_to_event_location(const char **stringp, const struct language_defn *language, symbol_name_match_type match_type)
static int remove_catch_solib(struct bp_location *ignore, enum remove_bp_reason reason)
static int strace_marker_p(struct breakpoint *b)
struct frame_id watchpoint_frame
void error(const char *fmt,...)
static int internal_breakpoint_number
void jit_event_handler(struct gdbarch *gdbarch)
static void dprintf_print_recreate(struct breakpoint *tp, struct ui_file *fp)
static struct breakpoint_ops internal_breakpoint_ops
static int breakpoint_location_address_match(struct bp_location *bl, const struct address_space *aspace, CORE_ADDR addr)
int get_number(const char **pp)
void(* re_set)(struct breakpoint *self)
char * exp_string_reparse
#define target_static_tracepoint_marker_at(addr, marker)
struct breakpoint * create_and_insert_solib_event_breakpoint(struct gdbarch *gdbarch, CORE_ADDR address)
std::vector< CORE_ADDR > gdbarch_software_single_step(struct gdbarch *gdbarch, struct regcache *regcache)
void set_breakpoint_condition(struct breakpoint *b, const char *exp, int from_tty)
int check_for_argument(const char **str, const char *arg, int arg_len)
void thread_fsm_set_finished(struct thread_fsm *self)
static void bp_location_dtor(struct bp_location *self)
struct gdbarch * get_frame_arch(struct frame_info *this_frame)
static int bkpt_resources_needed(const struct bp_location *bl)
static void init_breakpoint_sal(struct breakpoint *b, struct gdbarch *gdbarch, gdb::array_view< const symtab_and_line > sals, event_location_up &&location, gdb::unique_xmalloc_ptr< char > filter, gdb::unique_xmalloc_ptr< char > cond_string, gdb::unique_xmalloc_ptr< char > extra_string, enum bptype type, enum bpdisp disposition, int thread, int task, int ignore_count, const struct breakpoint_ops *ops, int from_tty, int enabled, int internal, unsigned flags, int display_canonical)
int target_masked_watch_num_registers(CORE_ADDR addr, CORE_ADDR mask)
enum command_control_type execute_control_command(struct command_line *cmd)
void do_cleanups(struct cleanup *old_chain)
static int watchpoint_in_thread_scope(struct watchpoint *b)
int is_executing(ptid_t ptid)
enum command_control_type commands_from_control_command(const char *arg, struct command_line *cmd)
static void update_watchpoint(struct watchpoint *b, int reparse)
static void print_recreate_watchpoint(struct breakpoint *b, struct ui_file *fp)
static void init_raw_breakpoint(struct breakpoint *b, struct gdbarch *gdbarch, struct symtab_and_line sal, enum bptype bptype, const struct breakpoint_ops *ops)
static wp_check_result watchpoint_check(bpstat bs)
enum return_reason reason
const char * bpdisp_text(enum bpdisp disp)
static void check_status_watchpoint(bpstat bs)
void field_fmt(const char *fldname, const char *format,...) ATTRIBUTE_PRINTF(3
static void free_breakpoint_objfile_data(struct objfile *obj, void *data)
static void download_tracepoint_locations(void)
void observer_notify_breakpoint_modified(struct breakpoint *b)
struct observer * observer_attach_about_to_proceed(observer_about_to_proceed_ftype *f)
static agent_expr_up parse_cond_to_aexpr(CORE_ADDR scope, struct expression *cond)
void init_catchpoint(struct breakpoint *b, struct gdbarch *gdbarch, int tempflag, const char *cond_string, const struct breakpoint_ops *ops)
static struct thread_fsm_ops until_break_fsm_ops
void check_longjmp_breakpoint_for_call_dummy(struct thread_info *tp)
enum mem_access_mode mode
void mark_breakpoints_out(void)
static void clear_command(const char *arg, int from_tty)
int gdbarch_get_longjmp_target_p(struct gdbarch *gdbarch)
enum bpstat_what_main_action main_action
LONGEST parse_and_eval_long(const char *exp)