From: "Andrew Fish" <afish@apple.com>
To: Rebecca Cran <rebecca@nuviainc.com>
Cc: devel@edk2.groups.io
Subject: Re: [edk2-devel] [PATCH 0/3] Add support for gdb and lldb
Date: Thu, 12 Aug 2021 15:56:32 -0700 [thread overview]
Message-ID: <866F84D5-4129-4578-84EF-188A25592CCC@apple.com> (raw)
In-Reply-To: <e065fb0c-ba56-2369-65b9-8e57f1aee490@nuviainc.com>
Rebecca,
Sorry I may have been a commit or 2 behind on the private branch.
> On Aug 11, 2021, at 5:30 PM, Rebecca Cran <rebecca@nuviainc.com> wrote:
>
> I should note my comments are against https://github.com/ajfish/edk2/tree/BZ3500-gdb, not the patches you sent out.
>
> AARCH64 is working great! The only thing I noticed that doesn't look quite right is the following message on startup when running gdb -ex "target remote localhost:1234" -ex "source efi_gdb.py" -ex "efi":
>
>
> Traceback (most recent call last):
> File "efi_gdb.py", line 804, in invoke
> self.restore_user_state()
> File "efi_gdb.py", line 690, in restore_user_state
> self.user_selected_frame.select()
> gdb.error: Frame is invalid.
> Traceback (most recent call last):
> File "efi_gdb.py", line 822, in invoke
> gdb.execute('efi symbols --extended')
> gdb.error: Error occurred in Python: Frame is invalid.
> Error occurred in Python: Error occurred in Python: Frame is invalid.
>
>
Can you try again? I think I fixed this? The `efi symbols` command is saving user context, so it can restore the context. If there is not a valid target it can fail.
Also thanks for testing on AARCH64!!!!
> Running `bt` shows the full set of frames except for the last one which as expected is shown as ??.
>
I noticed the stack unwind in the gdb builds can be a little wonky at times, I had to add some code to filter out the cruft.
Thanks,
Andrew Fish
>
> --
>
> Rebecca Cran
>
>
> On 8/11/21 5:22 PM, Andrew Fish wrote:
>>
>>> On Aug 11, 2021, at 3:11 PM, Rebecca Cran <rebecca@nuviainc.com> wrote:
>>>
>>> I realized the Arm gcc 10.3 aarch64 download from https://developer.arm.com/tools-and-software/open-source-software/developer-tools/gnu-toolchain/gnu-a/downloads uses Python 2.7.18 and not Python 3, so the f-Strings and likely more cause problems. I suspect at this point there's little point putting effort into supporting Python 2.
>>>
>> I’ve not tested on ARM yet, so please let me know if it works. I’d like to avoid Python 2.7 support is possible given it is passed its best by date.
>>
>>> I noticed a couple of issues though: in efi_debugging.py the Attributes text is partially underlined with the non-ASCII characters '——————' instead of '----------'.
>>>
>> Thanks did not notice that.
>>
>>> Attributes
>>> ——————----
>>> _dict_ : dictionay
>>>
>>>
>>> There are also a couple of typos of 'dictionary':
>>>
>>>
>>> _dict_ : dictionay
>>>
>> Shoot though I fixed those
>
>
>
>
>>
>> Thanks,
>>
>> Andrew Fish
>>
>>> --
>>> Rebecca Cran
>>>
>>>
>>> On 8/8/21 3:46 PM, Andrew Fish via groups.io wrote:
>>>> This patch set adds debugging support for gdb and lldb.
>>>> It also adds generic debugging classes that use a file like object to
>>>> make it easy to import into any debugger that supports Python.
>>>>
>>>> Since these debugging scripts don't depend on any EFI code I was thinking
>>>> we could place them in the root of the repo to be easy to discover.
>>>>
>>>> I've tested gdb on Ubuntu and lldb on macOS for IA32 and X64.
>>>>
>>>> Andrew Fish (3):
>>>> efi_debugging.py: - Add debugger agnostic debugging Python Classes
>>>> efi_gdb.py: - Add gdb EFI commands and pretty Print
>>>> efi_lldb.py: - Add lldb EFI commands and pretty Print
>>>>
>>>> efi_debugging.py | 2187 ++++++++++++++++++++++++++++++++++++++++++++++
>>>> efi_gdb.py | 918 +++++++++++++++++++
>>>> efi_lldb.py | 1044 ++++++++++++++++++++++
>>>> 3 files changed, 4149 insertions(+)
>>>> create mode 100755 efi_debugging.py
>>>> create mode 100755 efi_gdb.py
>>>> create mode 100755 efi_lldb.py
>>>>
next prev parent reply other threads:[~2021-08-12 22:56 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-08-08 21:46 [PATCH 0/3] Add support for gdb and lldb Andrew Fish
2021-08-08 21:46 ` [PATCH 1/3] efi_debugging.py: - Add debugger agnostic debugging Python Classes Andrew Fish
2021-08-08 21:46 ` [PATCH 2/3] efi_gdb.py: - Add gdb EFI commands and pretty Print Andrew Fish
2021-08-08 21:46 ` [PATCH 3/3] efi_lldb.py: - Add lldb " Andrew Fish
2021-08-11 22:11 ` [edk2-devel] [PATCH 0/3] Add support for gdb and lldb Rebecca Cran
2021-08-11 23:22 ` Andrew Fish
2021-08-12 0:30 ` Rebecca Cran
2021-08-12 22:56 ` Andrew Fish [this message]
2021-08-13 5:09 ` Rebecca Cran
2021-09-14 23:47 ` Rebecca Cran
2021-09-15 0:47 ` Andrew Fish
2021-10-23 2:07 ` Rebecca Cran
2021-12-13 21:59 ` Rebecca Cran
[not found] ` <16C06F6B056C6852.12686@groups.io>
2022-01-07 2:42 ` Rebecca Cran
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=866F84D5-4129-4578-84EF-188A25592CCC@apple.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