public inbox for devel@edk2.groups.io
 help / color / mirror / Atom feed
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
>>>> 


  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