-
Notifications
You must be signed in to change notification settings - Fork 13.3k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Move GDB stub hooks into a separate file, provide header for it - Use syscall instruction raise user mode exception - Remove unused code in postmortem.c fixup fixup
- Loading branch information
Showing
6 changed files
with
126 additions
and
45 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,36 @@ | ||
/* | ||
gdb_hooks.c - Default (no-op) hooks for GDB Stub library | ||
Copyright (c) 2018 Ivan Grokhotkov. All right reserved. | ||
This library is free software; you can redistribute it and/or | ||
modify it under the terms of the GNU Lesser General Public | ||
License as published by the Free Software Foundation; either | ||
version 2.1 of the License, or (at your option) any later version. | ||
This library 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 | ||
Lesser General Public License for more details. | ||
You should have received a copy of the GNU Lesser General Public | ||
License along with this library; if not, write to the Free Software | ||
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA | ||
*/ | ||
|
||
#include "ets_sys.h" | ||
#include "gdb_hooks.h" | ||
|
||
|
||
/* gdb_init and gdb_do_break do not return anything, but since the return | ||
value is in register, it doesn't hurt to return a bool, so that the | ||
same stub can be used for gdb_present. */ | ||
|
||
bool ICACHE_RAM_ATTR __gdb_no_op() | ||
{ | ||
return false; | ||
} | ||
|
||
extern void gdb_init(void) __attribute__ ((weak, alias("__gdb_no_op"))); | ||
extern void gdb_do_break(void) __attribute__ ((weak, alias("__gdb_no_op"))); | ||
extern bool gdb_present(void) __attribute__ ((weak, alias("__gdb_no_op"))); | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,57 @@ | ||
/* | ||
gdb_hooks.h - Hooks for GDB Stub library | ||
Copyright (c) 2018 Ivan Grokhotkov. All right reserved. | ||
This library is free software; you can redistribute it and/or | ||
modify it under the terms of the GNU Lesser General Public | ||
License as published by the Free Software Foundation; either | ||
version 2.1 of the License, or (at your option) any later version. | ||
This library 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 | ||
Lesser General Public License for more details. | ||
You should have received a copy of the GNU Lesser General Public | ||
License along with this library; if not, write to the Free Software | ||
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA | ||
*/ | ||
|
||
#pragma once | ||
|
||
#ifdef __cplusplus | ||
extern "C" { | ||
#endif | ||
|
||
/** | ||
* @brief Initialize GDB stub, if present | ||
* | ||
* By default, this function is a no-op. When GDBStub library is linked, | ||
* this function is overriden and does necessary initialization of that library. | ||
* Called early at startup. | ||
*/ | ||
void gdb_init(void); | ||
|
||
/** | ||
* @brief Break into GDB, if present | ||
* | ||
* By default, this function is a no-op. When GDBStub library is linked, | ||
* this function is overriden and triggers entry into the debugger, which | ||
* looks like a breakpoint hit. | ||
*/ | ||
void gdb_do_break(void); | ||
|
||
/** | ||
* @brief Check if GDB stub is present. | ||
* | ||
* By default, this function returns false. When GDBStub library is linked, | ||
* this function is overriden and returns true. Can be used to check whether | ||
* GDB is used. | ||
* | ||
* @return true if GDB stub is present | ||
*/ | ||
bool gdb_present(void); | ||
|
||
#ifdef __cplusplus | ||
} | ||
#endif |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -3,6 +3,4 @@ | |
|
||
// this header is intentionally left blank | ||
|
||
bool crash_for_gdb = 1; | ||
|
||
#endif //GDBSTUB_H |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters