-
Notifications
You must be signed in to change notification settings - Fork 28
Open
Description
SharpDebug/Source/SharpDebug.DwarfSymbolProvider/DwarfSymbolProviderModule.cs
Lines 2548 to 2550 in 0a19533
| case DwarfCanonicalFrameAddressInstruction.register: | |
| dummyLocation.Register = (int)data.LEB128(); | |
| dummyLocation.Register = (int)data.LEB128(); |
read register twice
https://elixir.bootlin.com/linux/v5.14.14/source/arch/arc/kernel/unwind.c#L790
Its supposed to be register and register value
not register and register again
SharpDebug/Source/SharpDebug.DwarfSymbolProvider/DwarfSymbolProviderModule.cs
Lines 2501 to 2509 in 0a19533
| case DwarfCanonicalFrameAddressInstruction.advance_loc1: | |
| currentAddress = data.ReadByte(); | |
| break; | |
| case DwarfCanonicalFrameAddressInstruction.advance_loc2: | |
| currentAddress = data.ReadUshort(); | |
| break; | |
| case DwarfCanonicalFrameAddressInstruction.advance_loc4: | |
| currentAddress = data.ReadUint(); | |
| break; |
all these advance_loc* are wrong, they should advance the current address, not set it.
https://elixir.bootlin.com/linux/v5.14.14/source/arch/arc/kernel/unwind.c#L742
Metadata
Metadata
Assignees
Labels
No labels