Skip to content

Commit e68aaa4

Browse files
committed
Add debug logging
1 parent bbc5831 commit e68aaa4

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
@@ -110,6 +110,7 @@ def mark_as_management
110110
end
111111

112112
def set_mode mode
113+
DEBUGGER__.debug_mode(self, @mode, mode)
113114
# STDERR.puts "#{@mode} => #{mode} @ #{caller.inspect}"
114115
# pp caller
115116

@@ -180,6 +181,7 @@ def puts str = ''
180181
end
181182

182183
def << req
184+
DEBUGGER__.debug_cmd(self, req, direction: ">>")
183185
@q_cmd << req
184186
end
185187

@@ -190,6 +192,7 @@ def generate_info
190192
end
191193

192194
def event! ev, *args
195+
DEBUGGER__.debug_event(self, ev, args, direction: "<")
193196
@q_evt << [self, @output, ev, generate_info, *args]
194197
@output = []
195198
end
@@ -235,6 +238,7 @@ def on_pause
235238

236239
def suspend event, tp = nil, bp: nil, sig: nil, postmortem_frames: nil, replay_frames: nil, postmortem_exc: nil
237240
return if management?
241+
DEBUGGER__.debug_suspend(self, event)
238242

239243
@current_frame_index = 0
240244

@@ -696,6 +700,8 @@ def wait_next_action_
696700
begin
697701
set_mode :waiting if !waiting?
698702
cmds = @q_cmd.pop
703+
704+
DEBUGGER__.debug_cmd(self, cmds, direction: "<<")
699705
# pp [self, cmds: cmds]
700706
break unless cmds
701707
ensure

0 commit comments

Comments
 (0)