Add support for SIMD registers
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:

Thank you for creating and maintaining this great project!
👋
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,
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 😉
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.
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.