From: Laszlo Ersek <lersek@redhat.com>
To: Johannes Swoboda <johannes.swoboda@student.tuwien.ac.at>,
Rebecca Cran <rebecca@bluestop.org>,
thomas.palmer@hpe.com
Cc: Michael Kinney <michael.d.kinney@intel.com>,
edk2-devel@lists.01.org, clemens.hlauschek@inso.tuwien.ac.at
Subject: Re: gdb reload-uefi missing EFI_SYSTEM_TABLE_POINTER [was: Source code debugging of OVMF]
Date: Fri, 20 Apr 2018 17:20:16 +0200 [thread overview]
Message-ID: <020ac090-c1e9-0c73-a484-e785c1b7e423@redhat.com> (raw)
In-Reply-To: <eb507d9850580c1478fc19edb20f7b40@student.tuwien.ac.at>
On 04/20/18 16:54, Johannes Swoboda wrote:
> Hello,
>
> Thank you all for your insights.
>
> You advised me to use the scripts from [1].
> I did so following this guide [2] (thank you also for putting it back
> up!), with the minor adaptions that I made the script
> python3-compatible[3], and applied the patches mentioned in [2]
> manually. I assume they failed because they could only be applied to
> older versions of the files to be patched.
>
> In particular, I added the line DebugPkg/GdbSyms/GdbSyms.inf right below
> line OvmfPkg/PlatformDxe/Platform.inf in line 830 of the vUDK2018
> release. That makes sense, right?
You can add GdbSyms.inf anywhere near the other DXE phase modules. Just
make sure that you patch the DSC file(s) that you build and run
afterwards. (I.e., avoid the case where you patch e.g. the X64 DSC but
then build & boot the IA32 binary.)
>
> The guide looks promising; I think this would give me everything I need.
> However I ran into a problem when executing
>> (gdb) reload-uefi -o
>> ./Build/OvmfX64/DEBUG_GCC5/X64/DebugPkg/GdbSyms/GdbSyms/DEBUG/GdbSyms.dll
>
> gdb complained:
>> Python Exception <class 'gdb.error'> No type named
>> EFI_SYSTEM_TABLE_POINTER.:
>> Error occurred in Python command: No type named EFI_SYSTEM_TABLE_POINTER.
>
> The EFI_SYSTEM_TABLE_POINTER is defined in
> [WORKSPACE]/MdeModulePkg/Core/Dxe/Misc/DebugImageInfo.c, so I'm guessing
> I lack that file respectively its corresponding module.
This command will only work after you attach gdb to qemu. In general,
python extensions for gdb can only look up non-standard typenames etc.
if gdb is connected to a live image that uses those types.
People generally create gdb scripts as follows:
set height 0
set architecture i386:intel
target remote localhost:1234
source /.../edk2/DebugPkg/Scripts/gdb_uefi.py
reload-uefi -o
/.../edk2/Build/Ovmf.../.../.../DebugPkg/GdbSyms/GdbSyms/DEBUG/GdbSyms.dll
And then pass this command script to gdb with the "-x" option.
Thanks,
Laszlo
next prev parent reply other threads:[~2018-04-20 15:20 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-04-16 11:09 Source code debugging of OVMF Johannes Swoboda
2018-04-16 15:26 ` Richardson, Brian
2018-04-16 16:03 ` Blibbet
2018-04-20 13:32 ` Johannes Swoboda
2018-04-16 16:13 ` Laszlo Ersek
2018-04-16 16:53 ` Palmer, Thomas
2018-04-16 18:25 ` Rebecca Cran
2018-04-16 19:57 ` Laszlo Ersek
2018-04-19 2:46 ` Rebecca Cran
2018-04-19 8:41 ` Laszlo Ersek
2018-04-20 14:54 ` gdb reload-uefi missing EFI_SYSTEM_TABLE_POINTER [was: Source code debugging of OVMF] Johannes Swoboda
2018-04-20 15:20 ` Laszlo Ersek [this message]
2018-04-20 15:58 ` Palmer, Thomas
2018-04-20 16:38 ` Johannes Swoboda
2018-04-20 16:45 ` Palmer, Thomas
2018-04-20 16:49 ` Rebecca Cran
2018-04-24 2:13 ` Gary Lin
2018-05-24 12:52 ` Johannes Swoboda
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-list from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=020ac090-c1e9-0c73-a484-e785c1b7e423@redhat.com \
--to=devel@edk2.groups.io \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox