New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
GDB support on ARM64 KVM #3980
Comments
CC @jongwu |
Another gap is in |
@liuw Is anybody working on this issue now? Recently I began to look into this topic. If nobody is on this yet, I will continue to try. |
No one is looking into this yet. The team is occupied by another project. Thanks for looking into it. |
Here comes the list of gaps to fill (also a plan) to support GDB on Arm64:
|
Seems like a good plan. Initially we could focus minimal implementation and we could improve gradually. |
Thanks for reminding, I almost forgot to update the progress on this issue:
|
Just FYI, @ptosi is adding ARM64 GDB support to crosvm at https://crrev.com/c/3785467/ with a gdbstub_arch PR. |
Thanks for the heads-up. Are you looking for review on the crosvm changes also? Or are you looking for review on only the gdbstub_arch crate? |
I thought it'd be nice if CH folks could take a look at |
@michael2012z Has some work at https://github.com/michael2012z/cloud-hypervisor/tree/aarch64-gdb but is waiting for aarch64 |
Would this explain why I am seeing various crashes using gdb's Next and Step commands with an Ubuntu ARM64 VM on Azure?
I realize that my program could be crashing. But I am running a very simple Hello world type program that runs fine:
If so, do you all have any idea what Microsoft (or I) would have to do to make it work on Azure? I am trying to teach a course involving C and ARM64 assembler. Or is there some work-around (setting a gdb option, etc.) that can still provide simple debugging without triggering the problem? Thanks, |
Hi, Mark You were using gdb to debug an application program in an ARM64 VM, right? That is a different topic with this issue. This issue was tracking the support of debugging the VM kernel from the host side (the debugging happens on the host, rather than in the VM), which is a different scenario from yours. Just to confirm, were you using Cloud Hypervisor to manage the VM on Azure? What's the version? |
Michael,
Correct.
I do know that the Azure ARM Neoverse-N1 offering was still in limited availability when I requested access. So maybe this is something they have not worked out yet. I did make a post on an Azure Virtual machine support forum as well. Thanks for the insights. I was unsure as to the role of the Cloud Hypervisor project in my scenario. |
The support for x86_64 was merged some time ago. There is a
Debuggable
trait. It is only implemented for x86_64.My first thought on this is there is no functional
translate_gva
call on ARM64. I'm not sure if it should be implemented in kernel or in CH. Implementing a page walker is error-prone. Doing it in kernel benefits not just Cloud Hypervisor but other projects too. On the other hand, implementing it in kernel means the host has to get a new kernel or backport the feature. That's not a good idea in conservative production environments.The rest are just reading and writing registers and memory which seem to be rather straightforward.
CC @yangxile @MrXinWang @michael2012z
The text was updated successfully, but these errors were encountered: