我正在ARM9開發板上運行嵌入式應用程序,其中總閃存大小僅爲180MB。我能夠運行gdb
,但是當我做如何在使用GDB生成核心轉儲文件時限制核心轉儲文件的大小
(gdb) generate-core-dump
我得到一個錯誤
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
我還設置ulimit -c 50000
,但仍是核心轉儲超過此限制。當我做ls -l
檢查文件大小時,它超過300 MB。在這種情況下,我應該如何限制核心轉儲的大小?
我在目標板上運行gdb。我也可以使用gdbserver,但由於崩潰不容易重現,因此我將使用第一個選項。 –
對不起,但我看不到如何運行gdb或gdbserver作爲任何事情與崩潰很容易重現或不? – shodanex
@shodanex - 使用客戶端 - 服務器模型,核心可以在「主機」文件系統上收集,而不是在嵌入式系統上收集,這裏只有180MB的可用空間供核心文件使用。推測主機系統有一個完整的硬盤,並且能夠保存一個更大的核心文件。 – Peter