12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879 |
- /* Copyright (C) 2011-2022 Free Software Foundation, Inc.
- This file is part of GDB.
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 3 of the License, or
- (at your option) any later version.
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
- You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
- /* Reasons why frames could not be further unwound
- SET (name, description)
-
- After this reason name, all reasons should be considered errors;
- i.e.: abnormal stack termination.
- FIRST_ERROR (name)
-
- First and Last reason defined
- FIRST_ENTRY (name)
- LAST_ENTRY (name) */
- #ifdef SET
- /* No particular reason; either we haven't tried unwinding yet,
- or we didn't fail. */
- SET (UNWIND_NO_REASON, "no reason")
- /* This is no longer used anywhere, but it's kept because it's exposed
- to Python. This is how GDB used to indicate end of stack. We've
- now migrated to a model where frames always have a valid ID. */
- SET (UNWIND_NULL_ID, "unwinder did not report frame ID")
- /* This frame is the outermost. */
- SET (UNWIND_OUTERMOST, "outermost")
- /* Can't unwind further, because that would require knowing the
- values of registers or memory that haven't been collected. */
- SET (UNWIND_UNAVAILABLE, \
- "not enough registers or memory available to unwind further")
- /* This frame ID looks like it ought to belong to a NEXT frame,
- but we got it for a PREV frame. Normally, this is a sign of
- unwinder failure. It could also indicate stack corruption. */
- SET (UNWIND_INNER_ID, "previous frame inner to this frame (corrupt stack?)")
- /* This frame has the same ID as the previous one. That means
- that unwinding further would almost certainly give us another
- frame with exactly the same ID, so break the chain. Normally,
- this is a sign of unwinder failure. It could also indicate
- stack corruption. */
- SET (UNWIND_SAME_ID, "previous frame identical to this frame (corrupt stack?)")
- /* The frame unwinder didn't find any saved PC, but we needed
- one to unwind further. */
- SET (UNWIND_NO_SAVED_PC, "frame did not save the PC")
- /* There was an error accessing memory while unwinding this frame. */
- SET (UNWIND_MEMORY_ERROR, "memory error while unwinding")
- #endif /* SET */
- #ifdef FIRST_ERROR
- FIRST_ERROR (UNWIND_UNAVAILABLE)
- #endif
- #ifdef FIRST_ENTRY
- FIRST_ENTRY (UNWIND_NO_REASON)
- #endif
- #ifdef LAST_ENTRY
- LAST_ENTRY (UNWIND_MEMORY_ERROR)
- #endif
|