We have an embedded version of the Linux kernel that runs on the core of MIPs. The program we wrote runs a specific set of tests. During one of the stress tests (it works for about 12 hours), we get segregation. This, in turn, generates a core dump.
Unfortunately, a core dump is not very useful. The accident occurs in some system library that is dynamically linked (probably pthread or glibc). Backtrace does not help in a kernel dump, because it shows only the point of the failed situation and other callers (our user space application is built with -g -O0, but still does not have feedback):
Cannot access memory at address 0x2aab1004 (gdb) bt
Another failure is that we cannot start gdb / gdbserver. gdb / gdbserver continues to break __nptl_create_event. Seeing that the test creates threads, timers and destroys, then every 5 seconds it is almost impossible to sit, continuing to continue on them.
EDIT: Another note: backtrace and backtrace_symbols are not supported by our toolchain.
Consequently:
Is there a way to catch the seg error and generate more backtrace data, stack pointers, call stack, etc.?
Is there a way to get more data from a core dump crashed in a .so file?
Thanks.
user626201
source share