1*754f425fSjmmv // Copyright 2012 Google Inc. 2*754f425fSjmmv // All rights reserved. 3*754f425fSjmmv // 4*754f425fSjmmv // Redistribution and use in source and binary forms, with or without 5*754f425fSjmmv // modification, are permitted provided that the following conditions are 6*754f425fSjmmv // met: 7*754f425fSjmmv // 8*754f425fSjmmv // * Redistributions of source code must retain the above copyright 9*754f425fSjmmv // notice, this list of conditions and the following disclaimer. 10*754f425fSjmmv // * Redistributions in binary form must reproduce the above copyright 11*754f425fSjmmv // notice, this list of conditions and the following disclaimer in the 12*754f425fSjmmv // documentation and/or other materials provided with the distribution. 13*754f425fSjmmv // * Neither the name of Google Inc. nor the names of its contributors 14*754f425fSjmmv // may be used to endorse or promote products derived from this software 15*754f425fSjmmv // without specific prior written permission. 16*754f425fSjmmv // 17*754f425fSjmmv // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 18*754f425fSjmmv // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 19*754f425fSjmmv // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 20*754f425fSjmmv // A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 21*754f425fSjmmv // OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 22*754f425fSjmmv // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 23*754f425fSjmmv // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 24*754f425fSjmmv // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 25*754f425fSjmmv // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 26*754f425fSjmmv // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 27*754f425fSjmmv // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 28*754f425fSjmmv 29*754f425fSjmmv /// \file stacktrace.h 30*754f425fSjmmv /// Routines to obtain stacktraces out of core files. 31*754f425fSjmmv 32*754f425fSjmmv #if !defined(KYUA_STACKTRACE_H) 33*754f425fSjmmv #define KYUA_STACKTRACE_H 34*754f425fSjmmv 35*754f425fSjmmv #include <stdio.h> 36*754f425fSjmmv #include <unistd.h> 37*754f425fSjmmv 38*754f425fSjmmv #include "run_fwd.h" 39*754f425fSjmmv 40*754f425fSjmmv 41*754f425fSjmmv extern const char* kyua_stacktrace_gdb; 42*754f425fSjmmv extern unsigned long kyua_stacktrace_gdb_timeout; 43*754f425fSjmmv 44*754f425fSjmmv char* kyua_stacktrace_find_core(const char* name, const char* directory, 45*754f425fSjmmv const pid_t dead_pid); 46*754f425fSjmmv void kyua_stacktrace_dump(const char*, const pid_t, const kyua_run_params_t*, 47*754f425fSjmmv FILE*); 48*754f425fSjmmv 49*754f425fSjmmv 50*754f425fSjmmv #endif // !defined(KYUA_STACKTRACE_H) 51