Skip to content

MIEngine: Fix Disassembly fail on GPU if startAddress is offset#1420

Merged
WardenGnaw merged 2 commits intomicrosoft:mainfrom
iyerrakesh:Disassembly-Fail-GPU-StartAdd-Offset
Oct 23, 2023
Merged

MIEngine: Fix Disassembly fail on GPU if startAddress is offset#1420
WardenGnaw merged 2 commits intomicrosoft:mainfrom
iyerrakesh:Disassembly-Fail-GPU-StartAdd-Offset

Conversation

@iyerrakesh
Copy link
Contributor

Fix Disassembly failure on GPU if startAddress is offset

Issue description & fix:
When opening Disassembly View, VS requests disassembly for a certain amount of instructions.
In some of those requests, start address calculation results in an address in the middle of the instruction.
GDB is unable to execute the command if the start address of the disassembly range is the middle of the instruction - returns "unknown error -1", and thus MIEngine does not have any data for the VS to populate the entries - as a result, nulls are returned to VS, represented by "??".
The fix is to loop the disassembly request if it fails while decrementing the start address - this way at some point it will align with the beginning of the instruction. The loop will perform at most Process.MaxInstructionSize-times (assuming worst-case initial address at the end of the instruction).

It does happen that the end address is offset as well, but it does not affect the disassembly process.

Signed-off-by: intel-rganesh rakesh.ganesh@intel.com

@WardenGnaw WardenGnaw merged commit dad92af into microsoft:main Oct 23, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants