diff --git a/lib/debug/config.rb b/lib/debug/config.rb index d67c4c298..eea84e8b9 100644 --- a/lib/debug/config.rb +++ b/lib/debug/config.rb @@ -59,6 +59,8 @@ def self.config end def initialize argv + @skip_all = false + if self.class.config raise 'Can not make multiple configurations in one process' end @@ -78,6 +80,14 @@ def []=(key, val) set_config(key => val) end + def skip_all + @skip_all = true + end + + def skip? + @skip_all + end + def set_config(**kw) conf = config.dup kw.each{|k, v| diff --git a/lib/debug/server_dap.rb b/lib/debug/server_dap.rb index f5d03d1a4..1651a65f2 100644 --- a/lib/debug/server_dap.rb +++ b/lib/debug/server_dap.rb @@ -18,7 +18,7 @@ def self.setup debug_port end at_exit do - CONFIG[:skip_path] = [//] # skip all + CONFIG.skip_all FileUtils.rm_rf dir if tempdir end diff --git a/lib/debug/thread_client.rb b/lib/debug/thread_client.rb index 83bf74c6d..613ba310a 100644 --- a/lib/debug/thread_client.rb +++ b/lib/debug/thread_client.rb @@ -8,7 +8,9 @@ module DEBUGGER__ module SkipPathHelper def skip_path?(path) - !path || skip_internal_path?(path) || (skip_paths = CONFIG[:skip_path]) && skip_paths.any?{|skip_path| path.match?(skip_path)} + CONFIG.skip? || !path || + skip_internal_path?(path) || + (skip_paths = CONFIG[:skip_path]) && skip_paths.any?{|skip_path| path.match?(skip_path)} end def skip_internal_path?(path)