add stacktrace message
Former-commit-id: 5be1620629ce8de7f419bc001f18d22d6eb4fa8a
This commit is contained in:
parent
fe2292f111
commit
a269f35002
@ -1612,15 +1612,23 @@ void safe_write(int fd, const void *pv, ssize_t cb)
|
|||||||
*/
|
*/
|
||||||
void logStackTrace(void * eip, int uplevel) {
|
void logStackTrace(void * eip, int uplevel) {
|
||||||
(void)eip;//UNUSED
|
(void)eip;//UNUSED
|
||||||
|
const char *msg;
|
||||||
int fd = openDirectLogFiledes();
|
int fd = openDirectLogFiledes();
|
||||||
|
|
||||||
if (fd == -1) return; /* If we can't log there is anything to do. */
|
if (fd == -1) return; /* If we can't log there is anything to do. */
|
||||||
|
|
||||||
|
msg = "\n------ STACK TRACE ------\n";
|
||||||
|
if (write(fd,msg,strlen(msg)) == -1) {/* Avoid warning. */};
|
||||||
unw_cursor_t cursor;
|
unw_cursor_t cursor;
|
||||||
unw_context_t context;
|
unw_context_t context;
|
||||||
|
|
||||||
unw_getcontext(&context);
|
unw_getcontext(&context);
|
||||||
unw_init_local(&cursor, &context);
|
unw_init_local(&cursor, &context);
|
||||||
|
|
||||||
|
/* Write symbols to log file */
|
||||||
|
msg = "\nBacktrace:\n";
|
||||||
|
if (write(fd,msg,strlen(msg)) == -1) {/* Avoid warning. */};
|
||||||
|
|
||||||
for (int i = 0; i < uplevel; i++) {
|
for (int i = 0; i < uplevel; i++) {
|
||||||
unw_step(&cursor);
|
unw_step(&cursor);
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user