Skip to content

Instantly share code, notes, and snippets.

@jdonald
Created August 25, 2019 16:51
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save jdonald/9136076abe39f494c5fe1b6820152c0a to your computer and use it in GitHub Desktop.
Save jdonald/9136076abe39f494c5fe1b6820152c0a to your computer and use it in GitHub Desktop.
Dolphin EXT_buffer_storage crash details
pi64)pi@raspberrypi:~/dolphin/build $ gdb -core core Binaries/dolphin-emu
GNU gdb (Debian 8.2.1-2) 8.2.1
...
Core was generated by `Binaries/dolphin-emu'.
Program terminated with signal SIGSEGV, Segmentation fault.
#0 __memcpy_generic () at ../sysdeps/aarch64/multiarch/../memcpy.S:105
105 ../sysdeps/aarch64/multiarch/../memcpy.S: No such file or directory.
[Current thread is 1 (Thread 0x7f88c0e4f0 (LWP 14152))]
(gdb) info threads
Id Target Id Frame
* 1 Thread 0x7f88c0e4f0 (LWP 14152) __memcpy_generic () at ../sysdeps/aarch64/multiarch/../memcpy.S:105
2 Thread 0x7f8b7f44f0 (LWP 14143) 0x0000007fa29cc61c in __GI___nanosleep (requested_time=requested_time@entry=0x7f8b7f3af8, remaining=remaining@entry=0x0) at ../sysdeps/unix/sysv/linux/nanosleep.c:28
3 Thread 0x7f70ff14f0 (LWP 14153) futex_abstimed_wait_cancelable (private=0, abstime=0x7f70ff0ca0, expected=0, futex_word=0x7f6c00b1e0) at ../sysdeps/unix/sysv/linux/futex-internal.h:205
4 Thread 0x7f9c7c74f0 (LWP 14129) 0x0000007fa29f02f0 in __GI___poll (fds=0x7f94000b20, nfds=2, timeout=<optimized out>) at ../sysdeps/unix/sysv/linux/poll.c:41
5 Thread 0x7f4fff44f0 (LWP 14156) __GI___libc_malloc (bytes=96) at malloc.c:3068
6 Thread 0x7f4f7f34f0 (LWP 14157) ioctl () at ../sysdeps/unix/sysv/linux/aarch64/ioctl.S:26
7 Thread 0x7f988174f0 (LWP 14141) 0x0000007fa29f2dbc in __GI___select (nfds=<optimized out>, readfds=readfds@entry=0x7f98816c40, writefds=writefds@entry=0x0, exceptfds=exceptfds@entry=0x0,
timeout=timeout@entry=0x0) at ../sysdeps/unix/sysv/linux/select.c:53
8 Thread 0x7f8aff34f0 (LWP 14144) 0x0000007fa29f02f0 in __GI___poll (fds=0x7f80002930, nfds=1, timeout=<optimized out>) at ../sysdeps/unix/sysv/linux/poll.c:41
9 Thread 0x7f8bff54f0 (LWP 14142) futex_abstimed_wait_cancelable (private=0, abstime=0x7f8bff4ca0, expected=0, futex_word=0x556c73da18 <WiimoteReal::g_wiimote_scanner+136>)
at ../sysdeps/unix/sysv/linux/futex-internal.h:205
10 Thread 0x7f99c174f0 (LWP 14140) futex_wait_cancelable (private=0, expected=0, futex_word=0x556c6f3580 <DolphinAnalytics::Instance()::instance+440>) at ../sysdeps/unix/sysv/linux/futex-internal.h:88
11 Thread 0x7f89de54f0 (LWP 14146) futex_abstimed_wait_cancelable (private=0, abstime=0x7f89de4c58, expected=0, futex_word=0x55a75a0a18) at ../sysdeps/unix/sysv/linux/futex-internal.h:205
12 Thread 0x7f8a7394f0 (LWP 14145) futex_wait_cancelable (private=0, expected=0, futex_word=0x55a6edd56c) at ../sysdeps/unix/sysv/linux/futex-internal.h:88
13 Thread 0x7f895e44f0 (LWP 14148) 0x0000007fa29f02f0 in __GI___poll (fds=0x7f78002cb0, nfds=2, timeout=<optimized out>) at ../sysdeps/unix/sysv/linux/poll.c:41
14 Thread 0x7f9cfd8010 (LWP 14127) 0x0000007fa29f02f0 in __GI___poll (fds=0x55a75b8980, nfds=4, timeout=<optimized out>) at ../sysdeps/unix/sysv/linux/poll.c:41
15 Thread 0x7f737f44f0 (LWP 14151) 0x0000007fa29f02f0 in __GI___poll (fds=0x55a77e7860, nfds=1, timeout=<optimized out>) at ../sysdeps/unix/sysv/linux/poll.c:41
16 Thread 0x7f73ff54f0 (LWP 14150) syscall () at ../sysdeps/unix/sysv/linux/aarch64/syscall.S:38
17 Thread 0x7f69ff34f0 (LWP 14154) futex_abstimed_wait_cancelable (private=0, abstime=0x7f69ff2ca0, expected=0, futex_word=0x7f6c000c00) at ../sysdeps/unix/sysv/linux/futex-internal.h:205
18 Thread 0x7f5aff54f0 (LWP 14158) futex_wait_cancelable (private=0, expected=0, futex_word=0x556c73aecc <DVDThread::s_request_queue_expanded+52>) at ../sysdeps/unix/sysv/linux/futex-internal.h:88
19 Thread 0x7f4eff24f0 (LWP 14159) futex_wait_cancelable (private=0, expected=0, futex_word=0x556c8fd748 <Fifo::s_gpu_mainloop+256>) at ../sysdeps/unix/sysv/linux/futex-internal.h:88
20 Thread 0x7f9b9454f0 (LWP 14130) 0x0000007fa29f02f0 in __GI___poll (fds=0x7f9b944b68, nfds=1, timeout=<optimized out>) at ../sysdeps/unix/sysv/linux/poll.c:41
21 Thread 0x7f9a52b4f0 (LWP 14139) futex_abstimed_wait_cancelable (private=0, abstime=0x7f9a52acb0, expected=0, futex_word=0x55a6eeede0) at ../sysdeps/unix/sysv/linux/futex-internal.h:205
22 Thread 0x7f9cfc84f0 (LWP 14128) 0x0000007fa29f02f0 in __GI___poll (fds=0x7f9cfc7cc8, nfds=2, timeout=<optimized out>) at ../sysdeps/unix/sysv/linux/poll.c:41
(gdb) backtrace
#0 0x0000007fa29ad308 in __memcpy_generic () at ../sysdeps/aarch64/multiarch/../memcpy.S:105
#1 0x000000556bee150c in OGL::ProgramShaderCache::UploadConstants(void const*, unsigned int) (data=0x7f88c0d750, data_size=48) at /home/pi/dolphin/Source/Core/VideoBackends/OGL/ProgramShaderCache.cpp:255
#2 0x000000556bea99ac in TextureCacheBase::CopyEFBToCacheEntry(TextureCacheBase::TCacheEntry*, bool, MathUtil::Rectangle<int> const&, bool, bool, EFBCopyFormat, bool, float, bool, bool, EFBCopyFilterCoefficients const&)
(this=<optimized out>, entry=0x55a77efaa0, is_depth_copy=<optimized out>, src_rect=..., scale_by_half=<optimized out>, linear_filter=false, dst_format=<optimized out>, is_intensity=<optimized out>, gamma=<optimized out>, clamp_top=true, clamp_bottom=true, filter_coefficients=...) at /usr/include/c++/8/bits/unique_ptr.h:342
#3 0x000000556beaea00 in TextureCacheBase::CopyRenderTargetToTexture(unsigned int, EFBCopyFormat, unsigned int, unsigned int, unsigned int, bool, MathUtil::Rectangle<int> const&, bool, bool, float, float, bool, bool, std::array<unsigned char, 7ul> const&) (this=0x7f6c2b5660, dstAddr=<optimized out>,
dstAddr@entry=5744736, dstFormat=dstFormat@entry=EFBCopyFormat::XFB, width=<optimized out>, height=height@entry=480, dstStride=dstStride@entry=1280, is_depth_copy=false, srcRect=..., isIntensity=isIntensity@entry=false, scaleByHalf=scaleByHalf@entry=false, y_scale=1, gamma=1, clamp_top=true, clamp_bottom=true, filter_coefficients=...) at /home/pi/dolphin/Source/Core/VideoCommon/TextureCacheBase.cpp:2160
#4 0x000000556be7b3d0 in BPWritten (bp=<synthetic pointer>...) at /home/pi/dolphin/Source/Core/Common/BitField.h:168
#5 0x000000556be7b3d0 in LoadBPReg(unsigned int) (value0=<optimized out>) at /home/pi/dolphin/Source/Core/VideoCommon/BPStructs.cpp:732
#6 0x000000556be8f2ac in OpcodeDecoder::Run<false>(DataReader, unsigned int*, bool) (src=..., cycles=cycles@entry=0x7f88c0daa0, in_display_list=in_display_list@entry=false)
at /home/pi/dolphin/Source/Core/Common/Swap.h:150
#7 0x000000556be7fbf0 in Fifo::<lambda()>::operator() (__closure=<optimized out>) at /home/pi/dolphin/Source/Core/VideoCommon/DataReader.h:17
#8 0x000000556be7fbf0 in Common::BlockingLoop::Run<Fifo::RunGpuLoop()::<lambda()> > (this=0x556c8fd648 <Fifo::s_gpu_mainloop>, timeout=100, payload=...) at /home/pi/dolphin/Source/Core/Common/BlockingLoop.h:135
#9 0x000000556be7fbf0 in Fifo::RunGpuLoop() () at /home/pi/dolphin/Source/Core/VideoCommon/Fifo.cpp:298
#10 0x000000556bcb3340 in Core::EmuThread(std::unique_ptr<BootParameters, std::default_delete<BootParameters> >, WindowSystemInfo)Python Exception <class 'gdb.MemoryError'> Cannot access memory at address 0x0:
(boot=..., wsi=#11 0x000000556bcb3e7c in std::__invoke_impl<void, void (*)(std::unique_ptr<BootParameters, std::default_delete<BootParameters> >, WindowSystemInfo), std::unique_ptr<BootParameters, std::default_delete<BootParameters> >, WindowSystemInfo>(std::__invoke_other, void (*&&)(std::unique_ptr<BootParameters, std::default_delete<BootParameters> >, WindowSystemInfo), std::unique_ptr<BootParameters, std::default_delete<BootParameters> >&&, WindowSystemInfo&&) (__f=<optimized out>) at /usr/include/c++/8/bits/move.h:74
#12 0x000000556bcb3e7c in std::__invoke<void (*)(std::unique_ptr<BootParameters, std::default_delete<BootParameters> >, WindowSystemInfo), std::unique_ptr<BootParameters, std::default_delete<BootParameters> >, WindowSystemInfo>(void (*&&)(std::unique_ptr<BootParameters, std::default_delete<BootParameters> >, WindowSystemInfo), std::unique_ptr<BootParameters, std::default_delete<BootParameters> >&&, WindowSystemInfo&&)
(__fn=<optimized out>) at /usr/include/c++/8/bits/invoke.h:95
#13 0x000000556bcb3e7c in std::thread::_Invoker<std::tuple<void (*)(std::unique_ptr<BootParameters, std::default_delete<BootParameters> >, WindowSystemInfo), std::unique_ptr<BootParameters, std::default_delete<BootParameters> >, WindowSystemInfo> >::_M_invoke<0ul, 1ul, 2ul>(std::_Index_tuple<0ul, 1ul, 2ul>) (this=<optimized out>) at /usr/include/c++/8/thread:244
#14 0x000000556bcb3e7c in std::thread::_Invoker<std::tuple<void (*)(std::unique_ptr<BootParameters, std::default_delete<BootParameters> >, WindowSystemInfo), std::unique_ptr<BootParameters, std::default_delete<BootParameters> >, WindowSystemInfo> >::operator()() (this=<optimized out>) at /usr/include/c++/8/thread:253
#15 0x000000556bcb3e7c in std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (*)(std::unique_ptr<BootParameters, std::default_delete<BootParameters> >, WindowSystemInfo), std::unique_ptr<BootParameters, std::default_delete<BootParameters> >, WindowSystemInfo> > >::_M_run() (this=<optimized out>) at /usr/include/c++/8/thread:196
#16 0x0000007fa2c131f4 in () at /lib/aarch64-linux-gnu/libstdc++.so.6
#17 0x0000007fa2ceb7e4 in start_thread (arg=0x7ffb4d181f) at pthread_create.c:486
#18 0x0000007fa29f9adc in thread_start () at ../sysdeps/unix/sysv/linux/aarch64/clone.S:78
(gdb) up
#1 0x000000556bee150c in OGL::ProgramShaderCache::UploadConstants (data=0x7f88c0d750, data_size=48) at /home/pi/dolphin/Source/Core/VideoBackends/OGL/ProgramShaderCache.cpp:255
255 std::memcpy(buffer.first, data, data_size);
(gdb) up
#2 0x000000556bea99ac in TextureCacheBase::CopyEFBToCacheEntry (this=<optimized out>, entry=0x55a77efaa0, is_depth_copy=<optimized out>, src_rect=..., scale_by_half=<optimized out>, linear_filter=false,
dst_format=<optimized out>, is_intensity=<optimized out>, gamma=<optimized out>, clamp_top=true, clamp_bottom=true, filter_coefficients=...) at /usr/include/c++/8/bits/unique_ptr.h:342
342 get() const noexcept
(gdb) up
#3 0x000000556beaea00 in TextureCacheBase::CopyRenderTargetToTexture (this=0x7f6c2b5660, dstAddr=<optimized out>, dstAddr@entry=5744736, dstFormat=dstFormat@entry=EFBCopyFormat::XFB, width=<optimized out>,
height=height@entry=480, dstStride=dstStride@entry=1280, is_depth_copy=false, srcRect=..., isIntensity=isIntensity@entry=false, scaleByHalf=scaleByHalf@entry=false, y_scale=1, gamma=1, clamp_top=true,
clamp_bottom=true, filter_coefficients=...) at /home/pi/dolphin/Source/Core/VideoCommon/TextureCacheBase.cpp:2160
2160 CopyEFBToCacheEntry(entry, is_depth_copy, srcRect, scaleByHalf, linear_filter, dstFormat,
(gdb) l
2155 entry->SetEfbCopy(dstStride);
2156 }
2157 entry->may_have_overlapping_textures = false;
2158 entry->is_custom_tex = false;
2159
2160 CopyEFBToCacheEntry(entry, is_depth_copy, srcRect, scaleByHalf, linear_filter, dstFormat,
2161 isIntensity, gamma, clamp_top, clamp_bottom,
2162 GetVRAMCopyFilterCoefficients(filter_coefficients));
2163
2164 if (g_ActiveConfig.bDumpEFBTarget && !is_xfb_copy)
(gdb) info locals
config = {width = 640, height = 480, levels = 1, layers = 1, samples = 1, format = AbstractTextureFormat::RGBA8, flags = 1}
is_xfb_copy = <optimized out>
copy_to_vram = <optimized out>
copy_to_ram = false
dst = 0x7b5457a860 ""
tex_w = 640
tex_h = <optimized out>
scaled_tex_w = 640
scaled_tex_h = <optimized out>
baseFormat = TextureFormat::XFB
blockH = 1
blockW = <optimized out>
actualHeight = 480
actualWidth = <optimized out>
num_blocks_y = 480
num_blocks_x = <optimized out>
bytes_per_block = <optimized out>
bytes_per_row = 1280
covered_range = 614400
linear_filter = false
entry = 0x55a77efaa0
strided_efb_copy = <optimized out>
iter = <optimized out>
(gdb) up
#4 0x000000556be7b3d0 in BPWritten (bp=<synthetic pointer>...) at /home/pi/dolphin/Source/Core/Common/BitField.h:168
168 constexpr T Value(std::false_type) const
(gdb) up
#5 LoadBPReg (value0=<optimized out>) at /home/pi/dolphin/Source/Core/VideoCommon/BPStructs.cpp:732
732 BPWritten(bp);
(gdb) up
#6 0x000000556be8f2ac in OpcodeDecoder::Run<false> (src=..., cycles=cycles@entry=0x7f88c0daa0, in_display_list=in_display_list@entry=false) at /home/pi/dolphin/Source/Core/Common/Swap.h:150
150 std::memcpy(data, &value, sizeof(u32));
(gdb) up
#7 0x000000556be7fbf0 in Fifo::<lambda()>::operator() (__closure=<optimized out>) at /home/pi/dolphin/Source/Core/VideoCommon/DataReader.h:17
17 DataReader(u8* src, u8* end_) : buffer(src), end(end_) {}
(gdb) l
12
13 class DataReader
14 {
15 public:
16 DataReader() = default;
17 DataReader(u8* src, u8* end_) : buffer(src), end(end_) {}
18 u8* GetPointer() { return buffer; }
19 const u8* GetPointer() const { return buffer; }
20 DataReader& operator=(u8* src)
21 {
(gdb) info locals
cyclesExecuted = 0
readPtr = 5221984
write_ptr = 0x7f6847b620 ""
fifo = <optimized out>
param = @0x55a6e9ff50: {m_WiiSDCard = false, m_WiiKeyboard = false, m_WiimoteContinuousScanning = false, m_WiimoteEnableSpeaker = false, m_ISOFolder = std::vector of length 0, capacity 0,
m_RecursiveISOFolder = false, bEnableDebugging = false, bAutomaticStart = false, bBootToPause = false, cpu_core = PowerPC::CPUCore::JITARM64, bJITFollowBranch = true, bJITNoBlockCache = false,
bJITNoBlockLinking = false, bJITOff = false, bJITLoadStoreOff = false, bJITLoadStorelXzOff = false, bJITLoadStorelwzOff = false, bJITLoadStorelbzxOff = false, bJITLoadStoreFloatingOff = false,
bJITLoadStorePairedOff = false, bJITFloatingPointOff = false, bJITIntegerOff = false, bJITPairedOff = false, bJITSystemRegistersOff = false, bJITBranchOff = false, bFastmem = true, bFPRF = true,
bAccurateNaNs = false, iTimingVariance = 40, bCPUThread = true, bDSPThread = true, bDSPHLE = true, bSyncGPUOnSkipIdleHack = true, bHLE_BS2 = true, bEnableCheats = false, bEnableMemcardSdWriting = true,
bCopyWiiSaveNetplay = true, bDPL2Decoder = false, iLatency = 20, m_audio_stretch = false, m_audio_stretch_max_latency = 80, bRunCompareServer = false, bRunCompareClient = false, bMMU = false, bLowDCBZHack = false,
iBBDumpPort = -1, bFastDiscSpeed = false, bSyncGPU = true, iSyncGpuMaxDistance = 200000, iSyncGpuMinDistance = -200000, fSyncGpuOverclock = 1, SelectedLanguage = 0, bOverrideGCLanguage = false, bWii = false,
m_is_mios = false, bConfirmStop = true, bHideCursor = false, bUsePanicHandlers = true, bOnScreenDisplayMessages = true, theme_name = "Clean", m_analytics_id = "8d2421293d77247aa1d6609deda09296",
m_analytics_enabled = false, m_analytics_permission_asked = true, m_bt_passthrough_enabled = false, m_bt_passthrough_pid = -1, m_bt_passthrough_vid = -1, m_bt_passthrough_link_keys = "",
m_usb_passthrough_devices = std::set with 0 elements, m_enable_signature_checks = true, bLoopFifoReplay = true, bEnableCustomRTC = false, m_customRTCValue = 946684800, m_region = DiscIO::Region::NTSC_U,
m_strVideoBackend = "OGL", m_strGPUDeterminismMode = "auto", m_GPUDeterminismMode = GPUDeterminismMode::Auto, m_strBootROM = "/usr/share/games/dolphin-emu/sys/GC/USA/IPL.bin",
m_strSRAM = "/home/pi/.dolphin-emu/GC/SRAM.raw", m_perfDir = "", m_debugger_game_id = "GLME01", m_disc_booted_from_game_list = true, m_strGbaCartA = "", m_strGbaCartB = "", m_EXIDevice = {
ExpansionInterface::EXIDEVICE_MEMORYCARD, ExpansionInterface::EXIDEVICE_MEMORYCARD, ExpansionInterface::EXIDEVICE_NONE}, m_SIDevice = {<incomplete type>, <incomplete type>, <incomplete type>, <incomplete type>},
m_bba_mac = "", m_InterfaceLanguage = "", m_EmulationSpeed = 1, m_OCEnable = false, m_OCFactor = 1, m_InterfaceExtendedFPSInfo = false, m_show_active_title = true, m_use_builtin_title_database = true,
m_ListDrives = false, m_ListWad = true, m_ListElfDol = true, m_ListWii = true, m_ListGC = true, m_ListPal = true, m_ListUsa = true, m_ListJap = true, m_ListAustralia = true, m_ListFrance = true,
m_ListGermany = true, m_ListItaly = true, m_ListKorea = true, m_ListNetherlands = true, m_ListRussia = true, m_ListSpain = true, m_ListTaiwan = true, m_ListWorld = true, m_ListUnknown = true, m_ListSort = 3,
m_ListSort2 = 0, m_showSystemColumn = true, m_showBannerColumn = true, m_showDescriptionColumn = false, m_showTitleColumn = true, m_showMakerColumn = true, m_showFileNameColumn = false, m_showIDColumn = false,
m_showRegionColumn = true, m_showSizeColumn = true, m_showTagsColumn = false, m_WirelessMac = "", m_PauseMovie = false, m_ShowLag = false, m_ShowFrameCount = false, m_ShowRTC = false, m_strMovieAuthor = "",
m_DumpFrames = false, m_DumpFramesSilent = false, m_ShowInputDisplay = false, m_PauseOnFocusLost = false, m_DSPEnableJIT = true, m_DSPCaptureLog = false, m_DumpAudio = false, m_DumpAudioSilent = false,
m_IsMuted = false, m_DumpUCode = false, m_Volume = 100, sBackend = "ALSA", m_BackgroundInput = false, m_AdapterRumble = {true, true, true, true}, m_AdapterKonga = {false, false, false, false},
m_SSLDumpRead = false, m_SSLDumpWrite = false, m_SSLVerifyCert = true, m_SSLDumpRootCA = false, m_SSLDumpPeerCert = false, m_auto_update_track = "", m_auto_update_hash_override = "", static m_Instance =
0x55a6e9ff50, m_game_id = "GLME01", m_gametdb_id = "GLME01", m_title_description = "Luigi's Mansion (GLME01)", m_title_id = 0, m_revision = 0}
(gdb)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment