![]() ![]() Exception current instruction address: 0x000b6e84 is address of the instruction which caused an exception. As not memory address was saved in pointer ptr, it has default stack fill value 0xeeeeeeee.ģ. As ptr is a local variable it is part of task stack. Data access register: Accessing the memory address in this registers has caused the exception. DSIR register has 6 th bit set which mean exception was caused by store instruction.Ģ. Data access -: It means exception is caused by invalid data memory access. *ptr = ‘A’ > pointer is not pointing to valid memory address, will cause exceptionĮxception current instruction address: 0x000b6e84ĭata storage interrupt Register: 0x42000000ġ. Srr1: Save and restore register 1 ( It contains exception specific information and some of MSR bits after an exception)ĭata Exception: Data exceptions are most common and relatively easy to debug and fix.Following section describes debugging a data exception in details.Example C Code for data exception: ![]() Srr0: Save and restore register 0 ( It contains address of instruction which caused exception or the address of next instruction) ![]() Msr: Machine State register ( This is very useful when debugging exceptions as it contains exception information)ĭar: Data address register ( It has effective address accessed by memory access instruction)ĭsisr: Cause of DSI and alignment exception ![]() Lr: Link register ( It contains the return address)Ĭr0: Condition register( It has fields CR0 to CR7 which indicates results of integer and floating point instruction execution)Ĭtr: Count register ( Can have a loop count or target address for branch instruction) Xer: It is a fixed point exception register. It indicates carriers and overflows of an integer operation Return value from function is saved in r3.į0-f31: Floating point registers (Used by floating point instructions as source and destination)įpscr: Floating point control and status register (Contains status of floating point operation) R0-r31 : General purpose registers (Used for integer data manipulation).r1 is used as stack pointer as there is no dedicated stack pointer register.Function arguments are passed in general purpose registers starting r3. PowerPC Register Summary: Following registers are more relevant when it comes to exception debugging In this post I will describe on debugging data exception on PowerPC. ![]()
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. Archives
March 2023
Categories |