]> git.saurik.com Git - apple/xnu.git/blobdiff - tools/lldbmacros/usertaskgdbserver.py
xnu-3789.1.32.tar.gz
[apple/xnu.git] / tools / lldbmacros / usertaskgdbserver.py
index 94de936f64a923fe5367260010cbae9be391ac1f..29bdc5b29a9e859d474adcc9e0a43f1c00905be2 100644 (file)
@@ -27,3 +27,20 @@ def DoUserTaskDebuggingServer(cmd_args = [], cmd_options ={}):
     if not _usertaskdebugging_availabe:
         print "You do not have the usertask debugging files available. "
         return
+    log_level = logging.ERROR
+    if '-D' in cmd_options:
+        log_level = logging.DEBUG
+    elif '-W' in cmd_options:
+        log_level = logging.WARNING 
+
+    setupLogging(debug_level=log_level)
+    if not cmd_args:
+        raise ArgumentError("Please provide valid task argument.")
+
+    t = kern.GetValueFromAddress(cmd_args[0], 'task_t')
+    
+    up = userprocess.UserProcess(t)
+    gbs = gdbserver.GDBServer(up)
+    print "Starting debug session for %s at localhost:%d." % (GetProcNameForTask(t), gbs.portnum)
+    gbs.run()
+    print "stopped the debug session"