This is the mail archive of the gdb@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

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


2016-03-23 14:45 GMT+01:00 Parfait Tokponnon <parfait.tokponnon@gmail.com>:
> 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.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]