X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=doc%2Fdebug.texi;h=1aea23874c1715814663aabe1e28b99b1a8b641b;hb=2ca95dc97c9dd591d0f71f1f4c411b3aeb82d690;hp=e671b7495b2cc9a6e403abe6b252e1fa0ab24d35;hpb=611e2d49c1776917a455c7741db8ed1606c0f446;p=pintos-anon diff --git a/doc/debug.texi b/doc/debug.texi index e671b74..1aea238 100644 --- a/doc/debug.texi +++ b/doc/debug.texi @@ -115,10 +115,10 @@ sense (e.g.@: function A is listed above function B, but B doesn't call A), then it's a good sign that you're corrupting a kernel thread's stack, because the backtrace is extracted from the stack. Alternatively, it could be that the @file{kernel.o} you passed to -@command{backtrace} does not correspond to the kernel that produced +@command{backtrace} is not the same kernel that produced the backtrace. -Sometimes backtraces can be confusing without implying corruption. +Sometimes backtraces can be confusing without any corruption. Compiler optimizations can cause surprising behavior. When a function has called another function as its final action (a @dfn{tail call}), the calling function may not appear in a backtrace at all. Similarly, when @@ -360,6 +360,8 @@ that links the elements. Example: @code{dumplist all_list thread all_elem} prints all elements of @struct{thread} that are linked in @code{struct list all_list} using the @code{struct list_elem all_elem} which is part of @struct{thread}. +(This assumes that you have added @code{all_list} and @code{all_elem} +yourself.) @end deffn @deffn {GDB Macro} btthread thread @@ -380,6 +382,8 @@ Example: @code{btthreadlist all_list all_elem} shows the backtraces of all threads contained in @code{struct list all_list}, linked together by @code{all_elem}. This command is useful to determine where your threads are stuck when a deadlock occurs. Please see the example scenario below. +(This assumes that you have added @code{all_list} and @code{all_elem} +yourself.) @end deffn @deffn {GDB Macro} btpagefault