答え1
この問題が発生したのは、VLC がビデオ デコードに VDAPU を使用しようとして、セグメンテーション エラーが発生したためです。おそらくこれは実際にはオープン ソースの Radeon ドライバーのバグですが、ハードウェア ビデオ デコードを無効にするだけで回避できました。設定はわかりにくいので、VLC を開いて [ツール] -> [設定] -> [入力/コーデック] に移動し、[ハードウェア アクセラレーションによるデコード] を [無効] に設定するだけです。
これで特定の問題が解決しない場合は、次の手順を実行することで、VDAPU に問題があることが分かりました。
ulimit -c unlimited
Ubuntuに実際にコアダンプを作成させるにはvlc
同じターミナルから- セグメント違反を待つ
gdb `which vlc`
core core
実際に呼び出されるコアファイルをロードしますcore
bt
これにより、次の出力が得られました。#0 0x00007fe128b4118e in llvm::SmallVectorTemplateBase<llvm::cl::parser<llvm::ScheduleDAGInstrs* (*)(llvm::MachineSchedContext*)>::OptionInfo, false>::grow(unsigned long) () from /usr/lib/x86_64-linux-gnu/libLLVM-4.0.so.1 #1 0x00007fe128b4125e in ?? () from /usr/lib/x86_64-linux-gnu/libLLVM-4.0.so.1 #2 0x00007fe1067fab0a in ?? () from /usr/lib/x86_64-linux-gnu/libLLVM-3.8.so.1 #3 0x00007fe16555b4ea in call_init (l=<optimized out>, argc=argc@entry=2, argv=argv@entry=0x7ffecd92f6b8, env=env@entry=0x7fe138050690) at dl-init.c:72 #4 0x00007fe16555b5fb in call_init (env=0x7fe138050690, argv=0x7ffecd92f6b8, argc=2, l=<optimized out>) at dl-init.c:30 #5 _dl_init (main_map=main_map@entry=0x7fe10c0172c0, argc=2, argv=0x7ffecd92f6b8, env=0x7fe138050690) at dl-init.c:120 #6 0x00007fe165560712 in dl_open_worker (a=a@entry=0x7fe121f082c0) at dl-open.c:575 #7 0x00007fe16555b394 in _dl_catch_error ( objname=objname@entry=0x7fe121f082b0, errstring=errstring@entry=0x7fe121f082b8, mallocedp=mallocedp@entry=0x7fe121f082af, operate=operate@entry=0x7fe165560300 <dl_open_worker>, args=args@entry=0x7fe121f082c0) at dl-error.c:187 #8 0x00007fe16555fbd9 in _dl_open ( file=0x7fe121f08540 "${ORIGIN}/vdpau/libvdpau_radeonsi.so.1", mode=-2147483390, caller_dlopen=0x7fe1095a46cc, nsid=-2, ---Type <return> to continue, or q <return> to quit---
8 番のエントリを見ると、問題は Radeon ドライバーにあることがわかりました。