я попробовал как тут описано
Пожалуйста зарегистрируйся для просмотра данной ссылки на страницу.
Пожалуйста зарегистрируйся для просмотра данной ссылки на страницу.
но у меня не получилось создать core файл при крахе vdr
(я runvdr не использовал)
делал так
goga:/usr/src/vdr1_70# ulimit -c unlimited
после чего запускал vdr , добивался его краха и нигде не смог найти следов core файла.
На счастье в чат пришел Bikalexander и предложил другой способ - более наглядный - в динамике можно просматривать все внутренние процессы vdr
Итак, в одной консоли запускаем vdr
а в другой под root запускаем отладчик
где xxx - это pid vdr-процесса, который можно подсмотреть командой ps ax
в моем случае это было как
ЦитатаПоказать весь код
goga:/home/goga# gdb sv 31820
GNU gdb 6.8-debian
Copyright (C) 2008 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <Пожалуйста зарегистрируйся для просмотра данной ссылки на страницу.>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law. Type "show copying"
and "show warranty" for details.
This GDB was configured as "i486-linux-gnu"...
sv: No such file or directory.
Attaching to process 31820
Reading symbols from /usr/src/vdr1_70/vdr...done.
Error while mapping shared library sections:
./PLUGINS/lib/libvdr-xineliboutput.so.1.7.0: No such file or directory.
Error while mapping shared library sections:
./PLUGINS/lib/libxineliboutput-sxfe.so.1.0.90-cvs: No such file or directory.
Reading symbols from /usr/lib/libjpeg.so.62...done.
Loaded symbols for /usr/lib/libjpeg.so.62
Reading symbols from /lib/i686/cmov/libpthread.so.0...done.
[Thread debugging using libthread_db enabled]
[New Thread 0xb7cf96c0 (LWP 31820)]
[New Thread 0xad0a5b90 (LWP 31843)]
[New Thread 0xadaa7b90 (LWP 31842)]
[New Thread 0xae2a8b90 (LWP 31841)]
[New Thread 0xaecebb90 (LWP 31839)]
в какой-то момент vdr приостановит свою работу, появится черный экран. Чтобы продолжить работу в консоли c gdb жмем "с" - enter и заставляем vdr рухнуть. Я уже описывал когда у меня vdr падает. Итак, vdr упал.
в консоли видим
[Thread 0xae2a8b90 (LWP 31992) exited]
[Thread 0xadaa7b90 (LWP 31991) exited]
[New Thread 0xadaa7b90 (LWP 31994)]
[New Thread 0xae2a8b90 (LWP 31995)]
Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0xb1b20b90 (LWP 31834)]
0xb66c0bbd in mmx2_memcpy (to=0xa7942800, from=0xac8a4c30, len=1920) at memcpy.c:344
344 __asm__ __volatile__ (
набираем там же команду bt
(gdb) bt
#0 0xb66c0bbd in mmx2_memcpy (to=0xa7942800, from=0xac8a4c30, len=1920) at memcpy.c:344
#1 0xaefce8ec in ff_convert_frame (this=0xaa2e8c38, img=0xa698cd8) at ff_video_decoder.c:828
#2 0xaefd174a in ff_decode_data (this_gen=0xaa2e8c38, buf=0xb65e0260) at ff_video_decoder.c:1358
#3 0xb669eb33 in video_decoder_loop (stream_gen=0xa7d5da8) at video_decoder.c:383
#4 0xb804c4fb in start_thread () from /lib/i686/cmov/libpthread.so.0
#5 0xb7e0560e in clone () from /lib/i686/cmov/libc.so.6
(gdb) c
Continuing.
Program terminated with signal SIGSEGV, Segmentation fault.
The program no longer exists.
(gdb)
The program is not being run.
Показать весь код
вот эту информацию и отпраляем разработчикам. Я ее послал ffmpeg/xine разработчикам.
а вот эта инфа была в vdr консоли
[h264 @ 0xaa2e9100]number of reference frames exceeds max (probably corrupt input), discarding one
[h264 @ 0xaa2e9100]number of reference frames exceeds max (probably corrupt input), discarding one
[h264 @ 0xaa2e9100]number of reference frames exceeds max (probably corrupt input), discarding one
[h264 @ 0xaa2e9100]number of reference frames exceeds max (probably corrupt input), discarding one
[h264 @ 0xaa2e9100]number of reference frames exceeds max (probably corrupt input), discarding one
[h264 @ 0xaa2e9100]number of reference frames exceeds max (probably corrupt input), discarding one
video_out: throwing away image with pts 11464730 because it's too old (diff : 45481930).
Ошибка сегментирования (core dumped)
Oct 30 19:14:03 localhost kernel: [ 227.017414] Local decoder/d[4063]: segfault at 0 ip aba78390 sp b1bc9404 error 4 in lib
avcodec.so.52.1.0[ab995000+47b000]
Oct 30 20:17:27 localhost kernel: [ 4031.108847] vdr[25701]: segfault at 0 ip b7904b68 sp b29d20d0 error 4 in libavformat.so
.52.23.1[b78e5000+be000]
Oct 30 20:17:31 localhost kernel: [ 4035.011668] [drm] Num pipes: 1
Oct 30 20:17:33 localhost kernel: [ 4037.497088] agpgart-intel 0000:00:00.0: AGP 3.0 bridge
Oct 30 20:17:33 localhost kernel: [ 4037.497127] agpgart-intel 0000:00:00.0: putting AGP V3 device into 8x mode
Oct 30 20:17:33 localhost kernel: [ 4037.497182] pci 0000:01:00.0: putting AGP V3 device into 8x mode
Oct 30 20:17:33 localhost kernel: [ 4037.497246] [drm] Loading R300 Microcode
Oct 30 20:17:33 localhost kernel: [ 4037.497284] [drm] Num pipes: 1
Oct 30 20:18:35 localhost kernel: [ 4099.042680] Local decoder/d[25742]: segfault at 0 ip ab64768c sp b1c5db5c error 4 in li
bavcodec.so.52.1.0[ab605000+427000]
Oct 30 20:26:51 arvdr kernel: eth2: link down
Oct 30 20:27:33 arvdr kernel: eth2: link up, 100Mbps, full-duplex, lpa 0x41E1
Oct 30 21:08:51 localhost kernel: [ 7114.901822] Local decoder/d[27298]: segfault at 0 ip ab590071 sp b1ab3b68 error 4 in li
bavcodec.so.52.1.0[ab54d000+427000]
Oct 30 21:10:16 localhost kernel: [ 7200.512999] Local decoder/d[27345]: segfault at 720 ip ab475071 sp b1cbfc48 error 4 in
libavcodec.so.52.1.0[ab432000+427000]
Oct 30 21:18:03 localhost kernel: [ 7667.288058] Local decoder/d[27485]: segfault at 0 ip ab62e071 sp b1d1fb68 error 4 in li
bavcodec.so.52.1.0[ab5eb000+427000]
Oct 30 21:20:36 localhost kernel: [ 7820.259344] Local decoder/d[27714]: segfault at 25685c47 ip aef3437a sp b1a77250 error
6 in xineplug_decode_ff.so[aef2f000+9000]
Oct 30 21:22:46 localhost kernel: [ 7950.061045] [drm] Num pipes: 1
Oct 30 21:22:50 localhost kernel: [ 7954.047814] agpgart-intel 0000:00:00.0: AGP 3.0 bridge
Oct 30 21:22:50 localhost kernel: [ 7954.047851] agpgart-intel 0000:00:00.0: putting AGP V3 device into 8x mode
Oct 30 21:22:50 localhost kernel: [ 7954.047905] pci 0000:01:00.0: putting AGP V3 device into 8x mode
Oct 30 21:22:50 localhost kernel: [ 7954.047968] [drm] Loading R300 Microcode
Oct 30 21:22:50 localhost kernel: [ 7954.048005] [drm] Num pipes: 1
Oct 30 21:33:22 localhost kernel: [ 8586.296505] vdr[28693]: segfault at 0 ip b7a4db68 sp b37180d0 error 4 in libavformat.so
.52.23.1[b7a2e000+be000]
Oct 30 21:34:35 localhost kernel: [ 8658.837556] Local decoder/d[28722]: segfault at 10021 ip aec5b37a sp b175d250 error 6 i
n xineplug_decode_ff.so[aec56000+9000]
Oct 30 21:54:34 localhost kernel: [ 9857.906281] Local decoder/d[30236]: segfault at ac7dc000 ip b4ce3bd1 sp b1b40dfc error
4 in libxine.so.2.0.0[b4ca6000+4f000]
Oct 30 21:58:48 localhost kernel: [10111.811951] Local decoder/d[30565]: segfault at ac8aa000 ip b4be3bbd sp b1a83dfc error
4 in libxine.so.2.0.0[b4ba6000+4f000]
Oct 30 22:05:24 localhost kernel: [10508.176887] Local decoder/d[30766]: segfault at aeffc000 ip b674cbc1 sp b1b9adfc error
4 in libxine.so.2.0.0[b670f000+4f000]
Oct 30 22:08:43 localhost kernel: [10707.389865] Local decoder/d[30989]: segfault at 0 ip ab5de071 sp b1b96b68 error 4 in li
bavcodec.so.52.1.0[ab59b000+427000]
Показать весь код
По совету товарища merbz из ffmpeg команды сам ffmpeg я компилил так
./configure --enable-shared --disable-optimizations --enable-debug=3 --disable-mmx --disable-stripping
другой вариант
./configure --enable-shared --enable-debug=3 --disable-stripping
также необходимо и xine-lib сконфигурировать c debug опцией
./autogen.sh --with-external-ffmpeg --disable-dxr3 --enable-debug
Показать весь код
Пожалуйста зарегистрируйся для просмотра данной ссылки на страницу.
Пожалуйста зарегистрируйся для просмотра данной ссылки на страницу.
тут логов побольше
если вместо bt ввести
Цитата
bt
disass $pc-32 $pc+32
info all-registers
как это советует дока на Пожалуйста зарегистрируйся для просмотра данной ссылки на страницу.
то логов будет еще больше - как тут Пожалуйста зарегистрируйся для просмотра данной ссылки на страницу.