CS318 - Pintos
Pintos source browser for JHU CS318 course
src
lib
debug.c
Go to the documentation of this file.
1
#include <
debug.h
>
2
#include <
stdarg.h
>
3
#include <
stdbool.h
>
4
#include <
stddef.h
>
5
#include <
stdio.h
>
6
#include <
string.h
>
7
8
/** Prints the call stack, that is, a list of addresses, one in
9
each of the functions we are nested within. gdb or addr2line
10
may be applied to kernel.o to translate these into file names,
11
line numbers, and function names. */
12
void
13
debug_backtrace
(
void
)
14
{
15
static
bool
explained;
16
void
**frame;
17
18
printf
(
"Call stack: %p"
, __builtin_return_address (0));
19
for
(frame = __builtin_frame_address (1);
20
(
uintptr_t
) frame >= 0x1000 && frame[0] !=
NULL
;
21
frame = frame[0])
22
printf
(
" %p"
, frame[1]);
23
printf
(
".\n"
);
24
25
if
(!explained)
26
{
27
explained =
true
;
28
printf
(
"The `backtrace' program can make call stacks useful.\n"
29
"Read \"Backtraces\" in the \"Debugging Tools\" chapter\n"
30
"of the Pintos documentation for more information.\n"
);
31
}
32
}
NULL
#define NULL
Definition:
stddef.h:4
string.h
debug_backtrace
void debug_backtrace(void)
Prints the call stack, that is, a list of addresses, one in each of the functions we are nested withi...
Definition:
debug.c:13
stdbool.h
stdarg.h
printf
int printf(const char *format,...)
Writes formatted output to the console.
Definition:
stdio.c:79
stdio.h
uintptr_t
uint32_t uintptr_t
Definition:
stdint.h:36
stddef.h
debug.h
Generated on Thu Aug 22 2019 10:19:15 for CS318 - Pintos by
1.8.16