public inbox for devel@edk2.groups.io
 help / color / mirror / Atom feed
* Qestion about how to debug OVMF with UDT on QEMU
@ 2017-08-09  7:34 wang xiaofeng
  2017-08-09 11:02 ` Laszlo Ersek
  0 siblings, 1 reply; 5+ messages in thread
From: wang xiaofeng @ 2017-08-09  7:34 UTC (permalink / raw)
  To: edk2-devel@lists.01.org

Hello All,
   I try to debug OVMF with UDT on QEMU in windows.
   I build OVMF on windows 7 with VS2013 . And also runs it in QEMUWin32.
   I add   DEFINE SOURCE_DEBUG_ENABLE     = TRUE in ovmf.dsc and build a new bios. From makefile it seems this feature is enabled  for OVMF SecMain


    $(BIN_DIR)\SourceLevelDebugPkg\Library\PeCoffExtraActionLibDebug\PeCoffExtraActionLibDebug\OUTPUT\PeCoffExtraActionLib.lib \
    $(BIN_DIR)\SourceLevelDebugPkg\Library\DebugAgent\SecPeiDebugAgentLib\OUTPUT\SecPeiDebugAgentLib.lib \


    But how can I link it to the local Windows UDT(which I have tested works for  real hardware bios by serail port )?
    Another question is why OVMF fdf don;t include DebugAgentPei.inf?
    Or I have to enable at least 1 or 2 VM for this task?
    Thanks in advance!
    

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: Qestion about how to debug OVMF with UDT on QEMU
  2017-08-09  7:34 Qestion about how to debug OVMF with UDT on QEMU wang xiaofeng
@ 2017-08-09 11:02 ` Laszlo Ersek
  2017-08-09 18:21   ` Kinney, Michael D
  0 siblings, 1 reply; 5+ messages in thread
From: Laszlo Ersek @ 2017-08-09 11:02 UTC (permalink / raw)
  To: wang xiaofeng, Michael Kinney; +Cc: edk2-devel@lists.01.org

On 08/09/17 09:34, wang xiaofeng wrote:
> Hello All,
>    I try to debug OVMF with UDT on QEMU in windows.
>    I build OVMF on windows 7 with VS2013 . And also runs it in QEMUWin32.
>    I add   DEFINE SOURCE_DEBUG_ENABLE     = TRUE in ovmf.dsc and build a new bios. From makefile it seems this feature is enabled  for OVMF SecMain
> 
> 
>     $(BIN_DIR)\SourceLevelDebugPkg\Library\PeCoffExtraActionLibDebug\PeCoffExtraActionLibDebug\OUTPUT\PeCoffExtraActionLib.lib \
>     $(BIN_DIR)\SourceLevelDebugPkg\Library\DebugAgent\SecPeiDebugAgentLib\OUTPUT\SecPeiDebugAgentLib.lib \
> 
> 
>     But how can I link it to the local Windows UDT(which I have tested works for  real hardware bios by serail port )?
>     Another question is why OVMF fdf don;t include DebugAgentPei.inf?
>     Or I have to enable at least 1 or 2 VM for this task?
>     Thanks in advance!

In the past I've tried to set up the UDK debugger between two virtual
machines, using a UNIX domain socket to connect their serial ports. It
didn't work, the debugger protocol kept falling apart. I suspected that
the emulated serial ports didn't follow the timings of physical serial
ports closely enough.

So, I never use SOURCE_DEBUG_ENABLE, but I think others on the list may
have gotten it to work? Mike perhaps?

Thanks
Laszlo


^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: Qestion about how to debug OVMF with UDT on QEMU
  2017-08-09 11:02 ` Laszlo Ersek
@ 2017-08-09 18:21   ` Kinney, Michael D
  2017-08-09 19:37     ` Laszlo Ersek
  0 siblings, 1 reply; 5+ messages in thread
From: Kinney, Michael D @ 2017-08-09 18:21 UTC (permalink / raw)
  To: Laszlo Ersek, wang xiaofeng, Kinney, Michael D; +Cc: edk2-devel@lists.01.org

Laszlo,

I works really well for me using QEMU on Windows.

* Build OVMF setting -D SOURCE_DEBUG_ENABLE and -D DEBUG_ON_SERIAL_PORT.

* Configure The UDK Debugger SoftDebugger.ini file to use TCP port 20716

  [Debug Port]
  Channel = TCP
  Server = localhost
  Port = 20716

* Configure QEMU so the monitor and serial port 
  are redirected to a tcp ports 20717 and 20716.

  -monitor tcp:localhost:20717,server
  -serial  tcp:localhost:20716,server

I use a batch file to launch the UDK debugger and
and terminal emulators immediately before running
QEMU because the tcp server in QEMU will
timeout of a connect does not happen quickly.

  start "Monitor" /B "c:\Program Files (x86)\teraterm\ttermpro.exe" localhost:20717 /nossh
  start "Debugger" /B "C:\Program Files (x86)\Intel\Intel(R) UEFI Development Kit Debugger Tool\eXdi.exe" /LaunchWinDbg
  start "Console" /B "c:\Program Files (x86)\teraterm\ttermpro.exe" localhost:20715 /nossh

  start "QEMU" /B "%QEMU_PATH%\qemu-system-i386w.exe" ^
  -machine q35,smm=on,accel=tcg -cpu Nehalem ^
  -global ICH9-LPC.disable_s3=1 ^
  -drive if=pflash,format=raw,unit=0,file=%EDKII_BUILD_OUTPUT%\FV\OVMF_CODE.fd,readonly=on ^
  -drive if=pflash,format=raw,unit=1,file=%EDKII_BUILD_OUTPUT%\FV\OVMF_VARS.fd ^
  -monitor tcp:localhost:20717,server ^
  -serial  tcp:localhost:20716,server

Since the serial connections are redirected to tcp ports
on the localhost, this actually provide an excellent
UDK Debugger experience.

Best regards,

Mike

> -----Original Message-----
> From: Laszlo Ersek [mailto:lersek@redhat.com]
> Sent: Wednesday, August 9, 2017 4:03 AM
> To: wang xiaofeng <winggundum82@163.com>; Kinney, Michael D
> <michael.d.kinney@intel.com>
> Cc: edk2-devel@lists.01.org
> Subject: Re: [edk2] Qestion about how to debug OVMF with UDT on
> QEMU
> 
> On 08/09/17 09:34, wang xiaofeng wrote:
> > Hello All,
> >    I try to debug OVMF with UDT on QEMU in windows.
> >    I build OVMF on windows 7 with VS2013 . And also runs it in
> QEMUWin32.
> >    I add   DEFINE SOURCE_DEBUG_ENABLE     = TRUE in ovmf.dsc
> and build a new bios. From makefile it seems this feature is
> enabled  for OVMF SecMain
> >
> >
> >
> $(BIN_DIR)\SourceLevelDebugPkg\Library\PeCoffExtraActionLibDebug
> \PeCoffExtraActionLibDebug\OUTPUT\PeCoffExtraActionLib.lib \
> >
> $(BIN_DIR)\SourceLevelDebugPkg\Library\DebugAgent\SecPeiDebugAge
> ntLib\OUTPUT\SecPeiDebugAgentLib.lib \
> >
> >
> >     But how can I link it to the local Windows UDT(which I
> have tested works for  real hardware bios by serail port )?
> >     Another question is why OVMF fdf don;t include
> DebugAgentPei.inf?
> >     Or I have to enable at least 1 or 2 VM for this task?
> >     Thanks in advance!
> 
> In the past I've tried to set up the UDK debugger between two
> virtual
> machines, using a UNIX domain socket to connect their serial
> ports. It
> didn't work, the debugger protocol kept falling apart. I
> suspected that
> the emulated serial ports didn't follow the timings of physical
> serial
> ports closely enough.
> 
> So, I never use SOURCE_DEBUG_ENABLE, but I think others on the
> list may
> have gotten it to work? Mike perhaps?
> 
> Thanks
> Laszlo

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: Qestion about how to debug OVMF with UDT on QEMU
  2017-08-09 18:21   ` Kinney, Michael D
@ 2017-08-09 19:37     ` Laszlo Ersek
  2017-08-10  5:50       ` wang xiaofeng
  0 siblings, 1 reply; 5+ messages in thread
From: Laszlo Ersek @ 2017-08-09 19:37 UTC (permalink / raw)
  To: Kinney, Michael D, wang xiaofeng; +Cc: edk2-devel@lists.01.org

On 08/09/17 20:21, Kinney, Michael D wrote:
> Laszlo,
> 
> I works really well for me using QEMU on Windows.
> 
> * Build OVMF setting -D SOURCE_DEBUG_ENABLE and -D DEBUG_ON_SERIAL_PORT.
> 
> * Configure The UDK Debugger SoftDebugger.ini file to use TCP port 20716
> 
>   [Debug Port]
>   Channel = TCP
>   Server = localhost
>   Port = 20716
> 
> * Configure QEMU so the monitor and serial port 
>   are redirected to a tcp ports 20717 and 20716.
> 
>   -monitor tcp:localhost:20717,server
>   -serial  tcp:localhost:20716,server
> 
> I use a batch file to launch the UDK debugger and
> and terminal emulators immediately before running
> QEMU because the tcp server in QEMU will
> timeout of a connect does not happen quickly.
> 
>   start "Monitor" /B "c:\Program Files (x86)\teraterm\ttermpro.exe" localhost:20717 /nossh
>   start "Debugger" /B "C:\Program Files (x86)\Intel\Intel(R) UEFI Development Kit Debugger Tool\eXdi.exe" /LaunchWinDbg
>   start "Console" /B "c:\Program Files (x86)\teraterm\ttermpro.exe" localhost:20715 /nossh
> 
>   start "QEMU" /B "%QEMU_PATH%\qemu-system-i386w.exe" ^
>   -machine q35,smm=on,accel=tcg -cpu Nehalem ^
>   -global ICH9-LPC.disable_s3=1 ^
>   -drive if=pflash,format=raw,unit=0,file=%EDKII_BUILD_OUTPUT%\FV\OVMF_CODE.fd,readonly=on ^
>   -drive if=pflash,format=raw,unit=1,file=%EDKII_BUILD_OUTPUT%\FV\OVMF_VARS.fd ^
>   -monitor tcp:localhost:20717,server ^
>   -serial  tcp:localhost:20716,server
> 
> Since the serial connections are redirected to tcp ports
> on the localhost, this actually provide an excellent
> UDK Debugger experience.

Thanks for the writeup. :) Maybe we should put this in the wiki
(although I'm completely aware of how I would react if this was
suggested to me in response to an email of mine :) )

And, perhaps I should give this another try sometime :)

Thank you!
Laszlo


^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: Qestion about how to debug OVMF with UDT on QEMU
  2017-08-09 19:37     ` Laszlo Ersek
@ 2017-08-10  5:50       ` wang xiaofeng
  0 siblings, 0 replies; 5+ messages in thread
From: wang xiaofeng @ 2017-08-10  5:50 UTC (permalink / raw)
  To: Laszlo Ersek; +Cc: Kinney, Michael D, edk2-devel@lists.01.org

HI Michael,
   I have tried your suggestion. ttermpro.exe shows connection refused in my Win7 after command "start "Monitor" /B %TERA_TERM_PATH% localhost:20717 /nossh"
  the tool also cannot work lonely.
   Any other software or configuration should I apply?
  Thanks!








At 2017-08-10 03:37:01, "Laszlo Ersek" <lersek@redhat.com> wrote:
>On 08/09/17 20:21, Kinney, Michael D wrote:
>> Laszlo,
>> 
>> I works really well for me using QEMU on Windows.
>> 
>> * Build OVMF setting -D SOURCE_DEBUG_ENABLE and -D DEBUG_ON_SERIAL_PORT.
>> 
>> * Configure The UDK Debugger SoftDebugger.ini file to use TCP port 20716
>> 
>>   [Debug Port]
>>   Channel = TCP
>>   Server = localhost
>>   Port = 20716
>> 
>> * Configure QEMU so the monitor and serial port 
>>   are redirected to a tcp ports 20717 and 20716.
>> 
>>   -monitor tcp:localhost:20717,server
>>   -serial  tcp:localhost:20716,server
>> 
>> I use a batch file to launch the UDK debugger and
>> and terminal emulators immediately before running
>> QEMU because the tcp server in QEMU will
>> timeout of a connect does not happen quickly.
>> 
>>   start "Monitor" /B "c:\Program Files (x86)\teraterm\ttermpro.exe" localhost:20717 /nossh
>>   start "Debugger" /B "C:\Program Files (x86)\Intel\Intel(R) UEFI Development Kit Debugger Tool\eXdi.exe" /LaunchWinDbg
>>   start "Console" /B "c:\Program Files (x86)\teraterm\ttermpro.exe" localhost:20715 /nossh
>> 
>>   start "QEMU" /B "%QEMU_PATH%\qemu-system-i386w.exe" ^
>>   -machine q35,smm=on,accel=tcg -cpu Nehalem ^
>>   -global ICH9-LPC.disable_s3=1 ^
>>   -drive if=pflash,format=raw,unit=0,file=%EDKII_BUILD_OUTPUT%\FV\OVMF_CODE.fd,readonly=on ^
>>   -drive if=pflash,format=raw,unit=1,file=%EDKII_BUILD_OUTPUT%\FV\OVMF_VARS.fd ^
>>   -monitor tcp:localhost:20717,server ^
>>   -serial  tcp:localhost:20716,server
>> 
>> Since the serial connections are redirected to tcp ports
>> on the localhost, this actually provide an excellent
>> UDK Debugger experience.
>
>Thanks for the writeup. :) Maybe we should put this in the wiki
>(although I'm completely aware of how I would react if this was
>suggested to me in response to an email of mine :) )
>
>And, perhaps I should give this another try sometime :)
>
>Thank you!
>Laszlo
\x16&#65533;&

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2017-08-10  5:48 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2017-08-09  7:34 Qestion about how to debug OVMF with UDT on QEMU wang xiaofeng
2017-08-09 11:02 ` Laszlo Ersek
2017-08-09 18:21   ` Kinney, Michael D
2017-08-09 19:37     ` Laszlo Ersek
2017-08-10  5:50       ` wang xiaofeng

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox