gef icon indicating copy to clipboard operation
gef copied to clipboard

Add support for SIMD registers

Open B14CK313 opened this issue 3 years ago • 3 comments

Is your feature request related to a problem? Please describe. gef doesn't seem to support SIMD registers like $xmm0 (SSE).

Describe the solution you'd like It would be great if support for SIMD registers could be added to gef to make it easier to debug functions with floating point instructions. The standard gdb commands (e.g. info reg xmm0) are just too verbose, and it's tedious to keep track of these registers by using i r <register> repeatedly. It would be much easier if you could use a custom context pane for this, but I can't find a way to retrieve the value of these registers in gef, because get_register("$xmm0") returns None.

Trying to display SSE registers using a custom context pane and below the annoyingly verbose output of the inbuilt gdb command: image

Thank you for creating and maintaining this great project!

B14CK313 avatar May 28 '22 11:05 B14CK313

👋

Glad you enjoy the project.

Regarding your question, I considered it but AFAIK there's no programmatic way to handle SSE registers from the Python API.

For example:

pi gdb.selected_frame().read_register("xmm0")

Returns gdb.Value as expected, but I cannot find a way to handle it as integer instead. I must say I didn't spend too long on it, so if you happen to know (or find) a way post it here and yeah, SSE regs can be added then.

Cheers,

hugsy avatar Jun 24 '22 05:06 hugsy

Actually I just noticed it works fine when it's cast as an array:

gef➤  pi for i in range(2): print(int(gdb.parse_and_eval("$xmm0").cast( gdb.lookup_type("uint64_t").array(1))[i]))
0
0

Might be worth it to add some things for SSE, but I'll leave it in low priority for now. If you feel like going for a PR 😉

hugsy avatar Jun 24 '22 05:06 hugsy

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. You can reopen it by adding a comment to this issue.

stale[bot] avatar Aug 31 '22 07:08 stale[bot]

This issue has been automatically closed because it has not had recent activity. If you are the owner of this issue, you can either re-open it and provide a more complete description; or create a new issue. Thank you for your contributions.

stale[bot] avatar Oct 01 '22 07:10 stale[bot]