[devel] How to generate core and backtrace files

Sergey Vlasov =?iso-8859-1?q?vsu_=CE=C1_altlinux=2Eru?=
Чт Июн 14 22:35:29 MSD 2007


On Thu, Jun 14, 2007 at 08:01:31PM +0400, Eugene Prokopiev wrote:
> # ulimit -c 10000000000
> # cp -a 
> /data/build/hasher-callweaver/chroot/usr/src/RPM/BUILD/callweaver-1.1.99.20070614/ 
> .
> # cd callweaver-1.1.99.20070614
> # LD_LIBRARY_PATH=/usr/lib/debug:$PWD gdb .libs/callweaver
> GNU gdb 6.6-alt1 (ALT Linux)
> Copyright (C) 2006 Free Software Foundation, Inc.
> GDB is free software, covered by the GNU General Public License, and you are
> welcome to change it and/or distribute copies of it under certain 
> conditions.
> Type "show copying" to see the conditions.
> There is absolutely no warranty for GDB.  Type "show warranty" for details.
> This GDB was configured as "x86_64-alt-linux"...
> Using host libthread_db library "/lib64/libthread_db.so.1".
> (gdb) run -vvvvvcd
> ...
> Program received signal SIGSEGV, Segmentation fault.
> [Switching to Thread 1092139328 (LWP 24377)]
> 0x00002afca9067cc4 in strncpy () from /lib64/libc.so.6
> (gdb) quit
> The program is running.  Exit anyway? (y or n) y
> 
> И где теперь сам дамп? В текущем каталоге ничего подозрительного нет.

gdb перехватывает SIGSEGV до создания дампа (но в таком варианте дамп
и не нужен - после SIGSEGV можно изучать через gdb состояние ещё
живого процесса, а не восстановленное из дампа, которое может быть уже
неполным).  Вот если запускать программу напрямую (без gdb), должен
создастся дамп (но опять-таки при условии, что программа не пытается
обработать SIGSEGV самостоятельно).

Ещё одни возможные грабли: обычно дамп пишется в текущий каталог
процесса - если выполнялись вызовы chdir(), дамп может оказаться не
там, где ожидалось (либо вообще не создастся, если запись в каталог
оказалась запрещена).  Подобная ситуация может возникать при отладке
демонов; в таких случаях можно писать в kernel.core_pattern абсолютный
путь (и добавить, например, ".%p", чтобы имя файла зависело от pid).
----------- следующая часть -----------
Было удалено вложение не в текстовом формате...
Имя     : =?iso-8859-1?q?=CF=D4=D3=D5=D4=D3=D4=D7=D5=C5=D4?=
Тип     : application/pgp-signature
Размер  : 189 байтов
Описание: Digital signature
Url     : <http://lists.altlinux.org/pipermail/devel/attachments/20070614/0b23440f/attachment-0001.bin>


Подробная информация о списке рассылки Devel