答案1
我遇到這個問題是因為 VLC 嘗試使用 VDAPU 進行視訊解碼,並且導致分段錯誤。據推測,這實際上是開源 Radeon 驅動程式中的一個錯誤,但我可以透過簡單地停用硬體視訊解碼來解決此問題。該設定有點隱藏,只需打開 VLC,然後轉到“工具”->“首選項”->“輸入/編解碼器”並將硬體加速解碼設定為“禁用”。
如果這不能解決您的特定問題,我可以透過執行以下步驟來確定這是 VDAPU 的問題:
ulimit -c unlimited
讓 Ubuntu 真正創建一個核心轉儲vlc
從同一航廈- 等待段錯誤
gdb `which vlc`
core 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 驅動程式中。