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
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 -- 2.30.1 (Apple Git-130) -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#78906): https://edk2.groups.io/g/devel/message/78906 Mute This Topic: https://groups.io/mt/84756249/1787277 Group Owner: devel+owner@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org] -=-=-=-=-=-=-=-=-=-=-=-
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 noticed a couple of issues though: in efi_debugging.py the Attributes text is partially underlined with the non-ASCII characters '——————' instead of '----------'. Attributes ——————---- _dict_ : dictionay There are also a couple of typos of 'dictionary': _dict_ : dictionay -- 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 > -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#79117): https://edk2.groups.io/g/devel/message/79117 Mute This Topic: https://groups.io/mt/84756249/1787277 Group Owner: devel+owner@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org] -=-=-=-=-=-=-=-=-=-=-=-
> 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 >> -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#79118): https://edk2.groups.io/g/devel/message/79118 Mute This Topic: https://groups.io/mt/84756249/1787277 Group Owner: devel+owner@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org] -=-=-=-=-=-=-=-=-=-=-=-
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 >>> -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#79128): https://edk2.groups.io/g/devel/message/79128 Mute This Topic: https://groups.io/mt/84756249/1787277 Group Owner: devel+owner@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org] -=-=-=-=-=-=-=-=-=-=-=-
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 >>>> -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#79211): https://edk2.groups.io/g/devel/message/79211 Mute This Topic: https://groups.io/mt/84756249/1787277 Group Owner: devel+owner@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org] -=-=-=-=-=-=-=-=-=-=-=-
On 8/12/21 4:56 PM, Andrew Fish wrote: > 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. On X64 running OVMF 'source efi_gdb.py' lists lots of DLLs and finished with the backtrace. On AARCH64 running SBSA-REF, I get similar output except where the backtrace at the end of 'source efi_gdb.py' output should be I get the following output: AArch64`/home/bcran/src/upstream/uefi/Build/SbsaQemu/DEBUG_GCC5/AARCH64/MdeModulePkg/Bus/Usb/UsbKbDxe/UsbKbDxe/DEBUG/UsbKbDxe.dll load = 0x101fb87d000 AArch64`/home/bcran/src/upstream/uefi/Build/SbsaQemu/DEBUG_GCC5/AARCH64/MdeModulePkg/Bus/Usb/UsbMassStorageDxe/UsbMassStorageDxe/DEBUG/UsbMassStorageDxe.dll load = 0x101fb874000 AArch64`/home/bcran/src/upstream/uefi/Build/SbsaQemu/DEBUG_GCC5/AARCH64/MdeModulePkg/Application/UiApp/UiApp/DEBUG/UiApp.dll load = 0x101f851a000 is already loaded Traceback (most recent call last): File "efi_gdb.py", line 828, in invoke self.restore_user_state() File "efi_gdb.py", line 711, in restore_user_state self.user_selected_frame.select() gdb.error: Frame is invalid. However, I can run 'bt' and get what looks like a good stack trace. With the latest code on your private branch, I still see non-ASCII characters that look out of place. e.g. In efi_debugging.py line 627, "Attributes" is underlined with a mixture of hyphen types. -- Rebecca Cran -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#79243): https://edk2.groups.io/g/devel/message/79243 Mute This Topic: https://groups.io/mt/84756249/1787277 Group Owner: devel+owner@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org] -=-=-=-=-=-=-=-=-=-=-=-
I was wondering what your plan for committing these to the repo is? It would be nice to get them committed so people can start using them. -- 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 > -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#80673): https://edk2.groups.io/g/devel/message/80673 Mute This Topic: https://groups.io/mt/84756249/1787277 Group Owner: devel+owner@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org] -=-=-=-=-=-=-=-=-=-=-=-
Sorry the patches stalled out. I need to push them…. Thanks, Andrew Fish > On Sep 14, 2021, at 4:47 PM, Rebecca Cran <rebecca@bsdio.com> wrote: > > I was wondering what your plan for committing these to the repo is? It would be nice to get them committed so people can start using them. > > > -- > Rebecca Cran > > > On 8/8/21 3:46 PM, Andrew Fish via groups.io <http://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 >> > > > > -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#80674): https://edk2.groups.io/g/devel/message/80674 Mute This Topic: https://groups.io/mt/84756249/1787277 Group Owner: devel+owner@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org] -=-=-=-=-=-=-=-=-=-=-=-
I was reminded about this work earlier today, and thought I'd remind you that the patches haven't been pushed yet. -- Rebecca Cran On 9/14/21 6:47 PM, Andrew Fish wrote: > Sorry the patches stalled out. I need to push them…. > > Thanks, > > Andrew Fish > >> On Sep 14, 2021, at 4:47 PM, Rebecca Cran <rebecca@bsdio.com >> <mailto:rebecca@bsdio.com>> wrote: >> >> I was wondering what your plan for committing these to the repo is? >> It would be nice to get them committed so people can start using them. >> >> >> -- >> Rebecca Cran >> >> >> On 8/8/21 3:46 PM, Andrew Fish viagroups.io <http://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 >>> >> >> >> >> > -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#82563): https://edk2.groups.io/g/devel/message/82563 Mute This Topic: https://groups.io/mt/84756249/1787277 Group Owner: devel+owner@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org] -=-=-=-=-=-=-=-=-=-=-=-
(cc other TianoCore stewards) With edk2-stable202111 just tagged, now would be a good time to get the patches pushed. -- Rebecca Cran On 9/14/21 18:47, Andrew Fish wrote: > Sorry the patches stalled out. I need to push them…. > > Thanks, > > Andrew Fish > >> On Sep 14, 2021, at 4:47 PM, Rebecca Cran <rebecca@bsdio.com> wrote: >> >> I was wondering what your plan for committing these to the repo is? >> It would be nice to get them committed so people can start using them. >> >> >> -- >> Rebecca Cran >> >> >> On 8/8/21 3:46 PM, Andrew Fish viagroups.io <http://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 >>> >> >> >> >> > -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#84769): https://edk2.groups.io/g/devel/message/84769 Mute This Topic: https://groups.io/mt/84756249/1787277 Group Owner: devel+owner@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org] -=-=-=-=-=-=-=-=-=-=-=-
-=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#78905): https://edk2.groups.io/g/devel/message/78905 Mute This Topic: https://groups.io/mt/84756248/1787277 Group Owner: devel+owner@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org] -=-=-=-=-=-=-=-=-=-=-=-
© 2016 - 2024 Red Hat, Inc.