]> git.ipfire.org Git - thirdparty/binutils-gdb.git/commitdiff
Reimplement DAP's stopAtBeginningOfMainSubprogram
authorTom Tromey <tromey@adacore.com>
Thu, 21 Nov 2024 19:32:53 +0000 (12:32 -0700)
committerTom Tromey <tromey@adacore.com>
Mon, 9 Dec 2024 20:52:54 +0000 (13:52 -0700)
Right now, stopAtBeginningOfMainSubprogram is implemented "by hand",
but then later the launch function uses "starti" to implement
stopOnEntry.  This patch unifies this code and rewrites it to use
"start" when appropriate.

Reviewed-by: Kévin Le Gouguec <legouguec@adacore.com>
gdb/python/lib/gdb/dap/launch.py

index 65444bf976a03ffe6d8ff0d927dd66adf63256d1..6444c8b7b6741c4847a6c12df78685afca37847a 100644 (file)
@@ -53,17 +53,19 @@ def launch(
     if program is not None:
         file_command(program)
     inf = gdb.selected_inferior()
-    if stopAtBeginningOfMainSubprogram:
-        main = inf.main_name
-        if main is not None:
-            exec_and_log("tbreak " + main)
     inf.arguments = args
     if env is not None:
         inf.clear_env()
         for name, value in env.items():
             inf.set_env(name, value)
     expect_process("process")
-    exec_and_expect_stop("starti" if stopOnEntry else "run")
+    if stopAtBeginningOfMainSubprogram:
+        cmd = "start"
+    elif stopOnEntry:
+        cmd = "starti"
+    else:
+        cmd = "run"
+    exec_and_expect_stop(cmd)
 
 
 @request("attach")