Skip to content

Commit 3364460

Browse files
committed
Add debug logging
1 parent dd56fb8 commit 3364460

File tree

3 files changed

+35
-0
lines changed

3 files changed

+35
-0
lines changed

lib/debug/config.rb

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ module DEBUGGER__
77
ERROR: 2,
88
WARN: 3,
99
INFO: 4,
10+
DEBUG: 5
1011
}.freeze
1112

1213
CONFIG_SET = {

lib/debug/session.rb

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -203,6 +203,7 @@ def session_server_main
203203
def process_event evt
204204
# variable `@internal_info` is only used for test
205205
tc, output, ev, @internal_info, *ev_args = evt
206+
DEBUGGER__.debug_event(tc, ev, ev_args, direction: ">")
206207
output.each{|str| @ui.puts str} if ev != :suspend
207208

208209
case ev
@@ -2030,6 +2031,33 @@ def self.info msg
20302031
log :INFO, msg
20312032
end
20322033

2034+
def self.debug msg
2035+
log :DEBUG, msg
2036+
end
2037+
2038+
# to avoid computing the large number of debug strings unnecessarily
2039+
DEBUG_MODE = CONFIG[:log_level] == :DEBUG
2040+
2041+
def self.debug_event(tc, ev, ev_args, direction:)
2042+
return unless DEBUG_MODE
2043+
DEBUGGER__.debug("#{direction} Event (#{ev}): #{ev_args} | #{tc} ")
2044+
end
2045+
2046+
def self.debug_mode(tc, old_mode, new_mode)
2047+
return unless DEBUG_MODE
2048+
DEBUGGER__.debug("Mode: #{old_mode} -> #{new_mode} | #{tc}")
2049+
end
2050+
2051+
def self.debug_cmd(tc, cmd, direction:)
2052+
return unless DEBUG_MODE
2053+
DEBUGGER__.debug("#{direction} Cmd #{cmd} | #{tc}")
2054+
end
2055+
2056+
def self.debug_suspend(tc, event)
2057+
return unless DEBUG_MODE
2058+
DEBUGGER__.debug("Suspend #{event} | #{tc}")
2059+
end
2060+
20332061
def self.log level, msg
20342062
@logfile = STDERR unless defined? @logfile
20352063

lib/debug/thread_client.rb

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -106,6 +106,7 @@ def mark_as_management
106106
end
107107

108108
def set_mode mode
109+
DEBUGGER__.debug_mode(self, @mode, mode)
109110
# STDERR.puts "#{@mode} => #{mode} @ #{caller.inspect}"
110111
# pp caller
111112

@@ -176,6 +177,7 @@ def puts str = ''
176177
end
177178

178179
def << req
180+
DEBUGGER__.debug_cmd(self, req, direction: ">>")
179181
@q_cmd << req
180182
end
181183

@@ -186,6 +188,7 @@ def generate_info
186188
end
187189

188190
def event! ev, *args
191+
DEBUGGER__.debug_event(self, ev, args, direction: "<")
189192
@q_evt << [self, @output, ev, generate_info, *args]
190193
@output = []
191194
end
@@ -231,6 +234,7 @@ def on_pause
231234

232235
def suspend event, tp = nil, bp: nil, sig: nil, postmortem_frames: nil, replay_frames: nil, postmortem_exc: nil
233236
return if management?
237+
DEBUGGER__.debug_suspend(self, event)
234238

235239
@current_frame_index = 0
236240

@@ -692,6 +696,8 @@ def wait_next_action_
692696
begin
693697
set_mode :waiting if !waiting?
694698
cmds = @q_cmd.pop
699+
700+
DEBUGGER__.debug_cmd(self, cmds, direction: "<<")
695701
# pp [self, cmds: cmds]
696702
break unless cmds
697703
ensure

0 commit comments

Comments
 (0)