diff options
| author | ruki <[email protected]> | 2020-09-13 20:00:48 +0800 |
|---|---|---|
| committer | ruki <[email protected]> | 2020-09-13 20:15:44 +0800 |
| commit | 00d7bfe8f128568671e83a41540a270b81a28c33 (patch) | |
| tree | e882fa79beeb83fe29d689a639e04f1cdf23626f | |
| parent | 87c2d2126c8767566b24c419a3352ecf87a17098 (diff) | |
detach debugger
| -rw-r--r-- | xmake/actions/run/main.lua | 2 | ||||
| -rw-r--r-- | xmake/modules/devel/debugger/run.lua | 62 |
2 files changed, 23 insertions, 41 deletions
diff --git a/xmake/actions/run/main.lua b/xmake/actions/run/main.lua index d299b397c..26bc9c2aa 100644 --- a/xmake/actions/run/main.lua +++ b/xmake/actions/run/main.lua @@ -57,7 +57,7 @@ function _do_run_target(target) -- debugging? if option.get("debug") then - debugger.run(targetfile, option.get("arguments")) + debugger.run(targetfile, option.get("arguments"), {detach = true}) else os.execv(targetfile, option.get("arguments")) end diff --git a/xmake/modules/devel/debugger/run.lua b/xmake/modules/devel/debugger/run.lua index e5b449679..ad2e4448b 100644 --- a/xmake/modules/devel/debugger/run.lua +++ b/xmake/modules/devel/debugger/run.lua @@ -32,7 +32,7 @@ import("detect.tools.find_devenv") import("detect.tools.find_vsjitdebugger") -- run gdb -function _run_gdb(program, argv) +function _run_gdb(program, argv, opt) -- find gdb local gdb = find_gdb({program = config.get("debugger")}) @@ -46,14 +46,12 @@ function _run_gdb(program, argv) table.insert(argv, 1, "--args") -- run it - os.execv(gdb, argv) - - -- ok + os.execv(gdb, argv, opt) return true end -- run cuda-gdb -function _run_cudagdb(program, argv) +function _run_cudagdb(program, argv, opt) -- find cudagdb local gdb = find_cudagdb({program = config.get("debugger")}) @@ -67,14 +65,12 @@ function _run_cudagdb(program, argv) table.insert(argv, 1, "--args") -- run it - os.execv(gdb, argv) - - -- ok + os.execv(gdb, argv, opt) return true end -- run lldb -function _run_lldb(program, argv) +function _run_lldb(program, argv, opt) -- find lldb local lldb = find_lldb({program = config.get("debugger")}) @@ -95,14 +91,12 @@ function _run_lldb(program, argv) end -- run it - os.execv(names[1], argv) - - -- ok + os.execv(names[1], argv, opt) return true end -- run windbg -function _run_windbg(program, argv) +function _run_windbg(program, argv, opt) -- find windbg local windbg = find_windbg({program = config.get("debugger")}) @@ -115,14 +109,12 @@ function _run_windbg(program, argv) table.insert(argv, 1, program) -- run it - os.execv(windbg, argv) - - -- ok + os.execv(windbg, argv, opt) return true end -- run cuda-memcheck -function _run_cudamemcheck(program, argv) +function _run_cudamemcheck(program, argv, opt) -- find cudamemcheck local cudamemcheck = find_cudamemcheck({program = config.get("debugger")}) @@ -135,14 +127,12 @@ function _run_cudamemcheck(program, argv) table.insert(argv, 1, program) -- run it - os.execv(cudamemcheck, argv) - - -- ok + os.execv(cudamemcheck, argv, opt) return true end -- run x64dbg -function _run_x64dbg(program, argv) +function _run_x64dbg(program, argv, opt) -- find x64dbg local x64dbg = find_x64dbg({program = config.get("debugger")}) @@ -155,14 +145,12 @@ function _run_x64dbg(program, argv) table.insert(argv, 1, program) -- run it - os.execv(x64dbg, argv) - - -- ok + os.execv(x64dbg, argv, opt) return true end -- run ollydbg -function _run_ollydbg(program, argv) +function _run_ollydbg(program, argv, opt) -- find ollydbg local ollydbg = find_ollydbg({program = config.get("debugger")}) @@ -175,14 +163,12 @@ function _run_ollydbg(program, argv) table.insert(argv, 1, program) -- run it - os.execv(ollydbg, argv) - - -- ok + os.execv(ollydbg, argv, opt) return true end -- run vsjitdebugger -function _run_vsjitdebugger(program, argv) +function _run_vsjitdebugger(program, argv, opt) -- find vsjitdebugger local vsjitdebugger = find_vsjitdebugger({program = config.get("debugger")}) @@ -195,14 +181,12 @@ function _run_vsjitdebugger(program, argv) table.insert(argv, 1, program) -- run it - os.execv(vsjitdebugger, argv) - - -- ok + os.execv(vsjitdebugger, argv, opt) return true end -- run devenv -function _run_devenv(program, argv) +function _run_devenv(program, argv, opt) -- find devenv local devenv = find_devenv({program = config.get("debugger")}) @@ -216,9 +200,7 @@ function _run_devenv(program, argv) table.insert(argv, 2, program) -- run it - os.execv(devenv, argv) - - -- ok + os.execv(devenv, argv, opt) return true end @@ -236,7 +218,7 @@ end -- -- @endcode -- -function main(program, argv) +function main(program, argv, opt) -- init debuggers local debuggers = @@ -265,7 +247,7 @@ function main(program, argv) local debuggername = path.basename(debugger) for _, _debugger in ipairs(debuggers) do if debuggername:startswith(_debugger[1]) then - if _debugger[2](program, argv) then + if _debugger[2](program, argv, opt) then return end end @@ -273,7 +255,7 @@ function main(program, argv) for _, _debugger in ipairs(debuggers) do if debugger:find(_debugger[1]) then - if _debugger[2](program, argv) then + if _debugger[2](program, argv, opt) then return end end @@ -281,7 +263,7 @@ function main(program, argv) else -- run debugger for _, _debugger in ipairs(debuggers) do - if _debugger[2](program, argv) then + if _debugger[2](program, argv, opt) then return end end |
