[all-commits] [llvm/llvm-project] a5a6c0: [lldb/crashlog] Fix crash when loading non-symboli...

Med Ismail Bennani via All-commits all-commits at lists.llvm.org
Thu Jun 1 17:11:20 PDT 2023


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: a5a6c03c448ba1ab404b58673eef1f7b68498dff
      https://github.com/llvm/llvm-project/commit/a5a6c03c448ba1ab404b58673eef1f7b68498dff
  Author: Med Ismail Bennani <ismail at bennani.ma>
  Date:   2023-06-01 (Thu, 01 Jun 2023)

  Changed paths:
    M lldb/examples/python/crashlog.py

  Log Message:
  -----------
  [lldb/crashlog] Fix crash when loading non-symbolicated report

This patch should address the crashes when parsing a the crash report
frame dictionary.

If the crash report is not symbolicated, the `symbolLocation` key will
be missing. In that case, we should just use the `imageOffset`.

rdar://109836386

Differential Revision: https://reviews.llvm.org/D151844

Signed-off-by: Med Ismail Bennani <ismail at bennani.ma>


  Commit: 032d91cb2fb539a541f24558a8c61a40b1577dfd
      https://github.com/llvm/llvm-project/commit/032d91cb2fb539a541f24558a8c61a40b1577dfd
  Author: Med Ismail Bennani <ismail at bennani.ma>
  Date:   2023-06-01 (Thu, 01 Jun 2023)

  Changed paths:
    M lldb/examples/python/crashlog.py
    M lldb/source/Target/Process.cpp

  Log Message:
  -----------
  [lldb/crashlog] Create interactive crashlog with no binary

This patch changes the way we load a crash report into a scripted
process by creating a empty target.

To do so, it parses the architecture information from the report (for
both the legacy and json format) and uses that to create a target that
doesn't have any executable, like what we do when attaching to a process.

For the legacy format, we mostly rely on the `Code Type` line, since the
architure is an optional field on the `Binary Images` sections.

However for the json format, we first try to get the architecture while
parsing the image dictionary if we couldn't find it, we try to infer it
using the "flavor" key when parsing the frame's registers.

If the architecture is still not set after parsing the report, we raise
an exception.

rdar://107850263

Differential Revision: https://reviews.llvm.org/D151849

Differential

Signed-off-by: Med Ismail Bennani <ismail at bennani.ma>


Compare: https://github.com/llvm/llvm-project/compare/378f1885e353...032d91cb2fb5


More information about the All-commits mailing list