[edk2-devel] [PATCH 0/3] Add support for gdb and lldb

Andrew Fish via groups.io afish=apple.com at groups.io
Thu Aug 12 22:56:32 UTC 2021


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 at 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 at 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/1813853
Group Owner: devel+owner at edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [edk2-devel-archive at redhat.com]
-=-=-=-=-=-=-=-=-=-=-=-






More information about the edk2-devel-archive mailing list