debug.cc (5543:3af77710f397) debug.cc (5606:6da7a58b0bc8)
1/*
2 * Copyright (c) 2003-2005 The Regents of The University of Michigan
3 * All rights reserved.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions are
7 * met: redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer;

--- 42 unchanged lines hidden (view full) ---

51 cprintf("debug_break suppressed, compiled with NDEBUG\n");
52#endif
53}
54
55//
56// Debug event: place a breakpoint on the process function and
57// schedule the event to break at a particular cycle
58//
1/*
2 * Copyright (c) 2003-2005 The Regents of The University of Michigan
3 * All rights reserved.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions are
7 * met: redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer;

--- 42 unchanged lines hidden (view full) ---

51 cprintf("debug_break suppressed, compiled with NDEBUG\n");
52#endif
53}
54
55//
56// Debug event: place a breakpoint on the process function and
57// schedule the event to break at a particular cycle
58//
59class DebugBreakEvent : public Event
59struct DebugBreakEvent : public Event
60{
60{
61 public:
62
63 DebugBreakEvent(EventQueue *q, Tick _when);
64
61 DebugBreakEvent();
65 void process(); // process event
66 virtual const char *description() const;
67};
68
69//
70// constructor: schedule at specified time
71//
62 void process(); // process event
63 virtual const char *description() const;
64};
65
66//
67// constructor: schedule at specified time
68//
72DebugBreakEvent::DebugBreakEvent(EventQueue *q, Tick _when)
73 : Event(q, Debug_Break_Pri)
69DebugBreakEvent::DebugBreakEvent()
70 : Event(Debug_Break_Pri)
74{
75 setFlags(AutoDelete);
71{
72 setFlags(AutoDelete);
76 schedule(_when);
77}
78
79//
80// handle debug event: set debugger breakpoint on this function
81//
82void
83DebugBreakEvent::process()
84{

--- 9 unchanged lines hidden (view full) ---

94
95//
96// handy function to schedule DebugBreakEvent on main event queue
97// (callable from debugger)
98//
99void
100schedBreakCycle(Tick when)
101{
73}
74
75//
76// handle debug event: set debugger breakpoint on this function
77//
78void
79DebugBreakEvent::process()
80{

--- 9 unchanged lines hidden (view full) ---

90
91//
92// handy function to schedule DebugBreakEvent on main event queue
93// (callable from debugger)
94//
95void
96schedBreakCycle(Tick when)
97{
102 new DebugBreakEvent(&mainEventQueue, when);
98 mainEventQueue.schedule(new DebugBreakEvent, when);
99 warn("need to stop all queues");
103}
104
105void
106eventqDump()
107{
108 mainEventQueue.dump();
100}
101
102void
103eventqDump()
104{
105 mainEventQueue.dump();
106 warn("need to dump all queues");
109}
110
111
112int remote_gdb_base_port = 7000;
113
114int
115getRemoteGDBPort()
116{
117 return remote_gdb_base_port;
118}
119
120// Set remote GDB base port. 0 means disable remote GDB.
121// Callable from python.
122void
123setRemoteGDBPort(int port)
124{
125 remote_gdb_base_port = port;
126}
127
107}
108
109
110int remote_gdb_base_port = 7000;
111
112int
113getRemoteGDBPort()
114{
115 return remote_gdb_base_port;
116}
117
118// Set remote GDB base port. 0 means disable remote GDB.
119// Callable from python.
120void
121setRemoteGDBPort(int port)
122{
123 remote_gdb_base_port = port;
124}
125