Re: [PATCH 0/3] Add support for gdb and lldb


Rebecca Cran <rebecca@...>
 

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.


Running `bt` shows the full set of frames except for the last one which as expected is shown as ??.


--

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

Join devel@edk2.groups.io to automatically receive all group messages.