[lldb/crashlog] Fix scripted_crashlog_json.test failure
authorMed Ismail Bennani <medismail.bennani@gmail.com>
Sat, 26 Feb 2022 00:31:46 +0000 (16:31 -0800)
committerMed Ismail Bennani <medismail.bennani@gmail.com>
Sat, 26 Feb 2022 01:20:35 +0000 (17:20 -0800)
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>
lldb/examples/python/crashlog.py
lldb/test/Shell/ScriptInterpreter/Python/Crashlog/Inputs/a.out.ips
lldb/test/Shell/ScriptInterpreter/Python/Crashlog/Inputs/scripted_crashlog.ips

index 8c20fa7..9a669b5 100755 (executable)
@@ -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
index af72bba..cc2f16c 100644 (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",
index 02dbbb5..5abbc80 100644 (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",