Hi

I wrote "As a base". It's not my current code.
I called "DEBUG() directly, without any conditions. Of course, code on
given link won't call DEBUG() if no errors happen.
I understand that UEFI Appliction should work fine with usual print
functions, but now I want to know how to print debug message in DXE phase -
at any way.

Nikolay.

2017-02-15 1:17 GMT+03:00 David A. Van Arnem <dvanar...@cmlab.biz>:

> Hi,
>
> From a quick look at your code, I'm not sure you want to make a
> DXE_DRIVER.  The code looks more like a UEFI_APPLICATION.
> CrScreenshotDxe.c should normally manage a device, for UEFI_DRIVERS it
> will implement the Driver Binding Protocol functions Supported(),
> Start(), and Stop().
>
> Likely, the reason you aren't seeing any DEBUG() messages is because
> your functions aren't being called.
>
> Regards,
> David
>
> On 02/14/2017 03:06 PM, Nikolay Bodunov wrote:
> > Thank you for the suggestions.
> >
> > I tried to use them:
> >
> >> (1) Please always terminate the debug message with a newline ("\n")
> > Done. No changes. Of course, I usually do it, but in that case all I
> needed
> > was to have any string on output. Sorry for bad programming style.
> >
> >> (2) Please use DEBUG_ERROR as the symbolic constant for the error mask
> > Done. I think you meant in DEBUG() macros. No changes. Question about
> > style, too.
> >
> >> (3) DEBUG output from OVMF is by default not written to the serial port
> > and
> >> add -D DEBUG_ON_SERIAL_PORT
> > Done. Recompiled OVMF with that option. I have now file "debug.log" 74415
> > bytes size that contains everything, include EFI Shell output, but except
> > my debug messages
> >
> > BTW, QEMU option "-debugcon file:debug.log -global
> > isa-debugcon.iobase=0x402", recommended in OVMF README, did nothing -
> > "debug.log was empty.
> >
> > Based on results, I suppose that the problem is not on OVMF side.
> > Hope you propose something else to try. Maybe I got something in a wrong
> > way.
> >
> > Nikolay
> >
> > 2017-02-14 21:28 GMT+03:00 Kinney, Michael D <michael.d.kin...@intel.com
> >:
> >
> >> If you prefer debug messages on a serial port, you can
> >> add -D DEBUG_ON_SERIAL_PORT
> >>
> >> Mike
> >>
> >>> -----Original Message-----
> >>> From: edk2-devel [mailto:edk2-devel-boun...@lists.01.org] On Behalf Of
> >> Laszlo Ersek
> >>> Sent: Tuesday, February 14, 2017 10:17 AM
> >>> To: Nikolay Bodunov <nikolay.bodu...@gmail.com>;
> edk2-de...@ml01.01.org
> >>> Subject: Re: [edk2] DEBUG() macros in DXE driver: can’t make it work in
> >> QEMU
> >>>
> >>> Hi Nikolay,
> >>>
> >>> On 02/14/17 18:55, Nikolay Bodunov wrote:
> >>>> Hello
> >>>>
> >>>>
> >>>> I compiled DXE Driver, in DEBUG_GCC49 mode, but I can’t print any
> debug
> >>>> message.
> >>>> DEBUG((-1, “Print test”))  does nothing.  Exactly as
> >>>> DebugPrint(EFI_D_ERROR, “Print Test);
> >>>
> >>> (1) Please always terminate the debug message with a newline ("\n")
> once
> >>> you are done with it. (It's okay to format a single message with
> several
> >>> DEBUG calls of course, and terminate only the last DEBUG with a
> newline.)
> >>>
> >>> (2) Please use DEBUG_ERROR as the symbolic constant for the error mask.
> >>>
> >>>>
> >>>> However, I see “Print Test” string in my *.efi binary.
> >>>> I use QEMU + OMVF (OVMF was also recompliled in DEBUG_GCC49 mode, to
> be
> >>>> sure). Serial port output is redirected to a file:
> >>>> qemu-system-x86_64 -L . --bios /…/FV/OVMF.fd -hda hdd.img -serial
> >>>> file:./serial_file
> >>>
> >>> (3) DEBUG output from OVMF is by default not written to the serial
> port,
> >>> it is written to the QEMU debug port. Please consult OvmfPkg/README for
> >>> specifics, namely under "Capturing OVMF debug messages on qemu".
> >>>
> >>> Hope this helps,
> >>> Laszlo
> >>>
> >>>>
> >>>> All I see in output file is EFI shell output messages, include one
> >> that my
> >>>> driver was succesfully loaded. But no messages from DEBUG().
> >>>>
> >>>>
> >>>> My conditions:
> >>>>
> >>>> MODULE_TYPE    = DXE_DRIVER
> >>>>
> >>>>
> >>>> Debug Print Library:
> >>>>
> >>>> DebugLib|MdePkg/Library/BaseDebugLibSerialPort/
> >> BaseDebugLibSerialPort.inf
> >>>>
> >>>> (BaseDebugLibNull.inf is commented, of course)
> >>>>
> >>>>
> >>>> DebugPrintEnabled() returns TRUE
> >>>>
> >>>>
> >>>> I also tried to set some key options manually in MdeModulePkg.dsc
> >>>> afterwards, but result didn’t change:
> >>>>
> >>>>
> >>>> [Components]
> >>>>
> >>>>
> >>>>   MdeModulePkg/CrScreenshotDxe/CrScreenshotDxe.inf  {
> >>>>
> >>>>
> >>>>     <PcdsFixedAtBuild>
> >>>>
> >>>>
> >>>> gEfiMdePkgTokenSpaceGuid.gEfiMdePkgTokenSpaceGuid.
> >> PcdDebugPrintErrorLevel|0x07
> >>>>
> >>>>       gEfiMdePkgTokenSpaceGuid.PcdDebugPropertyMask|0x2F
> >>>>
> >>>>       gEfiMdePkgTokenSpaceGuid.PcdDebugPrintErrorLevel|0x80000042
> >>>>
> >>>>
> >>>>
> >>>>    <LibraryClasses>
> >>>>
> >>>>
> >>>> DebugLib|MdePkg/Library/BaseDebugLibSerialPort/
> >> BaseDebugLibSerialPort.inf
> >>>>
> >>>>
> >>>>    <BuildOptions>
> >>>>
> >>>>       GCC:*_*_*_CC_FLAGS             = -UMDEPKG_NDEBUG
> >>>>
> >>>> }
> >>>>
> >>>>
> >>>> Code (I used it as a base): https://github.com/LongSoft/
> >> CrScreenshotDxe
> >>>>
> >>>> Where I got wrong and what else could I try to make it work?
> >>>>
> >>>
> >>> _______________________________________________
> >>> edk2-devel mailing list
> >>> edk2-devel@lists.01.org
> >>> https://lists.01.org/mailman/listinfo/edk2-devel
> >>
> >
> >
> >
>
> --
> Regards,
> David Van Arnem
> Development Engineer IV
> Computer Measurement Laboratory, LLC
>
>


-- 
With best regards,
Nikolay Bodunov
_______________________________________________
edk2-devel mailing list
edk2-devel@lists.01.org
https://lists.01.org/mailman/listinfo/edk2-devel

Reply via email to