fixes #660, can not get correct arm64 context #724
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
A few months ago, my friend @thinkycx opened a issue #660 about arm64 context. I come into the same problem and I think a find the cause.
I know the problem is the invalid cast "value = value.cast(pwndbg.typeinfo.ptrdiff)" after reading the discussion in issue #660, so I try to find the correct type by reading the gdb source code.
The file gdb/features/aarch64-core.xml defines the arm64 registers and it defines cpsr as a 32-bit register.
So I change the cast to "value = value.cast(pwndbg.typeinfo.uint32)" by adding another condition in the if statement.