So I’m messing about in a DefaultExceptionHandler() (like [1]) that is called 
from CommonCExceptionHandler() [2]. What I notice is the faulting address is 
special cased. So the stack walking code has to dump the fault address and then 
walk the stack to get a stack trace of the fault. That kind of makes sense, but 
then when I connect with a debugger the stack trace I get is missing the 
faulting frame from the debugger. 

My question is there something architectural that makes the debugger not work 
from this location? Does the exception code need to do some magic on the stack 
so a stack walk back would include the faulting are frame? I’m not 100% sure 
about AArch64. I seem to remember we messed with the X64 stack so the frame 
from the exception handler looked valid and included the faulting code.


[1] 
https://github.com/tianocore/edk2/blob/master/ArmPkg/Library/DefaultExceptionHandlerLib/AArch64/DefaultExceptionHandler.c#L186
[2] 
https://github.com/tianocore/edk2/blob/master/ArmPkg/Library/ArmExceptionLib/ArmExceptionLib.c#L296

Thanks,

Andrew Fish



-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#86687): https://edk2.groups.io/g/devel/message/86687
Mute This Topic: https://groups.io/mt/89175218/21656
Group Owner: devel+ow...@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-


Reply via email to