Re: Using gdb, how to step only one machine instruction after vmrun instruction? ...so that I jump in the guest OS code

Parfait Tokponnon <[email protected]>
Newsgroups gmane.comp.gdb.devel
Message-ID <CAOfT3nHCn8eqGriZ2hADc991zcM4uo45UHDKvureCTfYq4W0CQ@mail.gmail.com>
2016-03-23 14:45 GMT+01:00 Parfait Tokponnon <[email protected]>:
> Hello,
> I 'm using gdb to debug an hypervisor. and my goal is to trace the program
> execution starting from the point that the hypervisor launches the guest OS
> by "VMRUN" instruction so that I can jump to the first instruction in the
> guest OS code.
> This is an excerpt from the hypervisor code:
>                 clgi;
>                 sti;
>                 vmload;
>                 vmrun;  // starting from here, the cpu switch on
> virtualization and the Guest OS is fecthed
>                 vmsave; // this is the first instruction after a VMEXIT
>
> So, according to AMD documentation, the next instruction after VMRUN is at
> CS:RIP where CS and RIP are extracted from the VMCB specific field.
> But using gdb, when I step one instruction from VMRUN, the next instruction
> fechted by the debugger is the next instruction in the hypervisor code, that
> is "VMSAVE", not the OS code.
> So my problem is to trace the execution from the host code to the guest
> code.
> How can I do that? Is there anyone who faced such a kind of problem?
> Hope I can get help from YOU. Thanks
> --
> Parfait T.



-- 
Parfait T.
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.