I am running an embedded application on ARM9 board, where total flash size is 180MB only. I am able to run gdb
, but when I do
(gdb) generate-core-dump
I get an error
warning: Memory read failed for corefile section, 1048576 bytes at 0x4156c000.
warning: Memory read failed for corefile section, 1048576 bytes at 0x50c00000.
Saved corefile core.5546
The program is running. Quit anyway (and detach it)? (y or n) [answered Y; input not from terminal]
Tamper Detected
**********OUTSIDE ifelse 0*********
length validation is failed
I also set ulimit -c 50000
but still the core dump exceeds this limit. When I do ls -l
to check file size it is over 300 MB. In this case how should I limit the size of core dump?
Using ulimit to set core file sizes ulimit is a program, included in most Linux distributions, that allows you to specify many file size limits for the shell and all of its subprocesses. The above commands set the core file size to 100 Mb or "unlimited", respectively.
Truncated Core Files gdb likely performs a calculation similar to the above to calculate the expected core file size. In short, if gdb says your core file is truncated, it is very likely truncated. One of the most likely causes for truncated core dump files is the system ulimit.
The command "ulimit" can be used to change values. The option "-f" indicates the maximum file size in blocks of 512 bytes. The option "-c" defines the maximum size of Core files in blocks of 512 bytes or unlimited.
The maximum size of the resulting core filename is 128 bytes (64 bytes in kernels before 2.6. 19). The default value in this file is "core".
GDB does not respect 'ulimit -c', only the kernel does.
It's not clear whether you run GDB on target board, or on a development host (and using gdbserver on target). You probably should use the latter, which will allow you to collect full core dump.
Truncated core dumps are a pain anyway, as often they will not contain exactly the info you need to debug the problem.
in your shell rc-file:
limit coredumpsize 50000 # or whatever limit size you like
that should set the limit for everything, including GDB
Note:
If you set it to 0 , you can make sure your home directory is not cluttered with core dump files.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With