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>
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
"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",
"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",
"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",