11-11-2010
Two ideas:
- you strip the core just to get the stack. Might perhaps be done with gdb
- you program your own stack dump, see
Glibc backtrace()
Cheers,
Loïc
10 More Discussions You Might Find Interesting
1. UNIX for Advanced & Expert Users
Does anyone know how to read core dumps. Is gdb the only tool for it ? The OS is Solaris.
Thanks (2 Replies)
Discussion started by: suntan
2 Replies
2. Solaris
I have the following set up on a Sun server running solaris 5.8 for core dump generation
coreadm
global core file pattern: /var/core
init core file pattern: /var/core
global core dumps: enabled
per-process core dumps: enabled
global setid core dumps:... (4 Replies)
Discussion started by: handak9
4 Replies
3. Programming
hi everyone,
Right now when I do:
strcmp(s1, s2);
i get a core dump because at times s1 or s2 can be nothing so that makes strcmp() core dump.
What is the solution, if at times I expect one of them (or both) to be NULL?
I want to be able to compare that s1 is NULL and s2 is "blah" or... (6 Replies)
Discussion started by: annie
6 Replies
4. SCO
Anyone know how you go about interrogating a panic / core dump with crash for SCO Unix (5 Replies)
Discussion started by: ccarcher
5 Replies
5. UNIX for Advanced & Expert Users
Hi,
Can we modify the GDB source code so as to analyze core dumps from different targets? From my analysis, I think we need to build our section table statically for each target. i.e., including the various address boundaries in build_section_table() function. If this is the case, then the GDB... (2 Replies)
Discussion started by: nsdeeps
2 Replies
6. Programming
My program is not dumping core when hitting a segmentation violation inside a thread.
However, it dumps core when the segv occurs within main.
Any ideas on how to diagnose this?
AIX 5.3 (4 Replies)
Discussion started by: bean66
4 Replies
7. Solaris
i had a situation where a process was defunct. preap would not reap the process and gcore would not work properly (not sure why). therefore, the suggestion was to force a panic and collect the core dump. obviously you could do a savecore -L and capture the dump without bringing down the system.... (3 Replies)
Discussion started by: pupp
3 Replies
8. Ubuntu
Hello,
I am debugging a program which works as daemon. It sigfaults, unfortunately I'm unable to generate core dump file. Here is what I am doing:
tsurko@bastila:~$ ulimit -c unlimited
tsurko@bastila:~$ ulimit -c
unlimited
tsurko@bastila:~$ cat /etc/sysctl.conf | grep 'core_pattern'... (1 Reply)
Discussion started by: tsurko
1 Replies
9. Red Hat
Hi
I have a Fedora installed and I try to generate my application's core dump file.
My system has no coredump limit:
$ ulimit
core file size (blocks, -c) unlimited
But when my application crashes no core dumps generated. I can generate dump file using gcore but it is not appropraite... (1 Reply)
Discussion started by: xyzt
1 Replies
10. HP-UX
kill -SEGV <pid> gives me the core file for that process but also terminates the process.
Can I not get the core dump without terminating the process ? (2 Replies)
Discussion started by: mohtashims
2 Replies
LEARN ABOUT OSX
backtrace
backtrace(3) BSD Library Functions Manual backtrace(3)
NAME
backtrace, backtrace_symbols, backtrace_symbols_fd -- call stack backtrace and display functions
SYNOPSIS
#include <execinfo.h>
int
backtrace(void** array, int size);
char**
backtrace_symbols(void* const* array, int size);
void
backtrace_symbols_fd(void* const* array, int size, int fd);
DESCRIPTION
These routines provide a mechanism to examine the current thread's call stack.
backtrace() writes the function return addresses of the current call stack to the array of pointers referenced by array. At most, size
pointers are written. The number of pointers actually written to array is returned.
backtrace_symbols() attempts to transform a call stack obtained by backtrace() into an array of human-readable strings using dladdr(). The
array of strings returned has size elements. It is allocated using malloc() and should be released using free(). There is no need to free
the individual strings in the array.
backtrace_symbols_fd() performs the same operation as backtrace_symbols(), but the resulting strings are immediately written to the file
descriptor fd, and are not returned.
EXAMPLE
#include <execinfo.h>
#include <stdio.h>
...
void* callstack[128];
int i, frames = backtrace(callstack, 128);
char** strs = backtrace_symbols(callstack, frames);
for (i = 0; i < frames; ++i) {
printf("%s
", strs[i]);
}
free(strs);
...
HISTORY
These functions first appeared in Mac OS X 10.5.
SEE ALSO
dladdr(3), malloc(3)
Mac OS X February 15, 2007 Mac OS X