]> SALOME platform Git repositories - modules/kernel.git/commitdiff
Salome HOME
[EDF31153] : Attempt to debug inside singularity container agy/31153
authorAnthony Geay <anthony.geay@edf.fr>
Fri, 11 Oct 2024 09:59:21 +0000 (11:59 +0200)
committerAnthony Geay <anthony.geay@edf.fr>
Fri, 11 Oct 2024 09:59:21 +0000 (11:59 +0200)
src/Container/salome_process_attach

index dc6356969cdb3f6fd26f42d9724a9ccd47030bb8..2656ef7f3db30170dbd3e5a2c96bfd6359efea63 100644 (file)
 # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 #
 
+# -ex bt
+# -x script.gdb
+# -nx to skip .gdbinit
+
 def GetRendezVous():
   import sys
-  if len( sys.argv ) != 2:
-      raise RuntimeError("salome_process_attach have to take a rendez-vous file")
-  return sys.argv[1]
+  if len( sys.argv ) != 3:
+      raise RuntimeError("salome_process_attach have to take a rendez-vous file and gdb script")
+  return sys.argv[1],sys.argv[2]
 
 import salome
 salome.salome_init()
-rdv = GetRendezVous()
+rdv,gdbfile = GetRendezVous()
 remoteNS = salome.naming_service.LoadIORInFile(rdv)
 remoteGlbs = salome.orb.string_to_object( remoteNS.Resolve("PID_TO_TRACK").decode() )
 import pickle
 pidToTrack = pickle.loads( remoteGlbs.getAttr("CTX0") )["pid"]
-returncode, stdout, stderr = remoteGlbs.execute(["gdb","-batch","-ex","bt","attach",str(pidToTrack)])
+returncode, stdout, stderr = remoteGlbs.execute(["gdb","-batch","-x",gdbfile,"attach",str(pidToTrack)])
 st = f"""returnCode = {returncode}
 stdout = {stdout.decode()}
 stderr = {stderr.decode()}