003 File Manager
Current Path:
/usr/src/contrib/ntp/lib/isc/include/isc
usr
/
src
/
contrib
/
ntp
/
lib
/
isc
/
include
/
isc
/
📁
..
📄
app.h
(10.29 KB)
📄
assertions.h
(3.24 KB)
📄
backtrace.h
(4.21 KB)
📄
base32.h
(3.81 KB)
📄
base64.h
(2.9 KB)
📄
bind9.h
(1.16 KB)
📄
bitstring.h
(4.37 KB)
📄
boolean.h
(1.18 KB)
📄
buffer.h
(22.4 KB)
📄
bufferlist.h
(1.93 KB)
📄
commandline.h
(1.78 KB)
📄
entropy.h
(9.22 KB)
📄
error.h
(1.83 KB)
📄
event.h
(3.28 KB)
📄
eventclass.h
(1.87 KB)
📄
file.h
(9 KB)
📄
formatcheck.h
(1.39 KB)
📄
fsaccess.h
(7.77 KB)
📄
hash.h
(5.83 KB)
📄
heap.h
(5.62 KB)
📄
hex.h
(2.84 KB)
📄
hmacmd5.h
(1.92 KB)
📄
hmacsha.h
(4.41 KB)
📄
httpd.h
(1.98 KB)
📄
interfaceiter.h
(3.81 KB)
📄
ipv6.h
(3.6 KB)
📄
iterated_hash.h
(1.48 KB)
📄
lang.h
(1.13 KB)
📄
lex.h
(9.43 KB)
📄
lfsr.h
(3.4 KB)
📄
lib.h
(1.56 KB)
📄
list.h
(6.06 KB)
📄
log.h
(28.29 KB)
📄
magic.h
(1.44 KB)
📄
md5.h
(2.47 KB)
📄
mem.h
(21.21 KB)
📄
msgcat.h
(3.18 KB)
📄
msgs.h
(8.73 KB)
📄
mutexblock.h
(1.86 KB)
📄
namespace.h
(7.12 KB)
📄
netaddr.h
(4.8 KB)
📄
netscope.h
(1.44 KB)
📄
ondestroy.h
(3.25 KB)
📄
os.h
(1.16 KB)
📄
parseint.h
(2.01 KB)
📄
platform.h
(1.26 KB)
📄
platform.h.in
(8.02 KB)
📄
portset.h
(3.67 KB)
📄
print.h
(2.39 KB)
📄
queue.h
(2.95 KB)
📄
quota.h
(2.63 KB)
📄
radix.h
(6.89 KB)
📄
random.h
(1.78 KB)
📄
ratelimiter.h
(3.48 KB)
📄
refcount.h
(6.06 KB)
📄
region.h
(2.44 KB)
📄
resource.h
(3.32 KB)
📄
result.h
(4.67 KB)
📄
resultclass.h
(2.03 KB)
📄
rwlock.h
(3.75 KB)
📄
serial.h
(1.91 KB)
📄
sha1.h
(1.76 KB)
📄
sha2.h
(5.7 KB)
📄
sockaddr.h
(6.42 KB)
📄
socket.h
(32.28 KB)
📄
stats.h
(3.03 KB)
📄
stdio.h
(2.14 KB)
📄
stdlib.h
(1.19 KB)
📄
string.h
(6.79 KB)
📄
symtab.h
(4.59 KB)
📄
task.h
(20.45 KB)
📄
taskpool.h
(4.09 KB)
📄
timer.h
(11.02 KB)
📄
types.h
(5.69 KB)
📄
util.h
(7.67 KB)
📄
version.h
(1.18 KB)
📄
xml.h
(1.52 KB)
Editing: backtrace.h
/* * Copyright (C) 2009 Internet Systems Consortium, Inc. ("ISC") * * Permission to use, copy, modify, and/or distribute this software for any * purpose with or without fee is hereby granted, provided that the above * copyright notice and this permission notice appear in all copies. * * THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH * REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY * AND FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM * LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE * OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR * PERFORMANCE OF THIS SOFTWARE. */ /* $Id: backtrace.h,v 1.2 2009/09/01 18:40:25 jinmei Exp $ */ /*! \file isc/backtrace.h * \brief provide a back trace of the running process to help debug problems. * * This module tries to get a back trace of the process using some platform * dependent way when available. It also manages an internal symbol table * that maps function addresses used in the process to their textual symbols. * This module is expected to be used to help debug when some fatal error * happens. * * IMPORTANT NOTE: since the (major) intended use case of this module is * dumping a back trace on a fatal error, normally followed by self termination, * functions defined in this module generally doesn't employ assertion checks * (if it did, a program bug could cause infinite recursive calls to a * backtrace function). These functions still perform minimal checks and return * ISC_R_FAILURE if they detect an error, but the caller should therefore be * very careful about the use of these functions, and generally discouraged to * use them except in an exit path. The exception is * isc_backtrace_getsymbolfromindex(), which is expected to be used in a * non-error-handling context and validates arguments with assertion checks. */ #ifndef ISC_BACKTRACE_H #define ISC_BACKTRACE_H 1 /*** *** Imports ***/ #include <isc/types.h> /*** *** Types ***/ struct isc_backtrace_symmap { void *addr; const char *symbol; }; extern const int isc__backtrace_nsymbols; extern const isc_backtrace_symmap_t isc__backtrace_symtable[]; /*** *** Functions ***/ ISC_LANG_BEGINDECLS isc_result_t isc_backtrace_gettrace(void **addrs, int maxaddrs, int *nframes); /*%< * Get a back trace of the running process above this function itself. On * success, addrs[i] will store the address of the call point of the i-th * stack frame (addrs[0] is the caller of this function). *nframes will store * the total number of frames. * * Requires (note that these are not ensured by assertion checks, see above): * *\li 'addrs' is a valid array containing at least 'maxaddrs' void * entries. * *\li 'nframes' must be non NULL. * * Returns: * *\li #ISC_R_SUCCESS *\li #ISC_R_FAILURE *\li #ISC_R_NOTFOUND *\li #ISC_R_NOTIMPLEMENTED */ isc_result_t isc_backtrace_getsymbolfromindex(int idx, const void **addrp, const char **symbolp); /*%< * Returns the content of the internal symbol table of the given index. * On success, *addrsp and *symbolp point to the address and the symbol of * the 'index'th entry of the table, respectively. If 'idx' is not in the * range of the symbol table, ISC_R_RANGE will be returned. * * Requires * *\li 'addrp' must be non NULL && '*addrp' == NULL. * *\li 'symbolp' must be non NULL && '*symbolp' == NULL. * * Returns: * *\li #ISC_R_SUCCESS *\li #ISC_R_RANGE */ isc_result_t isc_backtrace_getsymbol(const void *addr, const char **symbolp, unsigned long *offsetp); /*%< * Searches the internal symbol table for the symbol that most matches the * given 'addr'. On success, '*symbolp' will point to the name of function * to which the address 'addr' belong, and '*offsetp' will store the offset * from the function's entry address to 'addr'. * * Requires (note that these are not ensured by assertion checks, see above): * *\li 'symbolp' must be non NULL && '*symbolp' == NULL. * *\li 'offsetp' must be non NULL. * * Returns: * *\li #ISC_R_SUCCESS *\li #ISC_R_FAILURE *\li #ISC_R_NOTFOUND */ ISC_LANG_ENDDECLS #endif /* ISC_BACKTRACE_H */
Upload File
Create Folder