diff options
author | hunt <hunt> | 2005-05-26 07:18:22 +0000 |
---|---|---|
committer | hunt <hunt> | 2005-05-26 07:18:22 +0000 |
commit | 849e99602e4b0487dad23e28cb6a94bf013f40a4 (patch) | |
tree | b457af2da7d7d8b2cc8df0430e3bf54f3ab07cfa /runtime/docs/html/stack_8c-source.html | |
parent | 45f880289dcfc06494885546750b42f4e59074a6 (diff) | |
download | systemtap-steved-849e99602e4b0487dad23e28cb6a94bf013f40a4.tar.gz systemtap-steved-849e99602e4b0487dad23e28cb6a94bf013f40a4.tar.xz systemtap-steved-849e99602e4b0487dad23e28cb6a94bf013f40a4.zip |
Remove all the generated html files.
Diffstat (limited to 'runtime/docs/html/stack_8c-source.html')
-rw-r--r-- | runtime/docs/html/stack_8c-source.html | 188 |
1 files changed, 0 insertions, 188 deletions
diff --git a/runtime/docs/html/stack_8c-source.html b/runtime/docs/html/stack_8c-source.html deleted file mode 100644 index eda90dc4..00000000 --- a/runtime/docs/html/stack_8c-source.html +++ /dev/null @@ -1,188 +0,0 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> -<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1"> -<title>SystemTap: stack.c Source File</title> -<link href="doxygen.css" rel="stylesheet" type="text/css"> -</head><body> -<!-- Generated by Doxygen 1.4.1 --> -<div class="qindex"><a class="qindex" href="index.html">Main Page</a> | <a class="qindex" href="modules.html">Modules</a> | <a class="qindex" href="dirs.html">Directories</a> | <a class="qindex" href="files.html">File List</a> | <a class="qindex" href="globals.html">Globals</a> | <a class="qindex" href="pages.html">Related Pages</a></div> -<h1>stack.c</h1><a href="stack_8c.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment">00001 <span class="preprocessor">#ifndef _STACK_C_ </span><span class="comment">/* -*- linux-c -*- */</span> -00002 <span class="preprocessor">#define _STACK_C_</span> -00003 <span class="preprocessor"></span> -00004 <span class="comment"></span> -00005 <span class="comment">/** @file stack.c</span> -00006 <span class="comment"> * @brief Stack Tracing Functions</span> -00007 <span class="comment"> */</span> -00008 <span class="comment"></span> -00009 <span class="comment">/** @addtogroup stack Stack Tracing Functions</span> -00010 <span class="comment"> * @{</span> -00011 <span class="comment"> */</span> -00012 -00013 <span class="preprocessor">#include "sym.c"</span> -00014 -00015 <span class="keyword">static</span> int (*_stp_kta)(<span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> addr)=(<span class="keywordtype">void</span> *)KTA; -00016 -00017 <span class="preprocessor">#ifdef __x86_64__</span> -00018 <span class="preprocessor"></span><span class="keyword">static</span> <span class="keywordtype">void</span> __stp_stack_print (<span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> *stack, <span class="keywordtype">int</span> verbose, <span class="keywordtype">int</span> levels) -00019 { -00020 <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> addr; -00021 -00022 <span class="keywordflow">if</span> (verbose) -00023 _stp_printf ("trace for %d (%s)\n", current->pid, current->comm); -00024 -00025 while (((<span class="keywordtype">long</span>) stack & (THREAD_SIZE-1)) != 0) { -00026 addr = *stack++; -00027 <span class="keywordflow">if</span> (_stp_kta(addr)) { -00028 <span class="keywordflow">if</span> (verbose) { -00029 <a class="code" href="group__sym.html#ga2">_stp_symbol_print</a> (addr); -00030 <a class="code" href="group__print.html#ga11">_stp_print</a> (<span class="stringliteral">"\n"</span>); -00031 } <span class="keywordflow">else</span> -00032 <a class="code" href="group__print.html#ga3">_stp_printf</a> (<span class="stringliteral">"0x%lx "</span>, addr); -00033 } -00034 } -00035 <a class="code" href="group__print.html#ga2">_stp_print_flush</a>(); -00036 } -00037 -00038 -00039 <span class="keyword">static</span> <span class="keywordtype">void</span> __stp_stack_sprint (String str, <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> *stack, <span class="keywordtype">int</span> verbose, <span class="keywordtype">int</span> levels) -00040 { -00041 <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> addr; -00042 <span class="keywordflow">while</span> (((<span class="keywordtype">long</span>) stack & (THREAD_SIZE-1)) != 0) { -00043 addr = *stack++; -00044 <span class="keywordflow">if</span> (_stp_kta(addr)) { -00045 <span class="keywordflow">if</span> (verbose) -00046 _stp_symbol_sprint (str, addr); -00047 else -00048 _stp_sprintf (str, "0x%lx ", addr); -00049 } -00050 } -00051 } -00052 -00053 #else <span class="comment">/* i386 */</span> -00054 -00055 static inline <span class="keywordtype">int</span> valid_stack_ptr (struct thread_info *tinfo, <span class="keywordtype">void</span> *p) -00056 { -00057 <span class="keywordflow">return</span> p > (<span class="keywordtype">void</span> *)tinfo && -00058 p < (<span class="keywordtype">void</span> *)tinfo + THREAD_SIZE - 3; -00059 } -00060 -00061 <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> _stp_print_context_stack ( -00062 <span class="keyword">struct</span> thread_info *tinfo, -00063 <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> *stack, -00064 <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> ebp ) -00065 { -00066 <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> addr; -00067 -00068 <span class="preprocessor">#ifdef CONFIG_FRAME_POINTER</span> -00069 <span class="preprocessor"></span> <span class="keywordflow">while</span> (valid_stack_ptr(tinfo, (<span class="keywordtype">void</span> *)ebp)) { -00070 addr = *(<span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> *)(ebp + 4); -00071 <a class="code" href="group__sym.html#ga2">_stp_symbol_print</a> (addr); -00072 <a class="code" href="group__print.html#ga5">_stp_print_cstr</a>(<span class="stringliteral">"\n"</span>); -00073 ebp = *(<span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> *)ebp; -00074 } -00075 <span class="preprocessor">#else</span> -00076 <span class="preprocessor"></span> <span class="keywordflow">while</span> (valid_stack_ptr(tinfo, stack)) { -00077 addr = *stack++; -00078 <span class="keywordflow">if</span> (_stp_kta (addr)) { -00079 <a class="code" href="group__sym.html#ga2">_stp_symbol_print</a> (addr); -00080 <a class="code" href="group__print.html#ga5">_stp_print_cstr</a> (<span class="stringliteral">"\n"</span>); -00081 } -00082 } -00083 <span class="preprocessor">#endif</span> -00084 <span class="preprocessor"></span> <a class="code" href="group__print.html#ga2">_stp_print_flush</a>(); -00085 <span class="keywordflow">return</span> ebp; -00086 } -00087 -00088 <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> _stp_sprint_context_stack ( -00089 String str, -00090 <span class="keyword">struct</span> thread_info *tinfo, -00091 <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> *stack, -00092 <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> ebp ) -00093 { -00094 <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> addr; -00095 -00096 <span class="preprocessor">#ifdef CONFIG_FRAME_POINTER</span> -00097 <span class="preprocessor"></span> <span class="keywordflow">while</span> (valid_stack_ptr(tinfo, (<span class="keywordtype">void</span> *)ebp)) { -00098 addr = *(<span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> *)(ebp + 4); -00099 <a class="code" href="group__sym.html#ga1">_stp_symbol_sprint</a> (str, addr); -00100 <a class="code" href="group__string.html#ga9">_stp_string_cat</a> (<span class="stringliteral">"\n"</span>); -00101 ebp = *(<span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> *)ebp; -00102 } -00103 <span class="preprocessor">#else</span> -00104 <span class="preprocessor"></span> <span class="keywordflow">while</span> (valid_stack_ptr(tinfo, stack)) { -00105 addr = *stack++; -00106 <span class="keywordflow">if</span> (_stp_kta (addr)) { -00107 <a class="code" href="group__sym.html#ga1">_stp_symbol_sprint</a> (addr); -00108 <a class="code" href="group__string.html#ga9">_stp_string_cat</a> (<span class="stringliteral">"\n"</span>); -00109 } -00110 } -00111 <span class="preprocessor">#endif</span> -00112 <span class="preprocessor"></span> <span class="keywordflow">return</span> ebp; -00113 } -00114 -00115 <span class="keyword">static</span> <span class="keywordtype">void</span> __stp_stack_print (<span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> *stack, <span class="keywordtype">int</span> verbose, <span class="keywordtype">int</span> levels) -00116 { -00117 <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> ebp; -00118 -00119 <span class="comment">/* Grab ebp right from our regs */</span> -00120 <span class="keyword">asm</span> (<span class="stringliteral">"movl %%ebp, %0"</span> : <span class="stringliteral">"=r"</span> (ebp) : ); -00121 -00122 <span class="keywordflow">while</span> (stack) { -00123 <span class="keyword">struct </span>thread_info *context = (<span class="keyword">struct </span>thread_info *) -00124 ((<span class="keywordtype">unsigned</span> long)stack & (~(THREAD_SIZE - 1))); -00125 ebp = _stp_print_context_stack (context, stack, ebp); -00126 stack = (<span class="keywordtype">unsigned</span> <span class="keywordtype">long</span>*)context->previous_esp; -00127 } -00128 } -00129 -00130 <span class="keyword">static</span> <span class="keywordtype">void</span> __stp_stack_sprint (String str, <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> *stack, <span class="keywordtype">int</span> verbose, <span class="keywordtype">int</span> levels) -00131 { -00132 <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> ebp; -00133 -00134 <span class="comment">/* Grab ebp right from our regs */</span> -00135 <span class="keyword">asm</span> (<span class="stringliteral">"movl %%ebp, %0"</span> : <span class="stringliteral">"=r"</span> (ebp) : ); -00136 -00137 <span class="keywordflow">while</span> (stack) { -00138 <span class="keyword">struct </span>thread_info *context = (<span class="keyword">struct </span>thread_info *) -00139 ((<span class="keywordtype">unsigned</span> long)stack & (~(THREAD_SIZE - 1))); -00140 ebp = _stp_sprint_context_stack (str, context, stack, ebp); -00141 stack = (<span class="keywordtype">unsigned</span> <span class="keywordtype">long</span>*)context->previous_esp; -00142 } -00143 } -00144 -00145 <span class="preprocessor">#endif </span><span class="comment">/* i386 */</span> -00146 <span class="comment"></span> -00147 <span class="comment">/** Print stack dump.</span> -00148 <span class="comment"> * Prints a stack dump to the print buffer.</span> -00149 <span class="comment"> * @param verbose Verbosity</span> -00150 <span class="comment"> * @param levels Number of levels to trace.</span> -00151 <span class="comment"> * @todo Implement verbosity and levels parameters.</span> -00152 <span class="comment"> * @bug levels parameter is not functional</span> -00153 <span class="comment"> */</span> -00154 -<a name="l00155"></a><a class="code" href="group__stack.html#ga6">00155</a> <span class="keywordtype">void</span> <a class="code" href="group__stack.html#ga6">_stp_stack_print</a> (<span class="keywordtype">int</span> verbose, <span class="keywordtype">int</span> levels) -00156 { -00157 <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> stack; -00158 __stp_stack_print (&stack, verbose, levels); -00159 } -00160 <span class="comment"></span> -00161 <span class="comment">/** Writes stack dump to a String</span> -00162 <span class="comment"> *</span> -00163 <span class="comment"> * @param str String</span> -00164 <span class="comment"> * @param verbose Verbosity</span> -00165 <span class="comment"> * @param levels Number of levels to trace.</span> -00166 <span class="comment"> * @returns Same String as was input.</span> -00167 <span class="comment"> * @todo Implement verbosity and levels parameters.</span> -00168 <span class="comment"> * @bug levels parameter is not functional</span> -00169 <span class="comment"> */</span> -00170 -<a name="l00171"></a><a class="code" href="group__stack.html#ga7">00171</a> String <a class="code" href="group__stack.html#ga7">_stp_stack_sprint</a> (String str, <span class="keywordtype">int</span> verbose, <span class="keywordtype">int</span> levels) -00172 { -00173 <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> stack; -00174 __stp_stack_sprint (str, &stack, verbose, levels); -00175 <a class="code" href="group__io.html#ga2">_stp_log</a> (<span class="stringliteral">"sss: str=%s\n"</span>, str->buf); -00176 <span class="keywordflow">return</span> str; -00177 } -00178 <span class="comment"></span> -00179 <span class="comment">/** @} */</span> -00180 <span class="preprocessor">#endif </span><span class="comment">/* _STACK_C_ */</span> -</pre></div></body></html> |