Home | History | Annotate | Download | only in gdb

Lines Matching refs:breakpoint

49 /* True if breakpoint debug output is enabled.  */
52 /* Print a "breakpoint" debug statement. */
54 debug_prefixed_printf_cond (debug_breakpoint, "breakpoint", fmt, \
67 /* Why are we removing the breakpoint from the target? */
71 /* A regular remove. Remove the breakpoint and forget everything
79 /* This is the maximum number of bytes a breakpoint instruction can
88 /* Type of breakpoint. */
93 bp_breakpoint, /* Normal breakpoint */
94 bp_hardware_breakpoint, /* Hardware assisted breakpoint */
102 bp_longjmp, /* secret breakpoint to find longjmp() */
103 bp_longjmp_resume, /* secret breakpoint to escape longjmp() */
105 /* Breakpoint placed to the same location(s) like bp_longjmp but used to
111 /* An internal breakpoint that is installed on the unwinder's
114 /* An internal breakpoint that is set at the point where an
129 This breakpoint has some interesting properties:
140 /* The breakpoint at the end of a call dummy. See bp_longjmp_call_dummy it
144 /* A breakpoint set on std::terminate, that is used to catch
152 By placing a breakpoint in this magic code GDB will get control
162 By placing a breakpoint at one of these locations, GDB will get
171 and fiddle with breakpoints in overlays when this breakpoint
199 like a macro packaging up standard breakpoint functionality,
200 GDB doesn't have a way to construct types of breakpoint from
207 /* Breakpoint is placed at the STT_GNU_IFUNC resolver. When hit GDB
216 deleted now and the breakpoint moved to the target function entry
221 /* States of enablement of breakpoint. */
240 /* Disposition of breakpoint. Ie: what to do after hitting it. */
251 /* Status of breakpoint conditions used when synchronizing
265 /* Address space at which the breakpoint was placed. */
268 /* Address at which the breakpoint was placed. This is normally
272 to determine the type of breakpoint to insert. */
275 /* Address at which the breakpoint was requested. */
278 /* If this is a ranged breakpoint, then this field contains the
282 /* If the breakpoint lives in memory and reading that memory would
283 give back the breakpoint, instead of the original contents, then
285 this buffer are valid, and only when the breakpoint is inserted. */
291 /* The breakpoint's kind. It is used in 'kind' parameter in Z
296 breakpoint conditions. These are non-owning pointers. */
300 breakpoint commands. These are non-owning pointers. */
303 /* Flag that is true if the breakpoint should be left in place even
308 /* GDB maintains two types of information about each breakpoint (or
310 to struct breakpoint; this is a relatively high-level structure
312 commands to execute when the breakpoint is hit, and so forth.
315 Each breakpoint has one or (eventually) more locations associated
336 explicit bp_location (breakpoint *owner);
339 bp_location (breakpoint *owner, bp_loc_type type);
343 /* Type of this breakpoint location. */
346 /* Each breakpoint location must belong to exactly one higher-level
347 breakpoint. This pointer is NULL iff this bp_location is no
348 longer attached to a breakpoint. For example, when a breakpoint
352 breakpoint *owner = NULL;
356 breakpoint, this is associated with location, since if breakpoint
360 the owner breakpoint object. */
364 bytecode form. This is used for stub-side breakpoint
371 with target-side breakpoint conditions.
385 /* Signals that breakpoint conditions and/or commands need to be
404 /* True if this breakpoint is now inserted. */
407 /* True if this is a permanent breakpoint. There is a breakpoint
409 write another breakpoint instruction on top of it, or restore its
414 /* True if this is not the first breakpoint in the list
423 the breakpoint location will need a thread identifier. */
425 /* Data for specific breakpoint types. These could be a union, but
429 different from the breakpoint architecture. */
432 /* The program space associated with this breakpoint location
448 breakpoint range. */
454 /* For any breakpoint type with an address, this is the section
459 /* Address at which breakpoint was requested, either by the user or
463 which to place the breakpoint in order to comply with a
478 /* Details of the placed breakpoint, when inserted. */
481 /* Similarly, for the breakpoint at an overlay's LMA, if necessary. */
484 /* In a non-stop mode, it's possible that we delete a breakpoint,
485 but as we do that, some still running thread hits that breakpoint.
490 breakpoint was deleted, we retire all locations of that breakpoint.
497 Breakpoint placed into a comment keeps it's user specified line number
579 /* This method will be responsible for creating a breakpoint given its SALs.
626 struct breakpoint : public intrusive_list_node<breakpoint>
628 breakpoint (struct gdbarch *gdbarch_, enum bptype bptype,
631 DISABLE_COPY_AND_ASSIGN (breakpoint);
633 virtual ~breakpoint () = 0;
635 /* Allocate a location for this breakpoint. */
638 /* Return a range of this breakpoint's locations. */
641 /* Add LOC to the location list of this breakpoint, sorted by address
644 LOC must have this breakpoint as its owner. LOC must not already be linked
648 /* Remove LOC from this breakpoint's location list. The name is a bit funny
652 breakpoint's location list. */
655 /* Clear the location list of this breakpoint. */
659 /* Split all locations of this breakpoint that are bound to PSPACE out of its
664 /* Return true if this breakpoint has a least one location. */
668 /* Return true if this breakpoint has a single location. */
677 /* Return true if this breakpoint has multiple locations. */
686 /* Return a reference to the first location of this breakpoint. */
693 /* Return a reference to the first location of this breakpoint. */
700 /* Return a reference to the last location of this breakpoint. */
707 /* Reevaluate a breakpoint. This is necessary after symbols change
723 /* Insert the breakpoint or watchpoint or activate the catchpoint.
724 Return 0 for success, 1 if the breakpoint, watchpoint or
728 /* Remove the breakpoint/catchpoint that was previously inserted
730 breakpoint, watchpoint or catchpoint type is not supported,
736 breakpoint location BL. This function does not check if we
746 /* Check internal conditions of the breakpoint referred to by BS.
747 If we should not stop for this breakpoint, set BS->stop to
755 for this breakpoint. If this function is not provided, then
756 the breakpoint or watchpoint needs one debug register. */
759 /* The normal print routine for this breakpoint, called when we
763 /* Display information about this breakpoint, for "info
771 /* Display extra information about this breakpoint, below the normal
772 breakpoint description in "info breakpoints".
779 2 hw breakpoint keep y in main at test-watch.c:70
788 /* Display information about this breakpoint after setting it
792 /* Print to FP the CLI command that recreates this breakpoint. */
795 /* Return true if this breakpoint explains a signal. See
802 /* Called after evaluating the breakpoint's condition,
809 /* Type of breakpoint. */
813 /* What to do with this breakpoint after we hit it. */
818 /* True means a silent breakpoint (don't print frame info if we stop
823 /* Number of stops at this breakpoint that should be continued
827 /* Number of stops at this breakpoint before it will be
831 /* Chain of command lines to execute when this breakpoint is
838 /* The program space used to set the breakpoint. This is only set for
844 breakpoint was created. All watchpoint and catchpoint sub-types set
846 generally, user created breakpoint types don't set this field, though
849 When this variable is nullptr then a breakpoint might be associated
851 inferior and task variables to see if a breakpoint was created for a
855 /* The location specification we used to set the breakpoint. */
859 re-setting this breakpoint. This may be NULL. */
862 /* For a ranged breakpoint, the location specification we used to
866 /* Architecture we used to set the breakpoint. */
868 /* Language we used to set the breakpoint. */
870 /* Input radix we used to set the breakpoint. */
872 /* String form of the breakpoint condition (malloc'd), or NULL if
880 /* Holds the address of the related watchpoint_scope breakpoint when
882 related breakpoint be useful elsewhere, if not just call it the
883 watchpoint_scope breakpoint or something like that. FIXME). */
884 breakpoint *related_breakpoint;
886 /* Thread number for thread-specific breakpoint, or -1 if don't
890 /* Inferior number for inferior-specific breakpoint, or -1 if this
891 breakpoint is for all inferiors. */
894 /* Ada task number for task-specific breakpoint, or -1 if don't
898 /* Count of the number of times this breakpoint was taken, dumped
904 /* Is breakpoint's condition not yet parsed because we found no
910 Python object that has been associated with this breakpoint.
912 sometimes be NULL for enabled GDBs as not all breakpoint types
924 Necessary because most breakpoint implementations accept
926 thread 1", which needs outputting before any breakpoint-type
930 /* Location(s) associated with this high-level breakpoint. */
936 kind of breakpoint whose locations are created from SALs. */
937 struct code_breakpoint : public breakpoint
939 using breakpoint::breakpoint;
941 /* Create a breakpoint with SALS as locations. Use LOCATION as a
959 /* Add a location for SAL to this breakpoint. */
994 /* Helper for breakpoint and tracepoint breakpoint->mention
1000 a.k.a. a data breakpoint. */
1002 struct watchpoint : public breakpoint
1004 using breakpoint::breakpoint;
1082 /* Return true if BPT is either a software breakpoint or a hardware
1083 breakpoint. */
1085 extern bool is_breakpoint (const struct breakpoint *bpt);
1090 extern bool is_watchpoint (const struct breakpoint *bpt);
1095 extern bool is_exception_catchpoint (breakpoint *bp);
1140 struct catchpoint : public breakpoint
1142 /* If TEMP is true, then make the breakpoint temporary. If
1143 COND_STRING is not NULL, then store it in the breakpoint. */
1155 /* The following stuff is an abstract data type "bpstat" ("breakpoint
1157 stopped at a breakpoint, and what we should do about it. */
1179 Determine whether we stopped at a breakpoint, etc, or whether we
1187 Each element of the chain refers to a particular breakpoint or
1219 breakpoint (a challenging task).
1230 Note that a step resume breakpoint overrides another breakpoint of
1232 the step_resume breakpoint). */
1248 /* Set longjmp_resume breakpoint, remove all other breakpoints,
1250 required if we are also stepping over another breakpoint as
1254 /* Clear longjmp_resume breakpoint, then handle as
1258 /* Clear step resume breakpoint, and keep checking. */
1273 /* Clear step resume breakpoint, and keep checking. High-priority
1275 breakpoint at the current PC when we set the step-resume
1276 breakpoint, we don't want to re-handle any breakpoint other
1278 past the breakpoint. This is used in the case of skipping
1287 /* We didn't stop at a stack dummy breakpoint. */
1301 /* Did we hit a call dummy breakpoint? This only goes with a
1316 /* Run breakpoint event callbacks associated with the breakpoints that
1320 /* Find the bpstat associated with a breakpoint. NULL otherwise. */
1321 bpstat *bpstat_find_breakpoint (bpstat *, struct breakpoint *);
1339 /* Put in *NUM the breakpointbreakpoint we are
1345 Return -1 if stopped at a breakpoint that has been deleted since
1350 /* If BS indicates a breakpoint and this breakpoint has several code locations,
1355 /* Print BS breakpoint number optionally followed by a . and breakpoint locno.
1357 For a breakpoint with only one code location, outputs the signed field
1358 "bkptno" breakpoint number of BS (as returned by bpstat_num).
1365 just use this for breakpoint commands. Perhaps other actions will
1401 /* Linked list because there can be more than one breakpoint at
1408 detached from a breakpoint, but that does not necessary mean
1409 that the struct breakpoint is gone. E.g., consider a
1423 /* Breakpoint that caused the stop. This is nullified if the
1424 breakpoint ends up being deleted. See comments on
1427 struct breakpoint *breakpoint_at;
1435 /* True if this breakpoint tells us to print the frame. */
1438 /* True if this breakpoint tells us to stop. */
1455 We guarantee that zero always means "no breakpoint here". */
1465 /* Prototypes for breakpoint-related functions. */
1470 /* Return true if an enabled breakpoint exists in the range defined by
1483 /* Return non-zero iff there is a hardware breakpoint inserted at
1490 extern int breakpoint_has_location_inserted_here (struct breakpoint *bp,
1504 same breakpoint location. In most targets, this can only be true
1525 extern void breakpoint_re_set_thread (struct breakpoint *);
1527 extern void delete_breakpoint (struct breakpoint *);
1531 void operator() (struct breakpoint *b) const
1537 typedef std::unique_ptr<struct breakpoint, breakpoint_deleter> breakpoint_up;
1545 extern struct breakpoint *clone_momentary_breakpoint (struct breakpoint *bpkt);
1549 /* Clear the "inserted" flag in all breakpoint locations of INF's program space
1563 /* Return the chain of command lines to execute when this breakpoint
1565 extern struct command_line *breakpoint_commands (struct breakpoint *b);
1595 /* Add breakpoint B on the breakpoint list, and notify the user, the
1597 INTERNAL is non-zero, the breakpoint number will be allocated from
1598 the internal breakpoint count. If UPDATE_GLL is non-zero,
1603 extern breakpoint *install_breakpoint
1604 (int internal, std::unique_ptr<breakpoint> &&b, int update_gll);
1606 /* Returns the breakpoint ops appropriate for use with with LOCSPEC
1616 breakpoint creation in several ways. */
1620 /* We're adding a breakpoint to our tables that is already
1625 /* Set a breakpoint. This function is shared between CLI and MI
1626 functions for setting a breakpoint at LOCSPEC.
1633 If PARSE_EXTRA is zero, LOCSPEC is just the breakpoint's location
1643 PARSE_EXTRA must always be zero, LOCSPEC is just the breakpoint's
1654 The THREAD should be a global thread number, the created breakpoint will
1655 only apply for that thread. If the breakpoint should apply for all
1660 The INFERIOR should be a global inferior number, the created breakpoint
1661 will only apply for that inferior. If the breakpoint should apply for
1670 If INTERNAL is non-zero, the breakpoint number will be allocated
1671 from the internal breakpoint count.
1673 Returns true if any breakpoint was created; false otherwise. */
1698 /* This function can be used to update the breakpoint package's state
1707 - The solib breakpoints are explicitly removed from the breakpoint
1709 - A step-resume breakpoint, if any, is explicitly removed from the
1710 breakpoint list.
1712 breakpoint list. */
1717 modifying the breakpoint package's state. This can be useful for
1738 extern struct breakpoint *set_longjmp_breakpoint_for_call_dummy (void);
1764 when the first such breakpoint is reached. However, on targets
1776 processing, making breakpoint addresses invalid.
1785 /* For script interpreters that need to define breakpoint commands
1793 extern struct breakpoint *get_breakpoint (int num);
1806 extern void disable_breakpoint (struct breakpoint *);
1808 extern void enable_breakpoint (struct breakpoint *);
1810 extern void breakpoint_set_commands (struct breakpoint *b,
1813 extern void breakpoint_set_silent (struct breakpoint *b, int silent);
1815 /* Set the thread for this breakpoint. If THREAD is -1, make the
1816 breakpoint work for any thread. Passing a value other than -1 for
1818 set both a thread and task restriction on a breakpoint. */
1820 extern void breakpoint_set_thread (struct breakpoint *b, int thread);
1822 /* Set the inferior for breakpoint B to INFERIOR. If INFERIOR is -1, make
1823 the breakpoint work for any inferior. */
1825 extern void breakpoint_set_inferior (struct breakpoint *b, int inferior);
1827 /* Set the task for this breakpoint. If TASK is -1, make the breakpoint
1830 and task restriction on a breakpoint. */
1832 extern void breakpoint_set_task (struct breakpoint *b, int task);
1838 extern struct breakpoint *create_jit_event_breakpoint (struct gdbarch *,
1841 extern struct breakpoint *create_solib_event_breakpoint (struct gdbarch *,
1844 /* Create an solib event breakpoint at ADDRESS in the current program
1846 breakpoint on success. Deletes the new breakpoint and returns NULL
1847 if inserting the breakpoint fails. */
1848 extern struct breakpoint *create_and_insert_solib_event_breakpoint
1851 extern struct breakpoint *create_thread_event_breakpoint (struct gdbarch *,
1869 extern bool is_catchpoint (struct breakpoint *b);
1881 /* Create and insert a new software single step breakpoint for the
1899 /* Helper for transparent breakpoint hiding for memory read and write
1903 (READBUF), or the breakpoint instructions (WRITEBUF) of inserted
1916 - "breakpoint always-inserted" is on, and the target has
1924 Retires previously deleted breakpoint locations that
1928 /* Set break condition of breakpoint B to EXP.
1930 all of the breakpoint locations. */
1931 extern void set_breakpoint_condition (struct breakpoint *b, const char *exp,
1934 /* Set break condition for the breakpoint with number BPNUM to EXP.
1935 Raise an error if no breakpoint with the given number is found.
1936 Also raise an error if the breakpoint already has stop conditions.
1938 all of the breakpoint locations. */
1962 extern bool is_tracepoint (const struct breakpoint *b);
1965 extern std::vector<breakpoint *> static_tracepoints_here (CORE_ADDR addr);
1967 /* Create an instance of this to start registering breakpoint numbers
1977 /* Return the number of first breakpoint made while this object is
1981 /* Return the number of the most recent breakpoint made while this
1988 /* Breakpoint linked list iterator. */
1990 using breakpoint_list = intrusive_list<breakpoint>;
1994 /* Breakpoint linked list range. */
2002 /* Breakpoint linked list range, safe against deletion of the current
2003 breakpoint while iterating. */
2008 deletion of the current breakpoint while iterating. */
2012 /* Breakpoint filter to only keep tracepoints. */
2016 bool operator() (breakpoint &b)
2020 /* Breakpoint linked list iterator, filtering to only keep tracepoints. */
2025 /* Breakpoint linked list range, filtering to only keep tracepoints. */
2033 /* Return a range to iterate over all breakpoint locations. */
2044 extern int user_breakpoint_p (const breakpoint *);
2046 /* Return true if this breakpoint is pending, false if not. */
2047 extern int pending_breakpoint_p (const breakpoint *);
2056 /* Print the "Thread ID hit" part of "Thread ID hit Breakpoint N" to
2060 /* Print the specified breakpoint. */
2061 extern void print_breakpoint (breakpoint *bp);
2067 multi-location breakpoint (see PR 9659). */
2072 commands attached to a breakpoint. */
2100 /* Enable or disable a breakpoint location LOC. ENABLE
2106 /* Notify interpreters and observers that breakpoint B was modified. */
2108 extern void notify_breakpoint_modified (breakpoint *b);