How to disable Disassembly view on crash?
When Unreal game crashes due to things like reading null pointer address, the Rider halts at the execution but shows Disassembly view instead of the relevant line of code. I have to always switch back to code tab to actually see where the crash happened. I never ever want to see it. It doesn't provide any useful information, just overwhelms me with tons of useless text and gives me a chore of manually closing it and then clicking the stack trace to actually navigate to proper line of code.
How do I disable the Diassembly tab automatically opening? I've searched the Settings but there's no checkbox that even remotely sounds like it'd do it.
Please sign in to leave a comment.
Hello,
Would you like Rider to show you a C++ code (instead of disassembly) where UE crashed? If so, you either need the engine built from sources (github version) nor you need to install "Editor Symbols for debugging" from Epic Games launcher under UE settings:
If that doesn't help, I would appreciate it if you could elaborate on the issue and share a couple of screenshots that demonstrate the problem. What you expect Rider to show on UE crash?
I intentionally don't have the debug symbols installed because they are massive. What I want rider to do on crash is to show place on the editor where the last known callstack location was (as in the game code). If the source of the crash occurred in the editor, I simply do not want to ever see this:
All it gives me is a chore to close it. If I don't have engine debugging symbols installed, this isn't going to help me anyway. It should simply show last known location if the game source files are present anywhere in the callstack, and if nothing in the callstack is from the game's source code, then it should simply do nothing and display nothing, just keep the editor as was right before the crash.
I just need any way to prevent the disassembly view from appearing. Same applies also when debugging. Sometimes, the debugger will just randomly step into disassembly view for no reason, even if I used step over, not step in. I just want to avoid ever encoutering the disassembly view tab.
Thank you for the clarification. Would you mind checking would it help if you filter out C++ frames from UE:
Thanks for your patience. Disabling Show C++ frames completely kills debugger, in that it just doesn't browse to any line on error/crash, even if the stack trace knows where the crash occurred. At the same time, it still keeps opening the Disassembly tab for crashes where it can not find specific lines. I have decided to download whole 90GB debug symbols for Unreal 5.3 just to get rid of Disassembly tab but it didn't work. There are still some types of crashes - for example when you launch “Game” target without properly cooked content. You will get clues about what went wrong in the Unreal Log, but on crash, the Rider will still open completely random Disassembly tab.
I am just looking for a way to never ever see Disassembly. For example if I launch VSCode or VS2022 and crash on the same point, if they can't locate the line to point the error to on stack trace, they simply don't do anything.
It's kind of funny because I tried Rider couple of times before, but every time I saw the disassembly tab on error, I got a feeling this is just not an editor for me, that it's for too low level stuff, and I switched back to my primary IDE. This time I purchased subscription to give it one more try, and decided to really ty to stick with it, but constantly ending up in Disassembly almost every time I hit a breaking crash or very often randomly when I just use “Step Over” in debugger is the main reason I am considering switching back to my old IDE. The Disassembly tab almost feels like using website/service with very annoying repeated popup ads I have to keep closing all the time :/
Hello,
Thank you for the details shared.
Regarding this:
Since .pdb (symbols for debugging) is missing for the corresponding module where crash occurred (the engine-related .dll) , the debugger can't match execution point to a source file, so that it shows assembly (a place in .dll where crash occurred). Since all the available frames belong to engine .dll's, and you filtered out C++ frames from the engine, it results in the behavior you observe.
I would appreciate it if you could elaborate on the cases after installing symbols for debugging. Would you mind sharing Rider full-screen screenshot that demonstrates what you observe? (disassembly shows on UE crash)
Meantime, you might want to “Verify” engine files in Epic Games launcher and rebuild the project:
Verify engine files:
Have a nice day!
No, the engine files definitely weren't corrupted. I mean when I installed the symbols, the Epic installer always first verifies the installation before installing optional components.
Here's a typical example:
https://youtu.be/1xu38u6g7ck
1. I've renamed some header and cpp file
2. Rider refactored the filename references to new ones and added core redirects
3. I am iterating on Game target, not Editor target, so that the restart times fast.
4. I launch the Game target, and the game crashes, because it takes launching Editor target at least once, so that it can update the blueprints with Core redirects.
5. By triggering Disassembly tab with no callstack, Rider completely obfuscates the source of the problem and draws attention away from it.
6. I have to launch the target without debugging to get Unreal's crash report window where the relevant callstack actually is.
I really just don't want to see this tab ever. I don't know how else to explain it. Even if I give you all the random scenarios in which the tab triggers, it doesn't change the fact that the solution to this is to have option to turn it off, not to try to reduce amount of cases where it pops up.
Thank you for the sample scenario shared! I'll take a deeper look at it and get back.