[lldb/crashlog] Fix scripted_crashlog_json.test failure

This patch should fix the test failure on scripted_crashlog_json.test.

The failure is happening because crash reporter will obfuscate the
executable path in the crashlog, if it is located inside the user's
home directory and replace it with `/USER/*/` as a placeholder.

To fix that, we can patch the placeholder with the executable path
before loading the crashlog in lldb.

This also fixes a bug where we would create another target when loading
the crashlog in a scripted process, even if lldb already had a target
for it. Now, crashlog will only create a target if there is none in lldb.

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

Signed-off-by: Med Ismail Bennani <medismail.bennani@gmail.com>
This commit is contained in:
Med Ismail Bennani
2022-02-25 16:31:46 -08:00
parent cb1654ee4b
commit badb6e2730
3 changed files with 11 additions and 7 deletions

View File

@@ -989,7 +989,10 @@ def load_crashlog_in_scripted_process(debugger, crash_log_file):
result.PutCString("error: python exception: %s" % e)
return
target = crashlog.create_target()
if debugger.GetNumTargets() > 0:
target = debugger.GetTargetAtIndex(0)
else:
target = crashlog.create_target()
if not target:
result.PutCString("error: couldn't create target")
return

View File

@@ -21,8 +21,8 @@
"incident" : "FA21DF23-3344-4E45-BF27-4B8E63B7012B",
"pid" : 72932,
"cpuType" : "X86-64",
"procName" : "json.test.tmp.out",
"procPath" : "\/Users\/USER\/*\/json.test.tmp.out",
"procName" : "@NAME@",
"procPath" : "@EXEC@",
"parentProc" : "fish",
"parentPid" : 67002,
"coalitionName" : "io.alacritty",

View File

@@ -21,8 +21,8 @@
"procExitAbsTime" : 6478056175721,
"translated" : false,
"cpuType" : "ARM-64",
"procName" : "scripted_crashlog_json.test.tmp.out",
"procPath" : "\/Users\/USER\/*\/scripted_crashlog_json.test.tmp.out",
"procName" : "@NAME@",
"procPath" : "@EXEC@",
"parentProc" : "zsh",
"parentPid" : 82132,
"coalitionName" : "com.apple.Terminal",
@@ -47,8 +47,9 @@
"base" : 4372692992,
"size" : 16384,
"uuid" : "b928ee77-9429-334f-ac88-41440bb3d4c7",
"path" : "\/Users\/USER\/*\/scripted_crashlog_json.test.tmp.out",
"name" : "scripted_crashlog_json.test.tmp.out"
"uuid" : "@UUID@",
"path" : "@EXEC@",
"name" : "@NAME@"
},
{
"source" : "P",