37
|
1 |
2003-12-22 Mikhail Khodjaiants
|
|
2 |
Fix for bug 49282 terminate the gdb session if the termination of the inferior fails.
|
|
3 |
|
|
4 |
* src/org/eclipse/cdt/debug/mi/core/cdi/model/Target.java
|
|
5 |
|
|
6 |
2003-12-22 Mikhail Khodjaiants
|
|
7 |
Fix for Bug 49278 do not retry the "info threads" command if the first attempt fails.
|
|
8 |
Throw an exception from the "getCThreads" method when it fails.
|
|
9 |
|
|
10 |
* src/org/eclipse/cdt/debug/mi/core/cdi/model/Target.java
|
|
11 |
|
|
12 |
2003-12-18 Alain Magloire
|
|
13 |
|
|
14 |
PR 49148
|
|
15 |
Set environment variable value to give the program.
|
|
16 |
Arguments are VAR VALUE where VAR is variable name and VALUE is value.
|
|
17 |
VALUES of environment variables are uninterpreted strings.
|
|
18 |
This does not affect the program until the next "run" command.
|
|
19 |
|
|
20 |
So pass the string raw.
|
|
21 |
|
|
22 |
* src/org/eclipse/cdt/debug/mi/core/command/MIGDBSetEnvironment.java
|
|
23 |
* src/org/eclipse/cdt/debug/mi/core/cdi/RuntimeOptions.java
|
|
24 |
* src/org/eclipse/cdt/debug/mi/core/CommandFactory.java
|
|
25 |
|
|
26 |
2003-12-17 Mikhail Khodjaiants
|
|
27 |
|
|
28 |
Fix for bug 49061: Different values are used as default for the "Load shared library symbols automatically" option.
|
|
29 |
|
|
30 |
* src/org/eclipse/cdt/debug/mi/core/GDBDebugger.java
|
|
31 |
* src/org/eclipse/cdt/debug/mi/core/GDBServerDebugger.java
|
|
32 |
* src/org/eclipse/cdt/debug/mi/core/IMILaunchConfigurationConstants.java
|
|
33 |
* src/org/eclipse/cdt/debug/mi/core/CygwinGDBDebugger.java
|
|
34 |
|
|
35 |
2003-12-16 Mikhail Khodjaiants
|
|
36 |
|
|
37 |
Show the gdb arguments when tracing.
|
|
38 |
|
|
39 |
* src/org/eclipse/cdt/debug/mi/core/MIPlugin.java
|
|
40 |
|
|
41 |
2003-12-16 Mikhail Khodjaiants
|
|
42 |
|
|
43 |
Fix for PR 48870: Terminate gdb if attach to process fails.
|
|
44 |
|
|
45 |
* src/org/eclipse/cdt/debug/mi/core/MIPlugin.java
|
|
46 |
|
|
47 |
2003-12-09 Alain Magloire
|
|
48 |
|
|
49 |
Do not try to interrupt if the target was suspended.
|
|
50 |
|
|
51 |
* src/org/eclipse/cdt/debug/mi/core/MIInferior.java
|
|
52 |
|
|
53 |
2003-12-08 Alain Magloire
|
|
54 |
|
|
55 |
Target.terminate() did not pass the exception up.
|
|
56 |
Added new method MIInferior.terminate().
|
|
57 |
|
|
58 |
* src/org/eclipse/cdt/debug/mi/core/MIInferior.java
|
|
59 |
* src/org/eclipse/cdt/debug/mi/core/cdi/model/Target.java
|
|
60 |
|
|
61 |
2003-12-02 Alain Magloire
|
|
62 |
|
|
63 |
Retry the stack-info-depth when it fails the first time
|
|
64 |
and decrement the count. GDB can cope up the second try
|
|
65 |
and probably mark the thread invalid.
|
|
66 |
Patch base on Ashish Karkare patch:
|
|
67 |
|
|
68 |
* src/org/eclipse/cdt/debug/mi/core/cdi/model/Thread.java
|
|
69 |
|
|
70 |
2003-11-26 Mikhail Khodjaiants
|
|
71 |
Cleanup.
|
|
72 |
|
|
73 |
* src/org/eclipse/cdt/debug/mi/core/cdi/model/Variable.java
|
|
74 |
* src/org/eclipse/cdt/debug/mi/core/GDBTypeParser.java
|
|
75 |
|
|
76 |
2003-11-26 Mikhail Khodjaiants
|
|
77 |
Cleanup.
|
|
78 |
|
|
79 |
* src/org/eclipse/cdt/debug/mi/core/GDBDebugger.java
|
|
80 |
* src/org/eclipse/cdt/debug/mi/core/GDBServerDebugger.java
|
|
81 |
* src/org/eclipse/cdt/debug/mi/core/CygwinGDBDebugger.java
|
|
82 |
* src/org/eclipse/cdt/debug/mi/core/cdi/BreakpointManager.java
|
|
83 |
* src/org/eclipse/cdt/debug/mi/core/cdi/event/ResumedEvent.java
|
|
84 |
* src/org/eclipse/cdt/debug/mi/core/cdi/model/Target.java
|
|
85 |
* src/org/eclipse/cdt/debug/mi/core/command/MIBreakAfter.java
|
|
86 |
* src/org/eclipse/cdt/debug/mi/core/event/MIFunctionFinishedEvent.java
|
|
87 |
* src/org/eclipse/cdt/debug/mi/core/event/MIInferiorSignalExitEvent.java
|
|
88 |
* src/org/eclipse/cdt/debug/mi/core/event/MISignalEvent.java
|
|
89 |
* src/org/eclipse/cdt/debug/mi/core/event/MIWatchpointTriggerEvent.java
|
|
90 |
* src/org/eclipse/cdt/debug/mi/core/output/MIGDBShowDirectoriesInfo.java
|
|
91 |
* src/org/eclipse/cdt/debug/mi/core/output/MIGDBShowSolibSearchPathInfo.java
|
|
92 |
* src/org/eclipse/cdt/debug/mi/core/output/MIList.java
|
|
93 |
|
|
94 |
2003-11-25 Alain Magloire
|
|
95 |
|
|
96 |
Process the suspend event even if there is not threads
|
|
97 |
or stack associated with the target.
|
|
98 |
|
|
99 |
* src/org/eclipse/cdt/debug/mi/core/cdi/EventManager.java
|
|
100 |
|
|
101 |
2003-11-22 Alain Magloire
|
|
102 |
|
|
103 |
In MISession constructor if the initialization fails shutdown
|
|
104 |
the Tx/RX/Event threads.
|
|
105 |
In MIPlugin if the initialization fails shutdown the pty console.
|
|
106 |
Ditto for GDBDebugger/GDBServerDebugger/CygwinGDBDebugger.
|
|
107 |
|
|
108 |
* src/org/eclipse/cdt/debug/mi/core/MIPlugin.java
|
|
109 |
* src/org/eclipse/cdt/debug/mi/core/MISession.java
|
|
110 |
* src/org/eclipse/cdt/debug/mi/core/GDBDebugger.java
|
|
111 |
* src/org/eclipse/cdt/debug/mi/core/GDBServerDebugger.java
|
|
112 |
* src/org/eclipse/cdt/debug/mi/core/CygwinGDBDebugger.java
|
|
113 |
|
|
114 |
2003-11-21 Alain Magloire
|
|
115 |
|
|
116 |
The wrong MIPlugin.createCSession() method was used.
|
|
117 |
Problem noted by Ashish.
|
|
118 |
|
|
119 |
* src/org/eclipse/cdt/debug/mi/core/GDBServerDebugger.java
|
|
120 |
|
|
121 |
2003-11-21 Mikhail Khodjaiants
|
|
122 |
|
|
123 |
* src/org/eclipse/cdt/debug/mi/core/output/MIFrame.java
|
|
124 |
Fix for PR 46592: Debug View shows Functions as func(type param,...)().
|
|
125 |
Return an empty string instead of "??" if the function name is not available.
|
|
126 |
|
|
127 |
2003-11-20 Alain Magloire
|
|
128 |
|
|
129 |
Fix NPE: 46313. Setting breakpoint when the target was running
|
|
130 |
was throwing NPE.
|
|
131 |
|
|
132 |
* src/org/eclipse/cdt/debug/mi/core/cdi/BreakpointManager.java
|
|
133 |
* src/org/eclipse/cdt/debug/mi/core/cdit/EventManager.java
|
|
134 |
|
|
135 |
2003-11-19 Mikhail Khodjaiants
|
|
136 |
|
|
137 |
Fix for PR 45533: MIException while creating MISession can leave an orphan gdb process.
|
|
138 |
* src/org/eclipse/cdt/debug/mi/core/MIPlugin.java: removed the 'getAdjustedTimeout' method.
|
|
139 |
|
|
140 |
2003-11-19 Mikhail Khodjaiants
|
|
141 |
|
|
142 |
Fix for PR 45533: MIException while creating MISession can leave an orphan gdb process.
|
|
143 |
* src/org/eclipse/cdt/debug/mi/core/MIPlugin.java: initialization of preferences by default values.
|
|
144 |
* src/org/eclipse/cdt/debug/mi/core/MISession.java: removed the duplicate constant for the default
|
|
145 |
launch timeout value.
|
|
146 |
|
|
147 |
2003-11-13 Mikhail Khodjaiants
|
|
148 |
|
|
149 |
* src/org/eclipse/cdt/debug/mi/core/output/MIFrame.java
|
|
150 |
Fix for PR 46592: Debug View shows Functions as func(type param,...)().
|
|
151 |
In some situations gdb returns the function names that include parameter types.
|
|
152 |
To make the presentation consistent truncate the parameters.
|
|
153 |
|
|
154 |
2003-11-06 Alain Magloire
|
|
155 |
|
|
156 |
* src/org/eclipse/cdt/debug/mi/core/cdi/EventManager.java:
|
|
157 |
Small fix for the defferred breakpoint support.
|
|
158 |
|
|
159 |
2003-11-06 Alain Magloire
|
|
160 |
|
|
161 |
Patch from Ashish Karkare:
|
|
162 |
A CDT 1.2 patch that enables setting of
|
|
163 |
serial line speed in the launch configuration when debugging remote targets.
|
|
164 |
|
|
165 |
* src/org/eclipse/cdt/debug/mi/core/IGDBServerMILaunchConfigurationConstants.java
|
|
166 |
New attribute definition DEV_SPEED.
|
|
167 |
|
|
168 |
* src/org/eclipse/cdt/debug/mi/core/GDBServerDebugger.java
|
|
169 |
Extracts serial speed value and passes it to createCSession().
|
|
170 |
|
|
171 |
|
|
172 |
2003-10-29 Alain Magloire
|
|
173 |
|
|
174 |
Deal with PR 45533
|
|
175 |
|
|
176 |
Make a preferenc for Timeout and use it when launching
|
|
177 |
the ICDebugger session, when way wait for for gdb
|
|
178 |
to say "ready" by returning the prompt.
|
|
179 |
|
|
180 |
* src/org/eclipse/cdt/debug/mi/core/MISession.java
|
|
181 |
* src/org/eclipse/cdt/debug/mi/core/MIPlugin.java
|
|
182 |
* src/org/eclipse/cdt/debug/mi/core/IMIConstants.java
|
|
183 |
|
|
184 |
2003-10-17 Alain Magloire
|
|
185 |
|
|
186 |
Put the framework to deal with deferred breakpoint.
|
|
187 |
|
|
188 |
* src/org/eclipse/cdt/debug/mi/core/cdi/event/ResumeEvent.java
|
|
189 |
Deal with MIRunningEvent.RETURN.
|
|
190 |
* src/org/eclipse/cdt/debug/mi/core/cdi/model/Breakpoint.java
|
|
191 |
Check if MIBreakpoint is null first.
|
|
192 |
* src/org/eclipse/cdt/debug/mi/core/cdi/model/Watchpoint.java
|
|
193 |
Check if MIWathchpoint is null first.
|
|
194 |
* src/org/eclipse/cdt/debug/mi/core/cdi/BreakpointManager.java
|
|
195 |
Implement Deferred Breakpoint
|
|
196 |
* src/org/eclipse/cdt/debug/mi/core/cdi/SharedLibraryManager.java
|
|
197 |
Implement Deferred Breakpoint
|
|
198 |
* src/org/eclipse/cdt/debug/mi/core/GDBDebugger.java
|
|
199 |
Enable deferredBreakpoint.
|
|
200 |
* src/org/eclipse/cdt/debug/mi/core/CygwinDebugger.java
|
|
201 |
Enable deferredBreakpoint.
|
|
202 |
|
|
203 |
|
|
204 |
2003-10-07 Mikhail Khodjaiants
|
|
205 |
|
|
206 |
All methods of 'IRuntimeOptions' should throw CDI exceptions in case of failure.
|
|
207 |
* src/org/eclipse/cdt/debug/mi/core/cdi/RuntimeOptions.java
|
|
208 |
|
|
209 |
2003-09-30 Alain Magloire
|
|
210 |
|
|
211 |
ICDIVariableObject.equals();
|
|
212 |
|
|
213 |
* src/org/eclipse/cdt/debug/mi/core/cdi/model/VariableObject.java
|
|
214 |
|
|
215 |
2003-09-29 Mikhail Khodjaiants
|
|
216 |
Added the initialization of the shared libraries' attributes to CygwinGDBDebugger.
|
|
217 |
|
|
218 |
* src/org/eclipse/cdt/debug/mi/core/CygwinGDBDebugger.java
|
|
219 |
|
|
220 |
2003-09-26 Alain Magloire
|
|
221 |
|
|
222 |
Second part of PR 43496.
|
|
223 |
On the startup of GDB, we have to wait for "(gdb)" prompt
|
|
224 |
to make sure that gdb is ready to accept command.
|
|
225 |
|
|
226 |
* src/org/eclipse/cdt/debug/mi/core/MIPlugin.java
|
|
227 |
|
|
228 |
2003-09-25 Alain Magloire
|
|
229 |
|
|
230 |
Fix for PR 43496.
|
|
231 |
In the event of an error we should Process.destroy()
|
|
232 |
after creating the Process.
|
|
233 |
|
|
234 |
* src/org/eclipse/cdt/debug/mi/core/MIPlugin.java
|
|
235 |
|
|
236 |
2003-09-11 Mikhail Khodjaiants
|
|
237 |
Moving the shared library search paths block to mi UI.
|
|
238 |
* IMILaunchConfigurationConstants.java: added the 'ATTR_DEBUGGER_SOLIB_PATH' attribute.
|
|
239 |
|
|
240 |
2003-09-11 Alain Magloire
|
|
241 |
|
|
242 |
Fix to info shared parsing.
|
|
243 |
|
|
244 |
* src/org/eclipse/cdt/debug/mi/core/output/MIInfoSharedLibary.java
|
|
245 |
|
|
246 |
2003-09-09 Mikhail Khodjaiants
|
|
247 |
Regrouping the launch configuration constants.
|
|
248 |
* IMILaunchConfigurationConstants.java
|
|
249 |
|
|
250 |
2003-09-09 Mikhail Khodjaiants
|
|
251 |
Added the 'stop-on-solib-events' option.
|
|
252 |
Changed the initialization of the shared library search path.
|
|
253 |
Changed the messages of the thrown exceptions.
|
|
254 |
* GDBDebugger.java
|
|
255 |
|
|
256 |
2003-09-09 Mikhail Khodjaiants
|
|
257 |
|
|
258 |
CoreFileConfiguration supports shared libraries.
|
|
259 |
|
|
260 |
* src/org/eclipse/cdt/debug/mi/core/cdi/CoreFileConfiguration.java
|
|
261 |
|
|
262 |
2003-08-30 Alain Magloire
|
|
263 |
|
|
264 |
Unnecessary synchronization making deadlocks. Should revisit this code.
|
|
265 |
|
|
266 |
* src/org/eclipse/cdt/debug/mi/core/MIInferior.java
|
|
267 |
|
|
268 |
2003-08-29 Mikhail Khodjaiants
|
|
269 |
|
|
270 |
Added new command - 'set stop-on-solib-events'.
|
|
271 |
|
|
272 |
* src/org/eclipse/cdt/debug/mi/core/command/MIGDBSetStopOnSolibEvents.java
|
|
273 |
* src/org/eclipse/cdt/debug/mi/core/command/CommandFactory.java
|
|
274 |
|
|
275 |
Implementation of the new methods added to the 'ICDISharedLibraryManager' interface.
|
|
276 |
|
|
277 |
* src/org/eclipse/cdt/debug/mi/core/cdi/SharedLibraryManager.java
|
|
278 |
|
|
279 |
2003-08-26 Alain Magloire
|
|
280 |
|
|
281 |
This is still a hack: "info shared" the real solution
|
|
282 |
is to implement in GDB/MI the corresponding command.
|
|
283 |
So now we do weird parsing, that varies from platform
|
|
284 |
to platform. For example Cygwin output of "info shared"
|
|
285 |
is totally different from the GNU/Linux one etc ...
|
|
286 |
We the best we can to cope ... but things will break.
|
|
287 |
|
|
288 |
* src/org/eclipse.cdt/debug/mi/core/output/MIInfoSharedLibraryInfo.java
|
|
289 |
|
|
290 |
2003-08-26 Alain Magloire
|
|
291 |
|
|
292 |
Using the wrong method for toString() and we were returning
|
|
293 |
a overly verbose string.
|
|
294 |
|
|
295 |
* src/org/eclipse/cdt/debug/mi/core/GDBTypeParser.java
|
|
296 |
|
|
297 |
2003-08-25 Alain Magloire
|
|
298 |
|
|
299 |
Small fix, get the datatype for the GDBTypeParser.
|
|
300 |
|
|
301 |
* src/org/eclipse/cdt/debug/mi/core/cdi/SourceManager.java
|
|
302 |
|
|
303 |
2003-08-22 Alain Magloire
|
|
304 |
|
|
305 |
For casting array we use the "@" format, hide it in
|
|
306 |
the name. But show it the qualifiedName() since the
|
|
307 |
expression is use to evaluate.
|
|
308 |
|
|
309 |
* src/org/eclipse/cdt/debug/mi/core/cdi/model/Variable.java
|
|
310 |
* src/org/eclipse/cdt/debug/mi/core/cdi/model/VariableObject.java
|
|
311 |
* src/org/eclipse/cdt/debug/mi/core/cdi/VariableManager.java
|
|
312 |
|
|
313 |
2003-08-21 Alain Magloire
|
|
314 |
|
|
315 |
GDB varobj for the arrays children name only returns
|
|
316 |
the index. We need to construct the entire name:
|
|
317 |
char buffer[2]
|
|
318 |
GDB return "0", "1" for the children names.
|
|
319 |
We will return
|
|
320 |
"buffer[0]", "buffer[1]"
|
|
321 |
|
|
322 |
* src/org/eclipse/cdt/debug/mi/core/cdi/Variable.java
|
|
323 |
|
|
324 |
2003-08-20 Alain Magloire
|
|
325 |
|
|
326 |
GDB/MI altough define an interface that all commands should
|
|
327 |
follow .. they do not. For example, we should be able
|
|
328 |
to separate options from agument with a "--" string not
|
|
329 |
all commands. The latest is -break-condition.
|
|
330 |
So we override the MICommand.toString() to do specific
|
|
331 |
parsing for specific commands.
|
|
332 |
|
|
333 |
* src/org/eclipse/cdt/debug/mi/core/command/MICommand.java
|
|
334 |
break the toString() method.
|
|
335 |
* src/org/eclipse/cdt/debug/mi/core/command/MIBreakCondition.java
|
|
336 |
|
|
337 |
2003-08-19 Alain Magloire
|
|
338 |
|
|
339 |
Fix to the GDBTypeParser to deal with gdb
|
|
340 |
awkwardness
|
|
341 |
* src/org/eclipse/cdt/debug/mi/core/GDBTypeParser.java
|
|
342 |
|
|
343 |
2003-08-19 Alain Magloire
|
|
344 |
|
|
345 |
GDB, uses false category for C++ class/struct.
|
|
346 |
Fix to return the correct name.
|
|
347 |
|
|
348 |
* src/org/eclipse/cdt/debug/mi/core/cdi/model/Variable.java
|
|
349 |
|
|
350 |
2003-08-18 Alain Magloire
|
|
351 |
|
|
352 |
Patch from Chris Songer, excerpt from the email.
|
|
353 |
Using the phrase "To ensure consistency between a register name and its
|
|
354 |
number, the output list may include empty register names," the MI protocol
|
|
355 |
appears to allow gdb to return a "sparse" array of registers by giving a 0
|
|
356 |
length name in response to the -data-list-register-names-command. CDT 1.0.1
|
|
357 |
does not handle this especially well and subsequently exposes a bug in GDB
|
|
358 |
5.1.3 and crashes it if the debugger has more than 3 register names of 0
|
|
359 |
length.
|
|
360 |
|
|
361 |
example:
|
|
362 |
|
|
363 |
8-data-list-register-names
|
|
364 |
(gdb)
|
|
365 |
8^done,register-names=["ar0","ar1",... ,"","","","","","","ur0",\
|
|
366 |
"ur1","ur2","ur3","ur4","ur5","ur6","ur7","","" ..]
|
|
367 |
|
|
368 |
|
|
369 |
* src/org/eclipse/cdt/debug/mi/core/output/MIDataListRegisterNamesInfo.java:
|
|
370 |
New method getNumRealNames().
|
|
371 |
* src/org/eclipse/cdt/debug/mi/core/cdi/RegisterManager.java:
|
|
372 |
Check if the register name is not empty.
|
|
373 |
|
|
374 |
2003-08-18 Alain Magloire
|
|
375 |
|
|
376 |
From the manual:
|
|
377 |
By default GDB will automatically keep track of objects as they are
|
|
378 |
loaded and unloaded by the dynamic linker. By using the command `set
|
|
379 |
stop-on-solib-events 1' you can arrange for GDB to stop the inferior
|
|
380 |
when shared library events occur, thus allowing you to set breakpoints
|
|
381 |
in shared libraries which are explicitly loaded by the inferior.
|
|
382 |
|
|
383 |
* src/org/eclipse/cdt/debug/mi/core/event/MISharedLibEvent.java:
|
|
384 |
New file, StoppedEvent du to shared lib events.
|
|
385 |
* src/org/eclipse/cdt/debug/mi/core/cdi/event/SuspendedEvent.java:
|
|
386 |
Catch MISharedLibEvent.
|
|
387 |
* src/org/eclipse/cdt/debug/mi/core/cdi/SharedLibraryevent.java:
|
|
388 |
New file implements ICDISharedLibaryEvent.
|
|
389 |
* src/org/eclipse/cdt/debug/mi/core/RxThread.java:
|
|
390 |
Hack to catch suspend/stop on shared library.
|
|
391 |
|
|
392 |
2003-08-11 Mikhail Khodjaiants
|
|
393 |
* src/org/eclipse/cdt/debug/mi/core/cdi/model/type/ArrayValue.java:
|
|
394 |
* src/org/eclipse/cdt/debug/mi/core/cdi/VariableManager.java:
|
|
395 |
Removed the 'type' parameter from the 'getVariableObjectAsArray' method.
|
|
396 |
|
|
397 |
2003-08-11 Mikhail Khodjaiants
|
|
398 |
* src/org/eclipse/cdt/debug/mi/core/cdi/model/type/ArrayValue.java:
|
|
399 |
The 'type' argument of the 'getVariableObjectAsArray' method shouldn't be null.
|
|
400 |
|
|
401 |
2003-08-11 Mikhail Khodjaiants
|
|
402 |
* src/org/eclipse/cdt/debug/mi/core/cdi/variableManager.java
|
|
403 |
Mistype in the 'CheckType' method.
|
|
404 |
|
|
405 |
2003-08-07 Alain Magloire
|
|
406 |
|
|
407 |
* src/org/eclipse/cdt/debug/mi/core/cdi/variableManager.java
|
|
408 |
getVariableObjectAsArray() ignore the type argument it does
|
|
409 |
not work with gdb.
|
|
410 |
|
|
411 |
* src/org/eclipse/cdt/debug/mi/core/cdi/model/VariableObject.java
|
|
412 |
Added hasChildren() method.
|
|
413 |
|
|
414 |
2003-08-07 Alain Magloire
|
|
415 |
|
|
416 |
* src/org/eclipse/cdt/debug/mi/core/cdi/VariableManager.java:
|
|
417 |
Update the interface to reflect ICDIVariableManager.
|
|
418 |
|
|
419 |
2003-08-06 Mikhail Khodjaiants
|
|
420 |
* src/org/eclipse/cdt/debug/mi/core/cdi/model/type/ArrayValue.java:
|
|
421 |
Removed the unused local variable 'children' from the 'getVariables' method.
|
|
422 |
|
|
423 |
2003-08-07 Alain Magloire
|
|
424 |
|
|
425 |
PR 38964.
|
|
426 |
|
|
427 |
* src/org/eclipse/cdt/debug/mi/core/MIInferior.java:
|
|
428 |
The method interrupted was synchronized and so was the
|
|
429 |
setSuspended(). Now do a notify when the status change.
|
|
430 |
Throw an exception if the interrupt() failed.
|
|
431 |
* src/org/eclipse/cdt/debug/mi/core/cdi/model/Target.java:
|
|
432 |
Do not check for running.
|
|
433 |
|
|
434 |
2003-08-06 Alain Magloire
|
|
435 |
|
|
436 |
Dealing with casting: Casting a field of a structure did not
|
|
437 |
work properly for example:
|
|
438 |
struct foo { int bar; } foobar;
|
|
439 |
To cast the field bar, we need to construct the full qualified
|
|
440 |
name "foobar.bar".
|
|
441 |
Unfortunately for C++ things are hectic in the GDB/MI world
|
|
442 |
the childre of structure are not the fields. So we try to
|
|
443 |
deal with it too.
|
|
444 |
|
|
445 |
* src/org/eclipse/cdt/debug/mi/core/cdi/model/Variable.java:
|
|
446 |
New constructor, new method getLanguage() to deal with
|
|
447 |
different type of languages ex: C vs C++.
|
|
448 |
* src/org/eclipse/cdt/debug/mi/core/cdi/model/VariableObject.java:
|
|
449 |
Clean up and added a bunch of set/getXXX() methods instead of
|
|
450 |
accessing directly the fields.
|
|
451 |
* src/og/eclipse/cdt/debug/mi/core/cdi/VariableManager.java:
|
|
452 |
Clean the methods use for casting and format the indentation.
|
|
453 |
* src/org/eclipse/cdt/debug/mi/core/command/MIVarInfoExpression.java:
|
|
454 |
Added parsing method.
|
|
455 |
|
|
456 |
2003-08-06 Alain Magloire
|
|
457 |
|
|
458 |
* src/org/eclipse/cdt/debug/mi/core/cdi/model/VariableObject.java:
|
|
459 |
Implement isEditable method.
|
|
460 |
|
|
461 |
2003-08-06 Mikhail Khodjaiants
|
|
462 |
* src/org/eclipse/cdt/debug/mi/core/cdi/model/Variable.java:
|
|
463 |
Fix for 'isEditable'.
|
|
464 |
* src/org/eclipse/cdt/debug/mi/core/cdi/model/VariableObject.java:
|
|
465 |
Use correct expression in 'sizeof'.
|
|
466 |
|
|
467 |
2003-08-06 Alain Magloire
|
|
468 |
|
|
469 |
First framework to deal with breaking the arrays in ranges.
|
|
470 |
|
|
471 |
* src/org/eclipse/cdt/debug/mi/core/cdi/model/Argument.java:
|
|
472 |
Remove unused getArgumentObject().
|
|
473 |
* src/org/eclipse/cdt/debug/mi/core/cdi/model/Register.java:
|
|
474 |
Remove unuse getRegisterObject().
|
|
475 |
* src/org/eclipse/cdt/debug/mi/core/cdi/model/Variable.java:
|
|
476 |
Move methods to VariableObject to comply with the interface.
|
|
477 |
* src/org/eclipse/cdt/debug/mi/core/cdi/model/VariableObject.java:
|
|
478 |
Implement new methods of ICDIVariableObject.java
|
|
479 |
Save the castin information.
|
|
480 |
* src/org/eclipse/cdt/debug/mi/core/cdi/model/type/ArrayValue.java:
|
|
481 |
New method getVariables(int, int).
|
|
482 |
* src/org/eclipse/cdt/debug/mi/core/cdi/VariableManager.java:
|
|
483 |
New method encodeVariable(), to get the encode specific string
|
|
484 |
for gdb casting of arrays.
|
|
485 |
|
|
486 |
2003-07-28 Mikhail Khodjaiants
|
|
487 |
|
|
488 |
Minimize the number of the "evaluate expression" requests when changing the value of the floating point types.
|
|
489 |
|
|
490 |
* src/org/eclipse/cdt/debug/mi/core/cdi/model/type/FloatingPointValue.java
|
|
491 |
|
|
492 |
2003-07-17 Alain Magloire
|
|
493 |
|
|
494 |
Catch the use of cli command "detach" and fire the appropriate events.
|
|
495 |
|
|
496 |
* src/org/eclipse/cdt/debug/mi/core/CLIProcessor.java
|
|
497 |
|
|
498 |
2003-07-16 Alain Magloire
|
|
499 |
|
|
500 |
Provide FunctionValue, PointerValue and ArrayValue.
|
|
501 |
For ArrayValue apply the patch from Chris Songer, excerpt from
|
|
502 |
his email:
|
|
503 |
Given GDB performance, we saw CDT start to time out on large array
|
|
504 |
requests. The following patch corrects this by scaling the time out with
|
|
505 |
the number of children being retrieved. I have not looked at the head on
|
|
506 |
this so your mileage may vary. On 1.0.1 with this and the MIParser change
|
|
507 |
you can open 16k arrays.
|
|
508 |
|
|
509 |
* src/org/eclipse/cdt/debug/mi/core/cdi/model/type/AggregateValue.java
|
|
510 |
* src/org/eclipse/cdt/debug/mi/core/cdi/model/type/DerivedValue.java
|
|
511 |
* src/org/eclipse/cdt/debug/mi/core/cdi/model/type/PointerValue.java
|
|
512 |
* src/org/eclipse/cdt/debug/mi/core/cdi/model/type/ReferenceValueValue.java
|
|
513 |
* src/org/eclipse/cdt/debug/mi/core/cdi/model/type/ArrayValue.java
|
|
514 |
* src/org/eclipse/cdt/debug/mi/core/cdi/model/type/StructValue.java
|
|
515 |
* src/org/eclipse/cdt/debug/mi/core/cdi/model/Value.java
|
|
516 |
* src/org/eclipse/cdt/debug/mi/core/cdi/model/Variable.java
|
|
517 |
|
|
518 |
2003-07-10 Alain Magloire
|
|
519 |
|
|
520 |
In the case of not having a PTY to unmixed inferior output from gdb commands
|
|
521 |
do the only sane thing and when a response comes in that is not a valid
|
|
522 |
MI format consider it as inferior output.
|
|
523 |
|
|
524 |
* src/org/eclipse/cdt/debug/mi/core/output/MIParser.java:
|
|
525 |
Put non valid lines in the TargetStream.
|
|
526 |
* src/org/eclipse/cdt/debug/mi/core/MIInferior.java:
|
|
527 |
Pass output straight to the target.
|
|
528 |
* src/org/eclipse/cdt/debug/mi/core/TxThread.java:
|
|
529 |
Remove unused code.
|
|
530 |
* src/org/eclipse/cdt/debug/mi/core/command/Command.java:
|
|
531 |
Try to remove duplicate errors when throwing the MIException.
|
|
532 |
|
|
533 |
2003-07-08 Alain Magloire
|
|
534 |
|
|
535 |
Unfortunately GDB/MI does not make the errors available via the advertise
|
|
536 |
way explain in the documentation, for example:
|
|
537 |
27-var-create - * this->aaa
|
|
538 |
&"There is no member or method named aaa.\n"
|
|
539 |
&"Type Hello has no component named aaa.\n"
|
|
540 |
27^error,msg="."
|
|
541 |
|
|
542 |
According to the doc, the error should be available in the msg field:
|
|
543 |
27^error,msg="There is no member or method named aaaa"
|
|
544 |
|
|
545 |
Since this will not be fix in GDB/MI anytime soon, we cope with it by
|
|
546 |
grabing the logstream error and make it available in
|
|
547 |
|
|
548 |
CDIException.getDetailedMesssage().
|
|
549 |
|
|
550 |
* src/org/eclipse/cdt/debug/mi/core/command/*.java: All the commands
|
|
551 |
changed to grab also the logstream messages if any for the exception.
|
|
552 |
|
|
553 |
2003-06-25 Alain Magloire
|
|
554 |
|
|
555 |
Patch from Chris Songer, excerpt from its email:
|
|
556 |
The MIParser is O(N^2) time in the length of a line returned from GDB.
|
|
557 |
While not an issue for OOB messages, this can be quite an issue for array
|
|
558 |
retrieval from the target and other potentially long messages. It's N^2
|
|
559 |
because it relies on StringBuffer.deleteCharAt( 0 ) and
|
|
560 |
StringBuffer.delete( 0, X ). These operations appear to do a copy of the
|
|
561 |
remaining data in the Sun Java library rather than bumping some index.
|
|
562 |
|
|
563 |
The following diffs are code that we are using on 1.0.1 to correct this
|
|
564 |
issue. It's relatively new, so there may be some bugs but has certainly
|
|
565 |
performed just fine in our initial regressions. Because of that I'm not
|
|
566 |
sending it in as a patch, more an FYI really. The basic change is exactly
|
|
567 |
what you'd expect: these diffs make MIParser use a new type of string
|
|
568 |
buffer that's quite efficient at deleting from the head of the array.
|
|
569 |
|
|
570 |
* src/org/eclipse/cdt/debug/mi/core/output/MIParser.java
|
|
571 |
|
|
572 |
2003-06-18 Alain Magloire
|
|
573 |
|
|
574 |
* src/org/eclipse/cdt/debug/mi/core/cdi/event/ChangedEvent.java:
|
|
575 |
Check if the variable was a register.
|
|
576 |
* src/org/eclipse/cdt/debug/mi/core/cdi/event/CreatedEvent.java:
|
|
577 |
Cleanup.
|
|
578 |
* src/org/eclipse/cdt/debug/mi/core/cdi/model/Register.java:
|
|
579 |
Removing of method {get,set}Value() and new method getChildren().
|
|
580 |
* src/org/eclipse/cdt/debug/mi/core/cdi/model/Variable.java
|
|
581 |
(setValue): calls update on the appropriate manager.
|
|
582 |
* src/org/eclipse/cdt/debug/mi/core/cdi/model/RegisterValue.java:
|
|
583 |
Remove file, unused.
|
|
584 |
* src/org/eclipse/cdt/debug/mi/core/cdi/VariableManager.java:
|
|
585 |
(getVariableObjectAsType): check for register.
|
|
586 |
(getVariableObjectAsArray): check for register.
|
|
587 |
* src/org/eclipse/cdt/debug/mi/core/cdi/RegisterManager.java:
|
|
588 |
(getRegister): reimplemented.
|
|
589 |
|
|
590 |
2003-06-18 Mikhail Khodjaiants
|
|
591 |
Removed unused local variable.
|
|
592 |
* src/org/eclipse/cdt/debug/mi/core/cdi/RegisterManager.java
|
|
593 |
|
|
594 |
2003-06-17 Alain Magloire
|
|
595 |
|
|
596 |
PR 38934
|
|
597 |
* src/org/eclipse/cdt/debug/mi/core/cdi/RegisterManager.java (update):
|
|
598 |
We have to call "-var-update" to update the register values in gdb.
|
|
599 |
|
|
600 |
2003-06-05 Mikhail Khodjaiants
|
|
601 |
gdb/mi support of infinite values of the floating point types.
|
|
602 |
* DoubleValue.java
|
|
603 |
* FloatingPointValue.java
|
|
604 |
* FloatValue.java
|
|
605 |
|
|
606 |
2003-06-05 Mikhail Khodjaiants
|
|
607 |
Removed the redundant methods from the 'ICDIFloatingPointValue' interface.
|
|
608 |
* src/org/eclipse/cdt/debug/mi/core/cdi/model/type/FloatingPointValue.java
|
|
609 |
|
|
610 |
2003-06-04 Mikhail Khodjaiants
|
|
611 |
Correction in the parsing of reference value.
|
|
612 |
* src/org/eclipse/cdt/debug/mi/core/cdi/model/type/ReferenceValue.java
|
|
613 |
|
|
614 |
2003-06-04 Mikhail Khodjaiants
|
|
615 |
Added some missing types and methods for the type parsing.
|
|
616 |
* src/org/eclipse/cdt/debug/mi/core/cdi/model/Variable.java
|
|
617 |
* src/org/eclipse/cdt/debug/mi/core/cdi/model/type/ArrayType.java
|
|
618 |
* src/org/eclipse/cdt/debug/mi/core/cdi/model/type/DoubleValue.java
|
|
619 |
* src/org/eclipse/cdt/debug/mi/core/cdi/model/type/FloatingPointValue.java
|
|
620 |
* src/org/eclipse/cdt/debug/mi/core/cdi/model/type/FloatValue.java
|
|
621 |
* src/org/eclipse/cdt/debug/mi/core/cdi/model/type/PointerValue.java: new
|
|
622 |
* src/org/eclipse/cdt/debug/mi/core/cdi/model/type/ReferenceValue.java: new
|
|
623 |
|
|
624 |
2003-06-03 Alain Magloire
|
|
625 |
|
|
626 |
* src/org/eclipse/cdt/debug/mi/core/GDBTypeParser.java:
|
|
627 |
Bug fix gdb returns fix like "char [200]" no variables.
|
|
628 |
|
|
629 |
2003-06-03 Alain Magloire
|
|
630 |
|
|
631 |
* src/org/eclipse/cdt/debug/mi/core/cdi/SourceManager.java
|
|
632 |
(getType): save the head of the type for the return value.
|
|
633 |
|
|
634 |
2003-06-02 Alain Magloire
|
|
635 |
|
|
636 |
Enable the new type parsing with the class GDBTypeParser.
|
|
637 |
This class takes the output of GDB/MI
|
|
638 |
(gdb) whatis
|
|
639 |
or
|
|
640 |
(gdb) ptype
|
|
641 |
And parse it.
|
|
642 |
|
|
643 |
* src/org/eclipse/cdt/debug/mi/core/cdi/model/type/ArrayType.java
|
|
644 |
* src/org/eclipse/cdt/debug/mi/core/cdi/model/type/DerivedType.java
|
|
645 |
* src/org/eclipse/cdt/debug/mi/core/cdi/model/type/PointerType.java
|
|
646 |
* src/org/eclipse/cdt/debug/mi/core/cdi/model/type/FunctionType.java
|
|
647 |
* src/org/eclipse/cdt/debug/mi/core/cdi/SourceManager.java
|
|
648 |
* src/org/eclipse/cdt/debug/mi/core/GDBTypeParser.java
|
|
649 |
|
|
650 |
2003-05-25 Alain Magloire
|
|
651 |
|
|
652 |
Do extra parsing.
|
|
653 |
* src/org/eclipse/cdt/debug/mi/core/model/type/ArrayType.java
|
|
654 |
* src/org/eclipse/cdt/debug/mi/core/model/type/DerivedType.java
|
|
655 |
* src/org/eclipse/cdt/debug/mi/core/model/type/PointerType.java
|
|
656 |
* src/org/eclipse/cdt/debug/mi/core/model/type/FunctionType.java
|
|
657 |
* src/org/eclipse/cdt/debug/mi/core/model/Variable.java
|
|
658 |
|
|
659 |
2003-05-24 Alain Magloire
|
|
660 |
|
|
661 |
* src/org/eclipse/cdt/debug/mi/core/cdi/StackFrame.java
|
|
662 |
When execption reset the variable to null and rethrow the exception.
|
|
663 |
|
|
664 |
2003-05-24 Alain Magloire
|
|
665 |
|
|
666 |
Continuing the implementation of types.
|
|
667 |
ICDIType is ICDIObject.
|
|
668 |
* src/org/eclispe/cdt/mi/core/cdi/model/type/Type.java:
|
|
669 |
Extends CObject
|
|
670 |
|
|
671 |
2003-05-23 Alain Magloire
|
|
672 |
|
|
673 |
Draft implementation of org.eclipse.cdt.debug.core.cdi.model.type/*
|
|
674 |
|
|
675 |
2003-05-06 Alain Magloire
|
|
676 |
|
|
677 |
* src/org/eclipse/cdt/debug/mi/core/cdi/model/Thread.java (suspend):
|
|
678 |
Suspend the program before selecting the thread.
|
|
679 |
|
|
680 |
2003-05-01 Mikhail Khodjaiants
|
|
681 |
Implementations of the new "terminateSessionOnExit" method of ICDIConfiguration.
|
|
682 |
* Configuration.java
|
|
683 |
* CoreFileConfiguration.java
|
|
684 |
|
|
685 |
2003-04-30 Alain Magloire
|
|
686 |
|
|
687 |
* src/org/eclipse/cdt/debug/mi/core/MIPlugin.java:
|
|
688 |
Call MIInferior.update() if attaching session.
|
|
689 |
|
|
690 |
2003-04-30 Alain Magloire
|
|
691 |
|
|
692 |
* src/org/eclipse/cdt/debug/mi/core/cdi/Configuration.java (supportsTerminate):
|
|
693 |
Returns true.
|
|
694 |
|
|
695 |
2003-04-25 Alain Magloire
|
|
696 |
|
|
697 |
* src/org/eclipse/cdt/debug/mi/core/EventManager.java (update):
|
|
698 |
Remove the call to MIInferior.update(), wrong place.
|
|
699 |
* src/org/eclipse/cdt/debug/mi/core/EventThread.java (run):
|
|
700 |
Call MIInferior.update() when suspended.
|
|
701 |
* src/org/eclipse/cdt/debug/mi/core/MIInferior.java (update):
|
|
702 |
Do not do the call to "info program" for type "attached" sessions.
|
|
703 |
* src/org/eclipse/cdt/debug/mi/core/MISession.java (terminate):
|
|
704 |
When terminate() is call disable posting commands to the queue etc...
|
|
705 |
|
|
706 |
2003-04-25 Mikhail Khodjaiants
|
|
707 |
|
|
708 |
Fix for bug 36909.
|
|
709 |
* MIFrame.java:
|
|
710 |
gdb returns "??" as a function name if symbols are not available.
|
|
711 |
Set the function name in this case to "";
|
|
712 |
|
|
713 |
2003-04-24 Alain Magloire
|
|
714 |
|
|
715 |
* src/org/eclipse/cdt/debug/mi/core/command/CommandFactory.java (createMIInfoProgram):
|
|
716 |
New method.
|
|
717 |
* src/org/eclipse/cdt/debug/mi/core/command/MIInfoProgram.java:
|
|
718 |
New file, "info program".
|
|
719 |
* src/org/eclipse/cdt/debug/mi/core/output/MIInfoProgramInfo.java:
|
|
720 |
New file, parsing of "info Program".
|
|
721 |
* src/org/eclipse/cdt/debug/mi/core/output/EventManager.java (processSuspend):
|
|
722 |
Call MIInferio.update();
|
|
723 |
* src/org/eclipse/cdt/debug/mi/core/MIInferior.java (update):
|
|
724 |
New method to retrieve the pid.
|
|
725 |
(interrupt): Try doing Spawner.raise(pid, INT) as a fallback.
|
|
726 |
* src/org/eclipse/cdt/debug/mi/core/cdi/Configuration.java (supportSuspend):
|
|
727 |
Bug fix.
|
|
728 |
|
|
729 |
2003-04-23 Alain Magloire
|
|
730 |
|
|
731 |
* src/org/eclipse/cdt/debug/mi/core/cdi/SignalManager.java (update):
|
|
732 |
Move the creation of the list after the call to "info signals".
|
|
733 |
The call may fail.
|
|
734 |
|
|
735 |
2003-04-21 Alain Magloire
|
|
736 |
|
|
737 |
* src/org/eclipse/cdt/debug/mi/core/cdi/Target.java (suspend):
|
|
738 |
Remove the delay of 10 secs.
|
|
739 |
* src/org/eclipse/cdt/debug/mi/core/MIInferior.java (interrupt):
|
|
740 |
Do a delay of 10 secs to allow time for the inferior to stop.
|
|
741 |
* src/org/eclipse/cdt/debug/mi/core/MISession.java (terminate) :
|
|
742 |
Clear the EventQueue, if we restart.
|
|
743 |
* src/org/eclipse/cdt/debug/mi/core/Queue (isEmpty):
|
|
744 |
New method.
|
|
745 |
|
|
746 |
2003-04-21 Alain Magloire
|
|
747 |
|
|
748 |
* src/org/eclipse/cdt/debug/mi/core/GDBDebugger.java:
|
|
749 |
* src/org/eclipse/cdt/debug/mi/core/GDBServerDebugger.java:
|
|
750 |
Ignore exception when doing "set auto-solib-path on".
|
|
751 |
|
|
752 |
2003-04-17 Alain Magloire
|
|
753 |
|
|
754 |
* src/org/eclipse/cdt/debug/mi/core/cdi/model/Target.java:
|
|
755 |
setCurrentThread(), calls VariableManager.update();
|
|
756 |
* src/org/eclipse/cdt/debug/micore/cdt/model/Thread.java:
|
|
757 |
setCurrentStackFrame() calls VariableManager.update();
|
|
758 |
|
|
759 |
2003-04-07 Mikhail Khodjaiants
|
|
760 |
Changed the messages of CDI exceptions.
|
|
761 |
* MISession.java
|
|
762 |
* Target.java
|
|
763 |
|
|
764 |
2003-04-04 Alain Magloire
|
|
765 |
|
|
766 |
Code from Monta Vista to add a Session via GDBServer.
|
|
767 |
|
|
768 |
* src/org/eclipse/cdt/debug/mi/core/MIPlugin.java:
|
|
769 |
* src/org/eclipse/cdt/debug/mi/core/GDBServerDebugger.java:
|
|
770 |
* src/org/eclipse/cdt/debug/mi/core/IGDBServerMILaunchConfigurationConstants.java:
|
|
771 |
* plugin.xml
|
|
772 |
|
|
773 |
2003-04-04 Alain Magloire
|
|
774 |
|
|
775 |
* src/org/eclipse/cdt/debug/mi/core/cdt/VariableManager.java:
|
|
776 |
Check for null in update().
|
|
777 |
|
|
778 |
2003-04-03 Alain Magloire
|
|
779 |
|
|
780 |
* src/org/eclipse/cdt/debug/mi/core/cdt/VariableManager.java:
|
|
781 |
update(), put a limit on the number of stack we check for variables.
|
|
782 |
|
|
783 |
2003-04-03 Alain Magloire
|
|
784 |
|
|
785 |
* src/org/eclipse/cdt/debug/mi/core/cdt/model/Target.java:
|
|
786 |
* src/org/eclipse/cdt/debug/mi/core/cdt/model/Thread.java:
|
|
787 |
Before updating the register check if the manager is on autoupdate.
|
|
788 |
|
|
789 |
2003-04-02 Alain Magloire
|
|
790 |
|
|
791 |
* src/org/eclipse/cdt/debug/mi/core/cdt/model/Target.java:
|
|
792 |
suspend() sync for at least < 10 seconds to allow the gdb to
|
|
793 |
suspend via SIGINT the program.
|
|
794 |
|
|
795 |
2003-03-28 Mikhail Khodjaiants
|
|
796 |
Added time stamp to the trace messages.
|
|
797 |
* MIPlugin.java
|
|
798 |
|
|
799 |
2003-03-28 Mikhail Khodjaiants
|
|
800 |
Correction of the previous patch.
|
|
801 |
* MIAsm.java
|
|
802 |
|
|
803 |
2003-03-27 Mikhail Khodjaiants
|
|
804 |
Applied patch from Chris Songer: Assembly View Fixups
|
|
805 |
* Instruction.java
|
|
806 |
* MIAsm.java
|
|
807 |
|
|
808 |
2003-03-19 Alain Magloire
|
|
809 |
|
|
810 |
Some applications, like recursive code, have a very deep stackframes
|
|
811 |
bigger > 50. This can turn out to be a problem, as the VariableManager
|
|
812 |
will try to update all the variables and there can be a lot of local
|
|
813 |
variable in all those stackframes. We can not use:
|
|
814 |
"-var-update *"
|
|
815 |
either since on gdb-5.2.1, for reasons unknown to me this will make
|
|
816 |
gdb unstable/crash. So the approach is to only update variables
|
|
817 |
in the current stackframe.
|
|
818 |
The advantage we only update a small set of variables.
|
|
819 |
The downside if we have side effects i.e. pointers pass to
|
|
820 |
argument and modifying the pointer affect the callees memory.
|
|
821 |
But this is a small price to pay and usually C/C++ programmer
|
|
822 |
are interrested to see changes of variables in the current stack
|
|
823 |
not changes 20 stack before.
|
|
824 |
|
|
825 |
* src/org/eclipse/cdt/debug/mi/core/cdi/VariableManager.java:
|
|
826 |
Method update() only check the variable in the scope of the
|
|
827 |
current stackframe(the highest stack). This will include
|
|
828 |
any globals.
|
|
829 |
|
|
830 |
2003-03-19 Alain Magloire
|
|
831 |
|
|
832 |
Base on PR/patch from Chris Songer.
|
|
833 |
Assigning a value to a register may have side-effects
|
|
834 |
on other registers. When assigning, the action is now
|
|
835 |
to upate again the values. The same for the variables.
|
|
836 |
|
|
837 |
* src/org/eclipse/cdt/debug/mi/core/cdi/model/Variable.java:
|
|
838 |
* src/org/eclipse/cdt/debug/mi/core/cdi/model/Register.java:
|
|
839 |
Method setValue() calls manager.update() after the assignment.
|
|
840 |
|
|
841 |
2003-03-17 Alain Magloire
|
|
842 |
|
|
843 |
* src/org/eclipse/cdt/debug/mi/core/cdi/model/StackFrame.java:
|
|
844 |
getArguments() and getLocalVariable() are caching the results.
|
|
845 |
|
|
846 |
2003-03-16 Alain Magloire
|
|
847 |
|
|
848 |
GDB/MI does not keep the stack level, from what we expect. In gdb, the
|
|
849 |
highest stack is level 0 and lower stack as the highest level:
|
|
850 |
-stack-list-frames
|
|
851 |
^done,stack=[frame={level="0 ",addr="0x0804845b",func="main",file="hello.c",line="24"},
|
|
852 |
frame={level="1 ",addr="0x42017499",func="__libc_start_main",from="/lib/i686/libc.so.6"}]
|
|
853 |
|
|
854 |
-stack-list-frames
|
|
855 |
^done,stack=[frame={level="0 ",addr="0x08048556",func="main2",file="hello.c",line="58"},
|
|
856 |
frame={level="1 ",addr="0x08048501",func="main",file="hello.c",line="41"},
|
|
857 |
frame={level="2 ",addr="0x42017499",func="__libc_start_main",from="/lib/i686/libc.so.6"}]
|
|
858 |
|
|
859 |
This is of no use to us since the level is always "0". The level is necessary for example when
|
|
860 |
doing recursive calls to make a distinction between frames.
|
|
861 |
So in CDT this reverse the hidghest frame will have the highest number. In CDT:
|
|
862 |
stack=[frame={level="2 ",addr="0x0804845b",func="main",file="hello.c",line="24"},
|
|
863 |
frame={level="1 ",addr="0x42017499",func="__libc_start_main",from="/lib/i686/libc.so.6"}]
|
|
864 |
|
|
865 |
stack=[frame={level="3 ",addr="0x08048556",func="main2",file="hello.c",line="58"},
|
|
866 |
frame={level="2 ",addr="0x08048501",func="main",file="hello.c",line="41"},
|
|
867 |
frame={level="1 ",addr="0x42017499",func="__libc_start_main",from="/lib/i686/libc.so.6"}]
|
|
868 |
|
|
869 |
|
|
870 |
* src/org/eclipse/cdt/debug/mi/core/cdi/model/StackFrame.java:
|
|
871 |
Takes a new Argument in the constructor, the level.
|
|
872 |
* src/org/eclipse/cdt/debug/mi/core/cdi/model/Threawd.java:
|
|
873 |
Create the StackFrame with the constructor.
|
|
874 |
* src/org/eclipse/cdt/debug/mi/core/cdi/Location.java:
|
|
875 |
Fix equals().
|
|
876 |
* src/org/eclipse/cdt/debug/mi/core/cdi/VariableManager.java:
|
|
877 |
Use the right level when setting the frame.
|
|
878 |
|
|
879 |
2003-03-14 Alain Magloire
|
|
880 |
|
|
881 |
* src/org/eclipse/cdt/debug/mi/core/cdi/model/Argument.java:
|
|
882 |
New method getArgumentObject().
|
|
883 |
* src/org/eclipse/cdt/debug/mi/core/cdi/model/Register.java:
|
|
884 |
New method getRegisterObject().
|
|
885 |
* src/org/eclipse/cdt/debug/mi/core/cdi/VariableManager.java:
|
|
886 |
Checks for ICDIVariable and ICDIArgument since they are now ICDIVariableObject too.
|
|
887 |
* src/org/eclipse/cdt/debug/mi/core/cdi/RegisterManager.java:
|
|
888 |
Checks for ICDIRegister when creating since they are now ICDIRegisterObject too.
|
|
889 |
|
|
890 |
2003-03-13 Alain Magloire
|
|
891 |
|
|
892 |
Small bug fix
|
|
893 |
* src/org/eclipse/cdt/debug/mi/core/cdi/VariableManager.java
|
|
894 |
|
|
895 |
2003-03-13 Alain Magloire
|
|
896 |
|
|
897 |
* src/org/eclipse/cdt/debug/mi/core/cdi/VariableManager.java:
|
|
898 |
New method getLocalVariableObjects() implemented returns all the local.
|
|
899 |
* src/org/eclipse/cdt/debug/mi/core/cdi/model/StackFrame.java
|
|
900 |
getLocalVariables() use getLocalVariableObjects().
|
|
901 |
* src/org/eclipse/cdt/debug/mi/core/cdi/model/Variable.java:
|
|
902 |
getName() does not longer throw an Exception.
|
|
903 |
|
|
904 |
2003-03-11 Alain Magloire
|
|
905 |
|
|
906 |
* src/org/eclipse/cdt/debug/mi/core/cdi/VariableManager.java:
|
|
907 |
New methods getVariableObjectAsArray() getVariableObjectAsType().
|
|
908 |
|
|
909 |
2003-03-03 Alain Magloire
|
|
910 |
|
|
911 |
* src/org/eclipse/cdt/debug/mi/core/CommandQueue.java (print): Comment out.
|
|
912 |
* src/org/eclipse/cdt/debug/mi/core/Queue.java (print): Comment out.
|
|
913 |
|
|
914 |
2003-02-12 Mikhail Khodjaiants
|
|
915 |
The 'setAutoSolib' method is no longer in ICDISharedLibraryManager.
|
|
916 |
* GDBDebugger.java
|
|
917 |
|
|
918 |
2003-02-12 Alain Magloire
|
|
919 |
|
|
920 |
* src/org/eclipse/cdt/debug/mi/core/cdi/model/Target.java:
|
|
921 |
Removed getRegisterObjects(), getRegisters(), getSharedLibraries().
|
|
922 |
Those actions are done via the managers.
|
|
923 |
|
|
924 |
* src/org/eclipse/cdt/debug/mi/core/cdi/model/Variable.java (getChild):
|
|
925 |
Check the grand children also.
|
|
926 |
|
|
927 |
2003-02-12 Alain Magloire
|
|
928 |
|
|
929 |
* src/org/eclipse/cdt/debug/mi/core/cdi/SharedLibraryManager.java (isAutoLoadSymbols):
|
|
930 |
New method.
|
|
931 |
* src/org/eclipse/cdt/deb/mi/core/command/MIGDBShow.java (getMIGDBShowInfo):
|
|
932 |
New method.
|
|
933 |
|
|
934 |
2003-02-12 Alain Magloire
|
|
935 |
|
|
936 |
* src/org/eclipse/cdt/debug/mi/core/cdi/event/ChangedEvent.java (ChangedEvent):
|
|
937 |
Returns a Variable.
|
|
938 |
* src/org/eclipse/cdt/debug/mi/core/cdi/event/DestroyedEvent.java (DestroyedEvent):
|
|
939 |
Check if it was an expression also.
|
|
940 |
* src/org/eclipse/cdt/debug/mi/core/cdi/model/Value.java (getVariables):
|
|
941 |
Calls the parent's implementation.
|
|
942 |
* src/org/eclipse/cdt/debug/mi/core/cdi/model/Variable.java (getVariables):
|
|
943 |
New implementation.
|
|
944 |
* src/org/eclipse/cdt/debug/mi/core/cdi/EventManager.java (update):
|
|
945 |
Deal with new MIVarDeleteEvent.
|
|
946 |
* src/org/eclipse/cdt/debug/mi/core/cdi/ExpressionManager.java (addExpression):
|
|
947 |
Removed.
|
|
948 |
(removeExpression): New method.
|
|
949 |
* src/org/eclipse/cdt/debug/mi/core/event/MIVarChangedEvent.java (getScope):
|
|
950 |
removed.
|
|
951 |
* src/org/eclipse/cdt/debug/mi/core/event/MIVarDeletedEvent.java:
|
|
952 |
New file.
|
|
953 |
|
|
954 |
2003-02-09 Alain Magloire
|
|
955 |
|
|
956 |
in GDB/MI 5.3 and below, the -data-list-register-xxx can bring gdb down with
|
|
957 |
an assert(). The problem is that code like this
|
|
958 |
ui_out_list_begin();
|
|
959 |
for () {
|
|
960 |
if(error)
|
|
961 |
return ERROR;
|
|
962 |
}
|
|
963 |
ui_out_list_end();
|
|
964 |
The ui_out_list_end() is never call.
|
|
965 |
However gdb offers the varobj to deal cleanly with register but calling
|
|
966 |
"-var-update *" seems to make gdb misbehave and hang after a while.
|
|
967 |
So we use a mixed of -data-list-register-xxx calls and var-object to deal
|
|
968 |
with registers and do not call "-var-update *" but rather call it for
|
|
969 |
each time for individual objects to see the updates.
|
|
970 |
|
|
971 |
* src/org/eclipse/cdt/debug/mi/core/cdi/model/Register.java:
|
|
972 |
Reimplemented to use the var obj.
|
|
973 |
* src/org/eclipse/cdt/debug/mi/core/cdi/model/RegisterValue.java:
|
|
974 |
New file implement ICDIValue.
|
|
975 |
* src/org/eclipse/cdt/debug/mi/core/cdi/EventManagero.java (processSuspendedEvent):
|
|
976 |
Call each manager.update().
|
|
977 |
* src/org/eclipse/cdt/debug/mi/core/cdi/ExpressionManager.java (update):
|
|
978 |
Reimplemented.
|
|
979 |
* src/org/eclipse/cdt/debug/mi/core/cdi/RegisterManager.java (update):
|
|
980 |
Reimplemented
|
|
981 |
* src/org/eclipse/cdt/debug/mi/core/cdi/UpdateManager.java:
|
|
982 |
Removed.
|
|
983 |
* src/org/eclipse/cdt/debug/mi/core/cdi/IUpdateListener.java:
|
|
984 |
Removed.
|
|
985 |
* src/org/eclipse/cdt/debug/mi/core/CLIProcessor.java:
|
|
986 |
Catch the cli "run" command.
|
|
987 |
|
|
988 |
2003-02-06 Alain Magloire
|
|
989 |
|
|
990 |
* src/org/eclipse/cdt/debug/mi/core/cdi/VariableManager.java (getVariableArrayObject):
|
|
991 |
New Method to type cast in an array.
|
|
992 |
* src/org/eclipse/cdt/debug/mi/core/cdi/model/VariableObject.java (VariableObject):
|
|
993 |
New constructor.
|
|
994 |
* src/org/eclipse/cdt/debug/mi/core/cdi/SignalManger.java(getSignal):
|
|
995 |
Return an signal object even when the session is terminated.
|
|
996 |
|
|
997 |
2003-02-05 Alain Magloire
|
|
998 |
|
|
999 |
* src/org/eclipse/cdt/debug/mi/core/command/MISignal.java:
|
|
1000 |
* src/org/eclipse/cdt/debug/mi/core/command/MIJump.java:
|
|
1001 |
Return a fake ^running, since the MI semantic is not respected.
|
|
1002 |
|
|
1003 |
2003-02-04 Alain Magloire
|
|
1004 |
|
|
1005 |
* src/org/eclipse/cdt/debug/mi/core/CLICommand.java:
|
|
1006 |
Catch cli command "jump"
|
|
1007 |
|
|
1008 |
2003-02-04 Alain Magloire
|
|
1009 |
|
|
1010 |
* src/org/eclipse/cdt/debug/mi/core/cdi/model/Target.java:
|
|
1011 |
* src/org/eclipse/cdt/debug/mi/core/cdi/model/Thread.java:
|
|
1012 |
New implementation for signal(), jump, and stepReturn(boolean).
|
|
1013 |
* src/org/eclipse/cdt/debug/mi/core/cdi/model/Signal.java:
|
|
1014 |
(signal): Calls Target.signal().
|
|
1015 |
* src/org/eclipse/cdt/debug/mi/core/cdi/model/SignalManager.java:
|
|
1016 |
(signal): Method removed.
|
|
1017 |
* src/org/eclipse/cdt/debug/mi/core/command/MIJump.java:
|
|
1018 |
New file.
|
|
1019 |
* src/org/eclipse/cdt/debug/mi/core/command/CommandFactory.java:
|
|
1020 |
New method creteMIJump().
|
|
1021 |
|
|
1022 |
2003-02-04 Alain Magloire
|
|
1023 |
|
|
1024 |
* src/org/eclipse/cdt/debug/mi/core/cdi/SignalManger.java:
|
|
1025 |
Implement signal() method.
|
|
1026 |
* src/org/eclipse/cdt/debug/mi/core/command/MISignal.java:
|
|
1027 |
New file.
|
|
1028 |
* src/org/eclipse/cdt/debug/mi/core/command/CommandFactory.java:
|
|
1029 |
(createMISignal): new method.
|
|
1030 |
|
|
1031 |
2003-02-04 Alain Magloire
|
|
1032 |
|
|
1033 |
* src/org/eclipse/cdt/debug/mi/core/cdi/event/ExitedEvent.java:
|
|
1034 |
Catch MIInferiorSignalExitEvent.
|
|
1035 |
* src/org/eclipse/cdt/debug/mi/core/cdi/event/ExitedEvent.java:
|
|
1036 |
Catch MIInferiorSignalExitEvent.
|
|
1037 |
* src/org/eclipse/cdt/debug/mi/core/cdi/SignalExitInfo.java:
|
|
1038 |
New File.
|
|
1039 |
* src/org/eclipse/cdt/debug/mi/core/event/MIInferiorSignalExitEvent.java:
|
|
1040 |
New File
|
|
1041 |
* src/org/eclipse/cdt/debug/mi/core/event/CLIProcessir.java:
|
|
1042 |
"signal" command is like continue.
|
|
1043 |
* src/org/eclipse/cdt/debug/mi/core/event/RxThread.java:
|
|
1044 |
Catch MIInferiorSignalExitEvent.
|
|
1045 |
|
|
1046 |
2003-02-04 Alain Magloire
|
|
1047 |
|
|
1048 |
Refactor MISignal in MISigHandle to not confus with
|
|
1049 |
CLI command "signal SIGNAL".
|
|
1050 |
|
|
1051 |
* src/org/eclipse/cdt/debug/mi/core/cdi/model/Signal.java:
|
|
1052 |
* src/org/eclipse/cdt/debug/mi/core/cdi/SignalManager.java:
|
|
1053 |
* src/org/eclipse/cdt/debug/mi/core/output/MIInfoSignalsInfo.java:
|
|
1054 |
* src/org/eclipse/cdt/debug/mi/core/output/MISigHandle.java:
|
|
1055 |
|
|
1056 |
2003-02-03 Alain Magloire
|
|
1057 |
|
|
1058 |
* src/org/eclipse/cdt/debug/mi/core/cdi/SharedLibraryManager.java:
|
|
1059 |
(loadSymbols): set the read flag to true.
|
|
1060 |
* src/org/eclipse/cdt/debug/mi/core/cdi/model/SharedLibrary.java:
|
|
1061 |
(getMIShared): New method.
|
|
1062 |
* src/org/eclipse/cdt/debug/mi/core/output/MIShared.java:
|
|
1063 |
(setSymbolsRead): New method.
|
|
1064 |
|
|
1065 |
2003-02-01 Alain Magloire
|
|
1066 |
|
|
1067 |
* src/org/eclipse/cdt/debug/mi/core/cdi/event/ChangedEvent.java:
|
|
1068 |
Support for ICDISignal event.
|
|
1069 |
* src/org/eclipse/cdt/debug/mi/core/cdi/model/Signal.java (handle):
|
|
1070 |
Implemented.
|
|
1071 |
* src/org/eclipse/cdt/debug/mi/core/cdi/EventManager.java (update):
|
|
1072 |
Support for ICDISignal event.
|
|
1073 |
* src/org/eclipse/cdt/debug/mi/core/cdi/SignalManager.java (handle):
|
|
1074 |
New method.
|
|
1075 |
* src/org/eclipse/cdt/debug/mi/core/command/CommandFactory.java (createMIHandle):
|
|
1076 |
New method
|
|
1077 |
* src/org/eclipse/cdt/debug/mi/core/command/MIHandle.java:
|
|
1078 |
New File.
|
|
1079 |
* src/org/eclipse/cdt/debug/mi/core/CLICommand.java:
|
|
1080 |
Check for "handle" and "signal" cli command.
|
|
1081 |
|
|
1082 |
2003-01-31 Alain Magloire
|
|
1083 |
|
|
1084 |
* src/org/eclipse/cdt/debug/mi/core/cdi/event/DestroyedEvent.java:
|
|
1085 |
Use deleteSharedLibrary from the manager.
|
|
1086 |
* src/org/eclipse/cdt/debug/mi/core/cdi/signal/Signal.java:
|
|
1087 |
Construct a signal base on the MISignal response.
|
|
1088 |
* src/org/eclipse/cdt/debug/mi/core/cdi/BreakpointManager.java
|
|
1089 |
(suspendedInferior): Take ICDITarget as argument.
|
|
1090 |
(resumeInferior): Take ICDITarget as argument.
|
|
1091 |
* src/org/eclipse/cdt/debug/mi/core/cdi/SharedLibraryManager.java
|
|
1092 |
(containsSharedLibrary): removed.
|
|
1093 |
* src/org/eclipse/cdt/debug/mi/core/cdi/SignalManager.java
|
|
1094 |
(update): implemented.
|
|
1095 |
(getSignals): implemented.
|
|
1096 |
* src/org/eclipse/cdt/debug/mi/core/cdi/SignalReceived.java:
|
|
1097 |
Ask the manager for the signal.
|
|
1098 |
* src/org/eclipse/cdt/debug/mi/core/event/MISignalEvent.java:
|
|
1099 |
New file.
|
|
1100 |
|
|
1101 |
2003-01-29 Alain Magloire
|
|
1102 |
|
|
1103 |
* src/org/eclipse/cdt/debug/mi/core/cdi/SharedLibraryManager.java (getSharedLibraryPaths):
|
|
1104 |
New method.
|
|
1105 |
(setSharedLibraryPaths): New method.
|
|
1106 |
(setAutoLoadSymbols): New methos set autosolib.
|
|
1107 |
* src/org/eclipse/cdt/debug/mi/core/cdi/SourceManager.java (setAutoSolib):
|
|
1108 |
Move to SharedLibraryManager.java
|
|
1109 |
|
|
1110 |
2003-01-28 Alain Magloire
|
|
1111 |
|
|
1112 |
* src/org/eclipse/cdt/debug/mi/core/command/MIInfoSignals.java:
|
|
1113 |
* src/org/eclipse/cdt/debug/mi/core/output/MIInfoSignalsInfo.java:
|
|
1114 |
* src/org/eclipse/cdt/debug/mi/core/output/MISignal.java:
|
|
1115 |
New files.
|
|
1116 |
|
|
1117 |
2003-01-28 Alain Magloire
|
|
1118 |
|
|
1119 |
* src/org/eclipse/cdt/debug/mi/core/cdi/model/ArgumentObject.java:
|
|
1120 |
Use ICDIStackFrame in the constructor.
|
|
1121 |
* src/org/eclipse/cdt/debug/mi/core/cdi/model/RegisterObject.java:
|
|
1122 |
Use ICDIStackFrame in the constructor.
|
|
1123 |
* src/org/eclipse/cdt/debug/mi/core/cdi/model/VariableObject.java:
|
|
1124 |
Use ICDIStackFrame in the constructor.
|
|
1125 |
* src/org/eclipse/cdt/debug/mi/core/cdi/model/Value.java (getVariables):
|
|
1126 |
No need to cast to StackFrame.
|
|
1127 |
* src/org/eclipse/cdt/debug/mi/core/cdi/model/Thread.java (setCurrentFrame):
|
|
1128 |
Implement new method, takes a boolean as the second method.
|
|
1129 |
* src/org/eclipse/cdt/debug/mi/core/cdi/ExpressionManager.java:
|
|
1130 |
No need to cast to StackFrame.
|
|
1131 |
* src/org/eclipse/cdt/debug/mi/core/cdi/VariableManager.java:
|
|
1132 |
No need to cast to StackFrame.
|
|
1133 |
|
|
1134 |
2003-01-28 Alain Magloire
|
|
1135 |
|
|
1136 |
* src/org/eclipse/cdt/debug/mi/core/cdi/model/Breakpoint.java (getCondition):
|
|
1137 |
Condition was initialize with the wrong parameter.
|
|
1138 |
(setMIBreakpoint): reset location and condition.
|
|
1139 |
|
|
1140 |
2003-01-28 Alain Magloire
|
|
1141 |
|
|
1142 |
* src/org/eclipse/cdt/debug/mi/core/cdi/model/Breakpoint.java (setMIBreakpoint):
|
|
1143 |
New method.
|
|
1144 |
* src/org/eclipse/cdt/debug/mi/core/cdi/BreakpointManager.java (update):
|
|
1145 |
Reset the new MIBreakpoint on the Breakpoint object.
|
|
1146 |
(containsBreakpoint): Removed.
|
|
1147 |
(hasBreakpointChanged): Change arguments.
|
|
1148 |
* src/org/eclipse/cdt/debug/mi/core/output/MIBreakpoint.java (parser):
|
|
1149 |
Better check for watchpoints.
|
|
1150 |
* src/org/eclipse/cdt/debug/mi/core/CLIProcessor.java (isChangeBreakpoint):
|
|
1151 |
Check for "ignore" and "condition" cli commands.
|
|
1152 |
|
|
1153 |
2003-01-27 Alain Magloire
|
|
1154 |
|
|
1155 |
* src/org/eclipse/cdt/debug/mi/core/cdi/model/Register.java (getTypeName):
|
|
1156 |
Use MIWhatis to get the type of the register.
|
|
1157 |
(getVariables): Cache the answer.
|
|
1158 |
* src/org/eclipse/cdt/debug/mi/core/cdi/SharedLibraryManager.java (loadSymbols):
|
|
1159 |
Use MISharedLibrary.
|
|
1160 |
* src/org/eclipse/cdt/debug/mi/core/command/CommandFactory.java (createMIWhatis):
|
|
1161 |
New method.
|
|
1162 |
(MIPType): New method.
|
|
1163 |
* src/org/eclipse/cdt/debug/mi/core/command/MISharedLibrary.java:
|
|
1164 |
New file.
|
|
1165 |
|
|
1166 |
|
|
1167 |
2003-01-27 Alain Magloire
|
|
1168 |
|
|
1169 |
* src/org/eclipse/cdt/debug/mi/core/cdi/model/Target.java (getCThreads):
|
|
1170 |
When attaching gdb(at least on some platform) does not show
|
|
1171 |
the selected thread(info threads). Fallback on the first one.
|
|
1172 |
|
|
1173 |
2003-01-27 Alain Magloire
|
|
1174 |
|
|
1175 |
* src/org/eclipse/cdt/debug/mi/core/cdi/VariableManager.java (findVariable):
|
|
1176 |
Bug fix, did not compare the stacks correctly.
|
|
1177 |
|
|
1178 |
2003-01-27 Alain Magloire
|
|
1179 |
|
|
1180 |
* src/org/eclipse/cdt/debug/mi/core/cdi/model/VariableObject.java:
|
|
1181 |
* src/org/eclipse/cdt/debug/mi/core/cdi/model/ArgumentObject.java:
|
|
1182 |
* src/org/eclipse/cdt/debug/mi/core/cdi/model/RegisterObject.java:
|
|
1183 |
Move to model package.
|
|
1184 |
|
|
1185 |
2003-01-26 Alain Magloire
|
|
1186 |
|
|
1187 |
Major refactor of the code. Rewrote/Added Managers:
|
|
1188 |
VariableManager
|
|
1189 |
ExpressionManager
|
|
1190 |
RegisterManager
|
|
1191 |
UpdateManager.
|
|
1192 |
|
|
1193 |
Refactor of CSession to Session, CTarget to Target
|
|
1194 |
and CThread to Thread.
|
|
1195 |
* src/.../mi/core/cdi/event/ChangedEvent.java:
|
|
1196 |
* src/.../mi/core/cdi/event/CreatedEvent.java:
|
|
1197 |
* src/.../mi/core/cdi/event/DestroyedEvent.java:
|
|
1198 |
* src/.../mi/core/cdi/event/DisconnectedEvent.java:
|
|
1199 |
* src/.../mi/core/cdi/event/ExitedEvent.java:
|
|
1200 |
* src/.../mi/core/cdi/event/MemoryChangedEvent.java:
|
|
1201 |
* src/.../mi/core/cdi/event/ResumedEvent.java:
|
|
1202 |
* src/.../mi/core/cdi/event/SuspendedEvent.java:
|
|
1203 |
|
|
1204 |
|
|
1205 |
* src/.../mi/core/cdi/model/Argument.java:
|
|
1206 |
* src/.../mi/core/cdi/model/Breakpoint.java:
|
|
1207 |
* src/.../mi/core/cdi/model/Thread.java:
|
|
1208 |
* src/.../mi/core/cdi/model/Target.java:
|
|
1209 |
* src/.../mi/core/cdi/model/MemoryBlock.java:
|
|
1210 |
* src/.../mi/core/cdi/model/MixedInstruction.java:
|
|
1211 |
* src/.../mi/core/cdi/model/Instruction.java:
|
|
1212 |
* src/.../mi/core/cdi/model/Signal.java:
|
|
1213 |
* src/.../mi/core/cdi/model/SharedLibrary.java:
|
|
1214 |
* src/.../mi/core/cdi/model/CObject.java:
|
|
1215 |
* src/.../mi/core/cdi/model/Expression.java:
|
|
1216 |
* src/.../mi/core/cdi/model/Variable.java:
|
|
1217 |
* src/.../mi/core/cdi/model/Value.java:
|
|
1218 |
* src/.../mi/core/cdi/model/Register.java:
|
|
1219 |
* src/.../mi/core/cdi/model/StackFrame.java:
|
|
1220 |
|
|
1221 |
* src/.../mi/core/cdi/ArgumentObject.java:
|
|
1222 |
* src/.../mi/core/cdi/VariableObject.java:
|
|
1223 |
* src/.../mi/core/cdi/RegisterObject.java:
|
|
1224 |
* src/.../mi/core/cdi/BreakpointHit.java:
|
|
1225 |
* src/.../mi/core/cdi/BreakpointManager.java:
|
|
1226 |
* src/.../mi/core/cdi/VariableManager.java:
|
|
1227 |
* src/.../mi/core/cdi/ExpressionManager.java:
|
|
1228 |
* src/.../mi/core/cdi/RegisterManaget.java:
|
|
1229 |
* src/.../mi/core/cdi/SignalManager.java:
|
|
1230 |
* src/.../mi/core/cdi/SharedLibraryManager.java:
|
|
1231 |
* src/.../mi/core/cdi/EventManager.java:
|
|
1232 |
* src/.../mi/core/cdi/MemoryManager.java:
|
|
1233 |
* src/.../mi/core/cdi/ErrorInfo.java:
|
|
1234 |
* src/.../mi/core/cdi/Session.java:
|
|
1235 |
* src/.../mi/core/cdi/ExitInfo.java:
|
|
1236 |
* src/.../mi/core/cdi/UpdateManager.java:
|
|
1237 |
* src/.../mi/core/cdi/IUpdateListener.java:
|
|
1238 |
* src/.../mi/core/cdi/SessionObject.java:
|
|
1239 |
* src/.../mi/core/cdi/SignalReceived.java:
|
|
1240 |
* src/.../mi/core/cdi/SourceManager.java:
|
|
1241 |
* src/.../mi/core/cdi/RuntimeOptions.java:
|
|
1242 |
* src/.../mi/core/cdi/WatchpointScope.java:
|
|
1243 |
* src/.../mi/core/cdi/WatchpointTrigger.java:
|
|
1244 |
* src/.../mi/core/cdi/EndSteppingRange.java:
|
|
1245 |
|
|
1246 |
* src/.../mi/core/MIPlugin.java:
|
|
1247 |
* src/.../mi/core/CygwinGDBDebugger.java:
|
|
1248 |
* src/.../mi/core/GDBDebugger.java:
|
|
1249 |
|
|
1250 |
|
|
1251 |
|
|
1252 |
2003-01-24 Alain Magloire
|
|
1253 |
|
|
1254 |
* src/.../mi/core/CLIProcessor.java (isEnableBreakpoint):
|
|
1255 |
Check for "enable", "disable" cli commands.
|
|
1256 |
|
|
1257 |
2003-01-23 Alain Magloire
|
|
1258 |
|
|
1259 |
* src/.../mi/core/CLIProcessor.java (isDeletingBreakpoint):
|
|
1260 |
Check for "d" it means delete breakpoints.
|
|
1261 |
|
|
1262 |
2003-01-20 Alain Magloire
|
|
1263 |
|
|
1264 |
* src/.../mi/core/cdi/Configuration.java (supporstSharedLibrary):
|
|
1265 |
New method.
|
|
1266 |
* src/.../mi/core/cdi/CoreFileConfiguration.java (supporstSharedLibrary):
|
|
1267 |
New method.
|
|
1268 |
* src/.../mi/core/cdi/SharedLibraryManager.java (update):
|
|
1269 |
Checks if support for shared Libary before doin an update.
|
|
1270 |
|
|
1271 |
2003-01-20 Alain Magloire
|
|
1272 |
|
|
1273 |
* src/.../mi/core/cdi/SuspendedEvent.java: Use SignalReceived.
|
|
1274 |
* src/.../mi/core/cdi/model/Signal.java: New file.
|
|
1275 |
* src/.../mi/core/cdi/model/SignalManager.java: Use model/Signal.
|
|
1276 |
* src/.../mi/core/cdi/SignalReceived.java: New file.
|
|
1277 |
|
|
1278 |
2003-01-20 Alain Magloire
|
|
1279 |
|
|
1280 |
The problem was that no check was done for the existence of
|
|
1281 |
the program/executable nor the working directory etc ...
|
|
1282 |
By asking the arguements to be File, the check is done by
|
|
1283 |
the caller.
|
|
1284 |
|
|
1285 |
* src/.../mi/core/MIPlugin.java (createCSession): Change the
|
|
1286 |
the arguments.
|
|
1287 |
* src/.../mi/core/GDBDebugger.java (createCSession): Change the
|
|
1288 |
|
|
1289 |
2003-01-20 Alain Magloire
|
|
1290 |
|
|
1291 |
* src/.../mi/core/command/MIWhatis.java: New file.
|
|
1292 |
* src/.../mi/core/command/MIPType.java: New file.
|
|
1293 |
* src/.../mi/core/command/MISharedLibary.java: New file.
|
|
1294 |
* src/.../mi/core/output/MIWhatisInfo.java: New file.
|
|
1295 |
* src/.../mi/core/output/MIPTypeInfo.java: New file.
|
|
1296 |
|
|
1297 |
2003-01-18 Alain Magloire
|
|
1298 |
|
|
1299 |
* src/.../mi/core/cdi/event/DestroyedEvent.java (DestroyedEvent):
|
|
1300 |
Remove the deleted shared library from the list.
|
|
1301 |
* src/.../mi/core/cdi/SharedLibraryManager.java (getUnloadedLibrary):
|
|
1302 |
Get a shared library slated for unload.
|
|
1303 |
(removeFromUnloadedList): Remove the library form the list.
|
|
1304 |
|
|
1305 |
2003-01-17 Alain Magloire
|
|
1306 |
|
|
1307 |
* src/.../mi/core/output/MIInfoSharedLibraryInfo.java (parseWinShared):
|
|
1308 |
Break the methods in parserUnixShared() and parseWinShared() to cope
|
|
1309 |
with the different formats.
|
|
1310 |
|
|
1311 |
2003-01-17 Alain Magloire
|
|
1312 |
|
|
1313 |
* src/.../mi/core/cdi/SharedLibraryManager.java (loadSymbols):
|
|
1314 |
New method takes and array of ICDISharedLibrary.
|
|
1315 |
* src/.../mi/core/cdi/SharedLibrary.java (loadSymbols):
|
|
1316 |
Call the share manager to load.
|
|
1317 |
|
|
1318 |
2003-01-17 Alain Magloire
|
|
1319 |
|
|
1320 |
* src/.../mi/core/cdi/SharedLibraryManager.java (loadSymbols):
|
|
1321 |
Call "shared libraryname".
|
|
1322 |
|
|
1323 |
2003-01-17 Alain Magloire
|
|
1324 |
|
|
1325 |
The problem here is that we do not knw the state of
|
|
1326 |
the session, for example "target remote server:port"
|
|
1327 |
was issue, in this case the state is suspended.
|
|
1328 |
We try to guess by posting a "info remote-process"
|
|
1329 |
and set suspended when no error.
|
|
1330 |
|
|
1331 |
* src/.../mi/core/MIPlugin.java (createCSession):
|
|
1332 |
Try "info remote-process" to guess the state.
|
|
1333 |
Remove the "new-console" call to windows specific files.
|
|
1334 |
* src/.../mi/core/CygwinGDBDebugger.java(createLaunchSession):
|
|
1335 |
call "set new-console" for windows plaforms.
|
|
1336 |
|
|
1337 |
2003-01-16 Alain Magloire
|
|
1338 |
|
|
1339 |
* src/.../mi/core/cdi/SharedLibary.java (setMIShared):
|
|
1340 |
New method.
|
|
1341 |
* src/.../mi/core/cdi/SharedLibraryManager.java (update):
|
|
1342 |
When changed reset the MIShared of the SharedLibrary.
|
|
1343 |
|
|
1344 |
2003-01-16 Alain Magloire
|
|
1345 |
|
|
1346 |
Process gdbinit configuration file.
|
|
1347 |
|
|
1348 |
* src/.../mi/core/MIPlugin.java (createCSession): Takes now two new
|
|
1349 |
arguments for working directory and configuration file gdbinit.
|
|
1350 |
* src/.../mi/core/GDBDebugger.java (createAttachSession):
|
|
1351 |
(createCoreSession): pass the working directory and gdbinit file
|
|
1352 |
(createLaunchSession): pass the working directory and gdbinit file
|
|
1353 |
* src/.../mi/core/IMILaunchConfigurationConstants.java:
|
|
1354 |
New constant ATTR_GDB_INIT.
|
|
1355 |
|
|
1356 |
2003-01-16 Alain Magloire
|
|
1357 |
|
|
1358 |
* src/.../mi/core/cdi/EventManager.java (processSuspended):
|
|
1359 |
Also process the Shared lib by calling update on the manager.
|
|
1360 |
|
|
1361 |
* src/.../mi/core/cdi/CSession.java: Create a shared
|
|
1362 |
library manager.
|
|
1363 |
|
|
1364 |
2003-01-16 Alain Magloire
|
|
1365 |
|
|
1366 |
* src/.../mi/core/event/MISharedLibCreatedEvent.java: New file.
|
|
1367 |
* src/.../mi/core/event/MISharedLibChangedEvent.java: New file.
|
|
1368 |
* src/.../mi/core/event/MISharedLibUndloadedEvent.java: New file.
|
|
1369 |
|
|
1370 |
* src/.../mi/core/cdi/event/CreatedEvent.java:
|
|
1371 |
new constructors to deal with MISharedLibCreatedEvent.
|
|
1372 |
* src/.../mi/core/cdi/event/ChangedEvent.java:
|
|
1373 |
new constructors to deal with MISharedLibChangedEvent.
|
|
1374 |
* src/.../mi/core/cdi/event/DestroyedEvent.java:
|
|
1375 |
new constructors to deal with MISharedLibUnloadedEvent.
|
|
1376 |
|
|
1377 |
* src/.../mi/core/cdi/model/SharedLibrary.java: New file.
|
|
1378 |
|
|
1379 |
* src/.../mi/core/cdi/SharedLibraryManager.java: New file.
|
|
1380 |
* src/.../mi/core/cdi/CSession.java (getSharedLibraryManager):
|
|
1381 |
New method.
|
|
1382 |
* src/.../mi/core/cdi/EventManager.java (update):
|
|
1383 |
Deal with the new MISharedLibXXXEvents.
|
|
1384 |
|
|
1385 |
2003-01-15 Alain Magloire
|
|
1386 |
|
|
1387 |
* src/.../mi/core/command/CommandFactory.java (createMIInfoSharedLibrary):
|
|
1388 |
New method.
|
|
1389 |
* src/../mi/core/command/MIInfoSharedLibrary.java: New file.
|
|
1390 |
* src/../mi/core/output/MIInfoSharedLibraryInfo.java: New File.
|
|
1391 |
* src/../mi/core/output/MIShared.java: new File.
|
|
1392 |
|
|
1393 |
2003-01-13 Mikhail Khodjaiants
|
|
1394 |
* CTarget.java: in the 'runUntil' method check if file name or function name length > 0, otherwise use address.
|
|
1395 |
|
|
1396 |
2003-01-10 Alain Magloire
|
|
1397 |
|
|
1398 |
* src/.../mi/core/cdi/BreakpointManager.java (update): fix subscript
|
|
1399 |
(setCondition): Fire a ChangedEvent.
|
|
1400 |
(enableBreakpoint): Fire a ChangedEvent.
|
|
1401 |
(disableBreakpoint): Fire a ChangedEvent.
|
|
1402 |
|
|
1403 |
2003-01-10 Alain Magloire
|
|
1404 |
|
|
1405 |
* src/.../mi/core/cdi/model/CTarget.java (runUntil): Address breakpoint
|
|
1406 |
needs a "*" prefix.
|
|
1407 |
|
|
1408 |
2003-01-09 Alain Magloire
|
|
1409 |
|
|
1410 |
* src/.../mi/core/cdi/BreakpointManager.java (hasBreakpointChanged):
|
|
1411 |
Implemented.
|
|
1412 |
|
|
1413 |
2003-01-09 Alain Magloire
|
|
1414 |
|
|
1415 |
* src/.../mi/core/cdi/model/CTarget.java (setCurrentThread): takes
|
|
1416 |
a new argument to decide if the events should be fired.
|
|
1417 |
* src/.../mi/core/cdi/model/CThread.java (getStackFrameCount): use
|
|
1418 |
the setCurrentThread() with events updates disable
|
|
1419 |
(getStackFrames): Ditto.
|
|
1420 |
(updateState): Wrong subscript in the loop.
|
|
1421 |
|
|
1422 |
2003-01-09 Alain Magloire
|
|
1423 |
|
|
1424 |
Generate CreatedEvent's for Variable, Argument, Expression, Memory, Thread
|
|
1425 |
objects when they are created. This makes it consistent with the generated
|
|
1426 |
DestroyedEvent's.
|
|
1427 |
|
|
1428 |
* src/.../mi/core/cdi/EventManager.java (update): Deal with
|
|
1429 |
MI{Register,Memory,Thread,Var}CreatedEvent events.
|
|
1430 |
* src/.../mi/core/cdi/model/Ctarget.java (updateState): Fire events
|
|
1431 |
when threads are created or destroyed.
|
|
1432 |
* src/.../mi/core/cdi/model/MemoryBlock.java: Move here.
|
|
1433 |
* src/.../mi/core/cdi/model/Register.java (getID): rename getId() to getID().
|
|
1434 |
* src/.../mi/core/cdi/event/CreatedEvent.java: New constructors
|
|
1435 |
to deal with MI{Register,Memory,Thread,Var}CreatedEvent.
|
|
1436 |
|
|
1437 |
* src/.../mi/core/event/MIMemoryCreatedEvent.java: New file.
|
|
1438 |
* src/.../mi/core/event/MIRegisterCreatedEvent.java: New file.
|
|
1439 |
* src/.../mi/core/event/MIThreadCreatedEvent.java: New file.
|
|
1440 |
* src/.../mi/core/event/MIVarCreatedEvent.java: New file.
|
|
1441 |
* src/.../mi/core/event/MIBreakpointChangedEvent.java (MIBreakpointChangedEvent):
|
|
1442 |
Reuse the constructor.
|
|
1443 |
* src/.../mi/core/event/MIBreakpointCreatedEvent.java (MIBreakpointCreatedEvent):
|
|
1444 |
Reuse the constructor.
|
|
1445 |
* src/.../mi/core/event/MIBreakpointDeletedEvent.java (MIBreakpointDeletedEvent):
|
|
1446 |
Reuse the constructor.
|
|
1447 |
|
|
1448 |
2003-01-08 Alain Magloire
|
|
1449 |
|
|
1450 |
Refactoring, split the org.eclipse.cdt.debug.mi.core.cdi in pacackages
|
|
1451 |
org.eclipse.cdt.debug.mi.core.cdi
|
|
1452 |
org.eclipse.cdt.debug.mi.core.cdi.event
|
|
1453 |
org.eclipse.cdt.debug.mi.core.cdi.model
|
|
1454 |
This help structure things up.
|
|
1455 |
* src/.../mi/core/cdi/event: New files.
|
|
1456 |
* src/.../mi/core/cdi/model: New files.
|
|
1457 |
|
|
1458 |
2003-01-08 Alain Magloire
|
|
1459 |
|
|
1460 |
* src/.../mi/core/cdi/EventManager.java (update): bug fix
|
|
1461 |
was calling DestroyedEvent() incorrectly.
|
|
1462 |
|
|
1463 |
2003-01-08 Alain Magloire
|
|
1464 |
|
|
1465 |
CLIProcessor a new class to recognise the CLI(Command Line Interface)
|
|
1466 |
of gdb example:
|
|
1467 |
(gdb) next
|
|
1468 |
(gdb) n
|
|
1469 |
(gdb) b
|
|
1470 |
(gdb) break
|
|
1471 |
etc ..:
|
|
1472 |
When the patterns are discover, the class will generate some events
|
|
1473 |
to warn te UI that something change.
|
|
1474 |
|
|
1475 |
* src/.../mi/core/cdi/BreakpointManager.java (update):
|
|
1476 |
Send a -break-list and generate events for any difference, in
|
|
1477 |
the breakpoints that we know about.
|
|
1478 |
(deleteBreakpoint): Take as argument the breakpoint number.
|
|
1479 |
(getBreakpoints): Call update() to generate events if new breakpoints.
|
|
1480 |
(getMIBreakpoints): return the MIBreakpoints.
|
|
1481 |
* src/.../mi/core/cdi/ChangedEvent.java (ChangedEvent):
|
|
1482 |
New constructor with MIBreakPointChangedEvent.
|
|
1483 |
* src/.../mi/core/cdi/DestroyedEvent.java (DestroyedEvent):
|
|
1484 |
New constructor with MIBreakPointDeletedEvent.
|
|
1485 |
* src/.../mi/core/cdi/Created.java: New file.
|
|
1486 |
* src/.../mi/core/cdi/EventManager.java (update):
|
|
1487 |
Watch for the new MIBreakPoint*Events.
|
|
1488 |
* src/.../mi/core/event/MIBreakPointCreatedEvent.java: New file.
|
|
1489 |
* src/.../mi/core/event/MIBreakPointChangedEvent.java: New file.
|
|
1490 |
* src/.../mi/core/event/MIBreakPointDeletedEvent.java: New file.
|
|
1491 |
* src/.../mi/core/event/MICreatedEvent.java: New file.
|
|
1492 |
* src/.../mi/core/event/MIDestroyedEvent.java: New file.
|
|
1493 |
* src/.../mi/core/event/MIInferiorExitEvent.java: Extends MIDestroyedEvent
|
|
1494 |
* src/.../mi/core/event/MIThreadExitEvent.java: Extends MIDestroyedEvent
|
|
1495 |
* src/.../mi/core/event/MIGDBExitEvent.java: Extends MIDestroyedEvent
|
|
1496 |
* src/.../mi/core/event/MIDetachedEvent.java: Extends MIDestroyedEvent
|
|
1497 |
* src/.../mi/core/CLIProcessor.java: New file.
|
|
1498 |
* src/.../mi/core/TxThread.java: New file.
|
|
1499 |
|
|
1500 |
2003-01-07 Alain Magloire
|
|
1501 |
|
|
1502 |
* src/.../mi/core/MIInferior.java (getOutputStream): Remove useless assignement.
|
|
1503 |
* src/.../mi/core/MIPluging.java (debugLog): Not need to be static.
|
|
1504 |
* src/.../mi/core/cdi/EventManager.java (update): Remove useless assignement.
|
|
1505 |
|
|
1506 |
2003-01-06 Alain Magloire
|
|
1507 |
|
|
1508 |
* build.properties: Patch from Judy Green.
|
|
1509 |
|
|
1510 |
2003-01-06 Alain Magloire
|
|
1511 |
|
|
1512 |
* src/.../mi/core/cdi/BreapoinManager.java (createLocation): new method
|
|
1513 |
to create a breakoint with an address.
|
|
1514 |
* src/.../mi/core/cdi/Location.java (Location): New constructor takes
|
|
1515 |
an address as argument.
|
|
1516 |
|
|
1517 |
2003-01-03 Alain Magloire
|
|
1518 |
|
|
1519 |
The Class creating the CDISession part of the initialization would call
|
|
1520 |
(gdb) set autosolib on
|
|
1521 |
this works fine for Unix system, but on Windows it throws an error
|
|
1522 |
failing the debugger. Windows(Cygwin, MingWin) does not need any
|
|
1523 |
special initialization like solib-search-paths etc ..
|
|
1524 |
|
|
1525 |
* src/.../mi/core/cdi/SourceManager.java (setAutoSolib): Takes a boolean argument
|
|
1526 |
to set the autosolib on or off.
|
|
1527 |
* src/.../mi/core/CygwinGDBDebugger.java(initializeLibraries):
|
|
1528 |
Empty method, cygwin does not need any special handling.
|
|
1529 |
* src/.../mi/core/GDBDebugger.java (initializeLibraries):
|
|
1530 |
Always call autosolib.
|
|
1531 |
|
|
1532 |
|
|
1533 |
2003-01-02 Alain Magloire
|
|
1534 |
|
|
1535 |
Bug when using recursive:
|
|
1536 |
int recursive(int x) {
|
|
1537 |
if (x > 10)
|
|
1538 |
recursive(++x);
|
|
1539 |
return 0;
|
|
1540 |
}
|
|
1541 |
|
|
1542 |
The Variable Manager is caching the MI/GDB var-obj for speed.
|
|
1543 |
It is finding the object by looking at the name and the stack/thread,
|
|
1544 |
for recursive calls, this is wrong and the code would be full in
|
|
1545 |
thinking the variable "x"(see above) is the same object. To make the distinction
|
|
1546 |
we use the depth "-stack-info-depth" that will be use also in the equality
|
|
1547 |
to make sure we identify an object uniquely. In the recursive() case above
|
|
1548 |
because the depth is different, a new "x" object will be created. The downside
|
|
1549 |
is that on certain platform doing deep recursive/stackframe, we have noticed
|
|
1550 |
that "-stack-info-depth" can be very long, test done for gdb/QNX with
|
|
1551 |
a stack depth of 1000.
|
|
1552 |
|
|
1553 |
* src/.../mi/core/cdi/VariableManager.java (getElement):
|
|
1554 |
Use the depth when doing equal().
|
|
1555 |
(createElement): Save the depth of the stack part of the Element.
|
|
1556 |
|
|
1557 |
2003-01-02 Alain Magloire
|
|
1558 |
|
|
1559 |
GDB/MI uses some oob reasons that was not documented for the watchpoints
|
|
1560 |
*stopped,reason="access-watchpoint-trigger"...
|
|
1561 |
*stopped,reason="read-watchpoint-trigger",...
|
|
1562 |
* src/.../mi/core/event/MIWatchpointTrigger.java (parse):
|
|
1563 |
check for "hw-awpt" and "hw-rwpt".
|
|
1564 |
* src/.../mi/core/RxThread.java (createEvents):
|
|
1565 |
Check for "access-watchpoint-trigger", "read-watchpoint-trigger.
|
|
1566 |
|
|
1567 |
2002-12-17 Alain Magloire
|
|
1568 |
|
|
1569 |
* src/.../mi/core/cdi/Register.java (setFormat): bug fix
|
|
1570 |
The format variable was not set.
|
|
1571 |
|
|
1572 |
2002-12-05 Alain Magloire
|
|
1573 |
|
|
1574 |
GDB/MI provides error messages in its log stream, one problem
|
|
1575 |
is that it is not consistent, for example doing:
|
|
1576 |
(gdb) info threads
|
|
1577 |
& "info threads\n"
|
|
1578 |
which is obviously not an error.
|
|
1579 |
So we put the error stream output par of the exception so when
|
|
1580 |
it is relevant it shows in the Exception.
|
|
1581 |
MI2CDIException is the bridge class.
|
|
1582 |
|
|
1583 |
* src/.../mi/core/cdi/BreakpoinManager.java:
|
|
1584 |
* src/.../mi/core/cdi/CSession.java:
|
|
1585 |
* src/.../mi/core/cdi/CTarget.java:
|
|
1586 |
* src/.../mi/core/cdi/CThread.java:
|
|
1587 |
* src/.../mi/core/cdi/MemoryBlock.java:
|
|
1588 |
* src/.../mi/core/cdi/MemoryManager.java:
|
|
1589 |
* src/.../mi/core/cdi/Register.java:
|
|
1590 |
* src/.../mi/core/cdi/RegisterManager.java:
|
|
1591 |
* src/.../mi/core/cdi/SourceManager.java:
|
|
1592 |
* src/.../mi/core/cdi/Value.java:
|
|
1593 |
* src/.../mi/core/cdi/Variable.java:
|
|
1594 |
* src/.../mi/core/cdi/VariableManager.java:
|
|
1595 |
|
|
1596 |
* src/.../mi/core/command/Command.java (getMIInfo):
|
|
1597 |
When error get the log stream and put it in the MIException.
|
|
1598 |
* src/.../mi/core/event/MIErrorEvent.java:
|
|
1599 |
Get the log stream error also.
|
|
1600 |
* src/.../mi/core/MIException.java (getLogMessage): New method
|
|
1601 |
contains buffer output.
|
|
1602 |
* src/.../mi/core/RxThread.java (processMIOutput): get the
|
|
1603 |
oob arrays up so it can be use in MIErrorEvent.
|
|
1604 |
|
|
1605 |
2002-12-02 Alain Magloire
|
|
1606 |
|
|
1607 |
* src/.../mi/core/cdi/CTarget.java (updateState): If we
|
|
1608 |
have the current thread id set it before, getCThread() if
|
|
1609 |
it is implemented with "info threads" can override it but
|
|
1610 |
"-stack-list-thread" does not give this information.
|
|
1611 |
* src/.../mi/core/cdi/ErrorInfo.java: New file
|
|
1612 |
* src/.../mi/core/cdi/EventManager.java (getReason): Return
|
|
1613 |
an ErrorInfo also.
|
|
1614 |
* src/.../mi/core/event/MIErroEvent.java: New file
|
|
1615 |
* src/.../mi/core/RxThread.java (processMIOutput):
|
|
1616 |
Generated MIErrorEvent for "^error".
|
|
1617 |
|
|
1618 |
2002-11-29 Alain Magloire
|
|
1619 |
|
|
1620 |
* src/.../mi/core/cdi/EventManager.java (processSuspended):
|
|
1621 |
get the threadId.
|
|
1622 |
|
|
1623 |
2002-11-29 Alain Magloire
|
|
1624 |
|
|
1625 |
* src/.../mi/core/cdi/MemoryBlock.java (setValue):
|
|
1626 |
Check if the change affects other block and fire MemoryChangedEvent
|
|
1627 |
when necessary.
|
|
1628 |
|
|
1629 |
2002-11-29 Alain Magloire
|
|
1630 |
|
|
1631 |
* src/.../mi/core/event/MIBreakpointEvent.java:
|
|
1632 |
* src/.../mi/core/event/MIFunctionFinishedEvent.java:
|
|
1633 |
* src/.../mi/core/event/MILocationReachedEvent.java:
|
|
1634 |
* src/.../mi/core/event/MISignalEvent.java:
|
|
1635 |
* src/.../mi/core/event/MISteppingRangeEvent.java:
|
|
1636 |
* src/.../mi/core/event/MIStoppedEvent.java:
|
|
1637 |
* src/.../mi/core/event/MIWatchpointEvent.java:
|
|
1638 |
* src/.../mi/core/event/MIWatchpointTriggerEvent.java:
|
|
1639 |
* src/.../mi/core/RxThread.java:
|
|
1640 |
Some events like the temporary events, do not have
|
|
1641 |
any specific format but do provide a frame and a thread-id
|
|
1642 |
move the code in MIStoppedEvent.
|
|
1643 |
|
|
1644 |
2002-11-28 Alain Magloire
|
|
1645 |
|
|
1646 |
* src/.../mi/core/cdi/MemoryBlock.java (setValue): Only get a byte.
|
|
1647 |
|
|
1648 |
2002-11-28 Alain Magloire
|
|
1649 |
|
|
1650 |
* src/.../mi/core/cdi/CTarget.java (runUntil): new method implemented.
|
|
1651 |
* src/.../mi/core/cdi/CThread.java (runUntil): new method implemented.
|
|
1652 |
|
|
1653 |
2002-11-26 Doug Schaefer
|
|
1654 |
|
|
1655 |
* src/.../mi/core/CygwinGDBDebugger.java:
|
|
1656 |
New Debugger that provides the Cygwin Command Factory to the MISession
|
|
1657 |
* src/.../mi/core/command/CygwinCommandFactory.java:
|
|
1658 |
New Command Factory for Cygwin specific implementations of the commands
|
|
1659 |
* src/.../mi/core/command/CygwinMIEnvironmentDirectory.java:
|
|
1660 |
New. Subclasses the MIEnvironmentDirectory command to convert the
|
|
1661 |
paths using cygpath.
|
|
1662 |
* plugin.xml:
|
|
1663 |
Defines the new debugger extension.
|
|
1664 |
|
|
1665 |
2002-11-25 Alain Magloire
|
|
1666 |
|
|
1667 |
* src/.../mi/core/cdi/Watchpoint.java:
|
|
1668 |
Check if it was access point also.
|
|
1669 |
* src/.../mi/core/output/MIBreakInsertInfo.java (parse):
|
|
1670 |
Check for "wpt" variable.
|
|
1671 |
* src/.../mi/core/output/MIBreakpoint.java (IsWriteWatchpoint):
|
|
1672 |
implemented.
|
|
1673 |
|
|
1674 |
2002-11-20 Mikhail Khodjaiants
|
|
1675 |
Fix for bug 26595.
|
|
1676 |
* src/.../mi/core/cdi/MemoryManager.java (compareBlocks):
|
|
1677 |
If the start address of a memory block has changed fir 'changed' event
|
|
1678 |
only for the corresponding bytes of the overlapping area of new and old blocks.
|
|
1679 |
|
|
1680 |
2002-11-19 Alain Magloire
|
|
1681 |
|
|
1682 |
* src/.../mi/core/cdi/MemoryManager.java (compareBlocks):
|
|
1683 |
The startAddress() may have change for example if we were
|
|
1684 |
watching "char *p;" and the address move "p++". Take this
|
|
1685 |
into account now.
|
|
1686 |
|
|
1687 |
2002-11-18 Alain Magloire
|
|
1688 |
|
|
1689 |
* src/.../mi/core/cdi/StackFrame.java (getCurrentStackFrame):
|
|
1690 |
if the currentFrame was not set only get the top level
|
|
1691 |
frame for the current.
|
|
1692 |
* src/.../mi/core/cdi/CTarget.java (updateStateId):
|
|
1693 |
Set the currentThreads && currentThreadId.
|
|
1694 |
|
|
1695 |
2002-11-18 Alain Magloire
|
|
1696 |
|
|
1697 |
* src/.../mi/core/cdi/CThread.java (getStackFrameCount):
|
|
1698 |
Set the new thread before getting the value and restore
|
|
1699 |
after.
|
|
1700 |
|
|
1701 |
2002-11-14 Alain Magloire
|
|
1702 |
|
|
1703 |
This is needed in post-mortem, application doing a
|
|
1704 |
very deep recursion and crashing the stack size, for example
|
|
1705 |
on GNU/Linux it may reach 200000 levels deep. Trying to
|
|
1706 |
bring in the UI a bactrace tree of 200000 nodes is useless.
|
|
1707 |
The UI could check the count and do the appropriate action
|
|
1708 |
by showing ranges etc ..
|
|
1709 |
|
|
1710 |
* src/.../mi/core/cdi/CThread.java (getStackFrame):
|
|
1711 |
new method with a hi and low.
|
|
1712 |
(getStackFrameCount): new method.
|
|
1713 |
* src/.../mi/core/command/CommandFactory.java (createMIStackInfoDepth):
|
|
1714 |
new method.
|
|
1715 |
* src/.../mi/core/command/MIStackInfoDepth.java (getMIStackInfoDepthInfo):
|
|
1716 |
new method.
|
|
1717 |
|
|
1718 |
2002-11-13 Dave Inglis
|
|
1719 |
* plugin.xml
|
|
1720 |
Added "native" cpu support.
|
|
1721 |
|
|
1722 |
2002-11-06 Alain Magloire
|
|
1723 |
|
|
1724 |
* src/.../mi/core/cdi/StackFrame.java (getLocals):
|
|
1725 |
If an exception was thrown, the array may contain null
|
|
1726 |
entries. Use a list and catch the exception.
|
|
1727 |
|
|
1728 |
2002-11-06 Alain Magloire
|
|
1729 |
|
|
1730 |
* src/.../mi/core/cdi/StackFrame.java (getArguments):
|
|
1731 |
If an exception was thrown, the array may contain null
|
|
1732 |
entries. Use and a List and catch the exception.
|
|
1733 |
|
|
1734 |
2002-11-05 Alain Magloire
|
|
1735 |
|
|
1736 |
* src/.../mi/core/cdi/Register.java (setValue): Fire a
|
|
1737 |
MIRegisterChangedEvent when changing value.
|
|
1738 |
Fix PR:25730
|
|
1739 |
|
|
1740 |
2002-11-01 Alain Magloire
|
|
1741 |
|
|
1742 |
The change in MISession(), will catch things like starting gdb-5.0
|
|
1743 |
with argument "-i mi1", that level of mi is not supported.
|
|
1744 |
|
|
1745 |
* src/.../mi/core/cdi/MemoryBlock.java (refresh): When doing the refresh
|
|
1746 |
check if other blocks wehre affected and update them.
|
|
1747 |
* src/.../mi/core/cdi/MemoryManager.java (update): Return the array of
|
|
1748 |
affected addresses.
|
|
1749 |
* src/.../mi/core/MIPlugin.java (createCSession): Do not throw an
|
|
1750 |
error when trying "set new-console", it does not work on Linux.
|
|
1751 |
* src/.../mi/core/MISession.java (MISession): Check if the process
|
|
1752 |
terminated early, maybe because of wron arguments etc .. and throw
|
|
1753 |
the exception.
|
|
1754 |
|
|
1755 |
2002-11-1 David Inglis
|
|
1756 |
* src/.../mi/core/MIPlugin.java
|
|
1757 |
throw MIExceptions in createSession (not rethorwn IOExceptions)
|
|
1758 |
|
|
1759 |
2002-10-30 Alain Magloire
|
|
1760 |
|
|
1761 |
* src/.../core/cdi/MemoryBlock.java (setDirty): When need a
|
|
1762 |
refresh setDirty() to true.
|
|
1763 |
(isDirty): Return the flag value.
|
|
1764 |
|
|
1765 |
* src/.../core/cdi/MemoryManager.java (update): Check if
|
|
1766 |
the MemoryBlock isDirty().
|
|
1767 |
|
|
1768 |
2002-10-30 Alain Magloire
|
|
1769 |
|
|
1770 |
* src/.../core/cdi/MemoryBlock.java (setValue): reuse refresh()
|
|
1771 |
to update the memory and fire any MemoryChangedEvents.
|
|
1772 |
|
|
1773 |
2002-10-26 Alain Magloire
|
|
1774 |
|
|
1775 |
* src/.../core/cdi/MemoryBlock.java (setValue): Generate
|
|
1776 |
a MemoryChangeEvent when the value is set, gdb/mi will not
|
|
1777 |
do it.
|
|
1778 |
|
|
1779 |
2002-10-25 Alain Magloire
|
|
1780 |
|
|
1781 |
* src/.../core/cdi/CThread.java (getStackFrames): Save the
|
|
1782 |
current thread before changing and restore when operation finish.
|
|
1783 |
|
|
1784 |
* src/.../core/cdi/MemoryBlock.java (refresh): Flush the old
|
|
1785 |
data and get new memory.
|
|
1786 |
(update): New method to compare individual blocks.
|
|
1787 |
|
|
1788 |
2002-10-25 Alain Magloire
|
|
1789 |
|
|
1790 |
Automatically suspend/resume gdb when setting a breakpoint.
|
|
1791 |
The workflow when debuggin which gdb command prompt is to
|
|
1792 |
hit CTRL-C set the breakpoint and continue. The UI debugger
|
|
1793 |
should be smart enought to do this by itself. So if the
|
|
1794 |
inferior is running, when setting a breakpoint the program
|
|
1795 |
is suspended(target.suspend()), the suspend event is ignore
|
|
1796 |
the breakpoint is set (--break-insert) and the target is resume.
|
|
1797 |
To ignore a specific event, we use a (mis)behaviour of gdb that
|
|
1798 |
associate the suspend(*stopped) with the last execution command.
|
|
1799 |
(gdb)
|
|
1800 |
111-exec-continue
|
|
1801 |
111^running
|
|
1802 |
(gdb)
|
|
1803 |
222-exec-interrupt
|
|
1804 |
222^done
|
|
1805 |
(gdb)
|
|
1806 |
111*stopped,signal-name="SIGINT",signal-meaning="Interrupt",
|
|
1807 |
frame={addr="0x00010140",func="foo",args=[],file="try.c",line="13"}
|
|
1808 |
(gdb)
|
|
1809 |
In the case above event 111 is ignore.
|
|
1810 |
|
|
1811 |
* src/.../core/command/CLICommand.java (toString): Always put
|
|
1812 |
the identifying token.
|
|
1813 |
* src/.../core/command/Command.java (setToken): Removed.
|
|
1814 |
(getUniqToken): New method returns a global uniq token.
|
|
1815 |
(getToken): Returns a uniq token for the command.
|
|
1816 |
* src/.../core/MIInferior.java (setTerminated): New argument token,
|
|
1817 |
since now all MIEvent has the corresponding command token.
|
|
1818 |
* src/.../core/MISession.java (cmdCount): Removed.
|
|
1819 |
(postCommand): the command getToken() will return a uniq token.
|
|
1820 |
* src/.../core/RxThread.java (processMIOOBRecord): MIEvent take
|
|
1821 |
the corresponding command token as argument.
|
|
1822 |
* src/.../core/TxThrea.java (token): Field removed, token are no
|
|
1823 |
longer created in this tread.
|
|
1824 |
* src/.../core/event/MIBreakpointEvent.java:
|
|
1825 |
* src/.../core/event/MIBreakpointEvent.java:
|
|
1826 |
* src/.../core/event/MIChangedEvent.java:
|
|
1827 |
* src/.../core/event/MIDetachedEvent.java:
|
|
1828 |
* src/.../core/event/MIEvent.java:
|
|
1829 |
* src/.../core/event/MIFunctionFinishedEvent.java:
|
|
1830 |
* src/.../core/event/MIGDBExitEvent.java:
|
|
1831 |
* src/.../core/event/MIInferiorExitEvent.java:
|
|
1832 |
* src/.../core/event/MILocationReachedEvent.java:
|
|
1833 |
* src/.../core/event/MIMemoryChangedEvent.java:
|
|
1834 |
* src/.../core/event/MIRegisterChangedEvent.java:
|
|
1835 |
* src/.../core/event/MIRunningEvent.java:
|
|
1836 |
* src/.../core/event/MISignalEvent.java:
|
|
1837 |
* src/.../core/event/MISteppingRangeEvent.java:
|
|
1838 |
* src/.../core/event/MIStoppedEvent.java:
|
|
1839 |
* src/.../core/event/MIThreadExitEvent.java:
|
|
1840 |
* src/.../core/event/MIVarChangedEvent.java:
|
|
1841 |
* src/.../core/event/MIWatchpointScopeEvent.java:
|
|
1842 |
* src/.../core/event/MIWatchpointTriggerEvent.java:
|
|
1843 |
Calls super with getToken().
|
|
1844 |
* src/.../core/cdi/BreakpointManager.java (allowProgramInterruption):
|
|
1845 |
New method to allow suspending the program to set a breakpoint.
|
|
1846 |
(suspendInferior): get the last token execution an ignore the suspend
|
|
1847 |
event.
|
|
1848 |
* src/.../core/cdi/CTarget.java (getLastExecutionToken): New method
|
|
1849 |
returns the token of the last execution command.
|
|
1850 |
* src/.../core/cdi/EventManager.java (enableEventToken): New method.
|
|
1851 |
(enableEventTokens): New method.
|
|
1852 |
(disableEventToken): New method.
|
|
1853 |
(disableEventTokens): New method.
|
|
1854 |
(update): Ignore token in the disable list.
|
|
1855 |
* src/.../core/cdi/RegisterManager.java (update): MIEvent takes
|
|
1856 |
a token.
|
|
1857 |
* src/.../core/cdi/Variable.java (setValue): MIEvent takes a token.
|
|
1858 |
* src/.../core/cdi/VariableManager.java (update): MIEvent takes a token.
|
|
1859 |
|
|
1860 |
2002-10-24 Alain Magloire
|
|
1861 |
|
|
1862 |
* src/.../core/RxThread.java (processMIOutput): Fire a
|
|
1863 |
suspended event when seeing an error.
|
|
1864 |
|
|
1865 |
2002-10-24 Alain Magloire
|
|
1866 |
|
|
1867 |
* src/.../core/output/MIConst.java (isoC): Change to return
|
|
1868 |
a string instead '\n' is platform dependent and has to be
|
|
1869 |
translate to "\r\n" for SWT widgets to work correctly on windows.
|
|
1870 |
|
|
1871 |
2002-10-23 Alain Magloire
|
|
1872 |
|
|
1873 |
gdb/mi for program control command will fire a change state event:
|
|
1874 |
-exec-run
|
|
1875 |
^running
|
|
1876 |
This allow the UI to change its state and wait for the suspended.
|
|
1877 |
Providing a gdb prompt adds some problems, since there is no state
|
|
1878 |
change, i.e.(^running) after command like, next/step/...:
|
|
1879 |
next
|
|
1880 |
&"next\n"
|
|
1881 |
...
|
|
1882 |
So to palliate, the txthread do some query when the commands are
|
|
1883 |
CLI commands trying to discover the type and fire any appropriate
|
|
1884 |
events on behalf on gdb.
|
|
1885 |
|
|
1886 |
* src/.../core/RxThread.java (createEvent): Adjust the parser to
|
|
1887 |
not rely on the oob "*stopped", since for CLI command it is not
|
|
1888 |
in the result-class. So the suspended state will be base of
|
|
1889 |
the "reason" only.
|
|
1890 |
* src/.../core/TxThread.java (processCLICommand): new method,
|
|
1891 |
get the command and try to recognize if it is a program control
|
|
1892 |
command like: next, step, etc ..
|
|
1893 |
* src/.../core/command/CLICommand.java (getOperation): New method,
|
|
1894 |
returns the command string.
|
|
1895 |
|
|
1896 |
2002-10-22 Alain Magloire
|
|
1897 |
|
|
1898 |
Change the framework to support access to gdb prompt.
|
|
1899 |
Trying to reuse as much as possible Eclipse framework.
|
|
1900 |
The session/gdb process is available via CDI.
|
|
1901 |
|
|
1902 |
* src/.../core/GDBStreamsProxy.java: Removed.
|
|
1903 |
* src/.../core/GDBProcess.java: Removed.
|
|
1904 |
* src/.../core/GDBStreamMonitor.java: Removed.
|
|
1905 |
* src/.../core/SessionProcess.java: New file.
|
|
1906 |
* src/.../core/MISession.java (getMISessionProcess):
|
|
1907 |
New method, returns a "fake" Process that wraps the input/outpu
|
|
1908 |
stream of gdb.
|
|
1909 |
(getGDBProcess): was getMIProcess(), renamed.
|
|
1910 |
* src/.../core/cdi/CSession.java (getSessionProcess): New method
|
|
1911 |
return gdb process.
|
|
1912 |
|
|
1913 |
2002-10-22 Alain Magloire
|
|
1914 |
|
|
1915 |
* src/.../core/GDBStreamsProxy.java (write):
|
|
1916 |
Replace the OutputStream with a Write class.
|
|
1917 |
And clear the buffer on flush().
|
|
1918 |
|
|
1919 |
2002-10-21 Alain Magloire
|
|
1920 |
|
|
1921 |
* src/.../core/GDBProcess.java (getExitValue): Catch
|
|
1922 |
IllegalThreadStateException.
|
|
1923 |
(getAttribute): Only create Properties, when call.
|
|
1924 |
(setAttribute): Only create Properties, when call.
|
|
1925 |
(getAdapter): Implemented.
|
|
1926 |
(canTerminate): true only of the process is alive.
|
|
1927 |
(GDBProcess): Takes one more argument the name.
|
|
1928 |
* src/.../core/GDBStreamMonitor.java (fireStreamAppend): New method.
|
|
1929 |
Use a synchronized LinkedList for the listeners.
|
|
1930 |
(read): new Method.
|
|
1931 |
(startMonitoring): New method, start a thread in the background
|
|
1932 |
to monitor the input.
|
|
1933 |
* src/.../core/GDBStreamsProxy.java (getErrorStream): Start the monitor thread.
|
|
1934 |
(getOutputStream): Start the monitor thread.
|
|
1935 |
|
|
1936 |
2002-10-21 Alain Magloire
|
|
1937 |
|
|
1938 |
Framework for having a gdb console. The idea is to reuse
|
|
1939 |
the eclipse console and save a lot of work. We "adapt"
|
|
1940 |
the gdb Process to what eclipse debug LaunchView wants(IProcess).
|
|
1941 |
So when this fake "gdb process" is selected we can grab the
|
|
1942 |
input/output of the console and redirect everything to raw gdb.
|
|
1943 |
|
|
1944 |
* src/.../core/GDBProcess.java: New file, it implements Eclipse
|
|
1945 |
debug class IProcess.
|
|
1946 |
* src/.../core/GDBStreamMonitor: New file, it implements Eclipse
|
|
1947 |
debug class IStreamMonitor.
|
|
1948 |
* src/.../core/GDBStreamsProxy: New file, it implements Eclipse
|
|
1949 |
debug class IStreamsProxy.
|
|
1950 |
* src/../core/MISession.java (getMIConsoleStream): New method
|
|
1951 |
to return the mi console stream output that we get from gdb/mi.
|
|
1952 |
(getMILogStream): New method, to return the mi log stream output
|
|
1953 |
that we get from gdb/mi.
|
|
1954 |
(terminate): close the fake MI Console and Log streams.
|
|
1955 |
* src/../core/RxThread.java (processMIOOBRecord): Redirect the
|
|
1956 |
console and the log stream to a buffer pipe.
|
|
1957 |
|
|
1958 |
2002-10-21 Alain Magloire
|
|
1959 |
|
|
1960 |
* src/.../core/cdi/EventManager.java (update): Only
|
|
1961 |
fire the event for MemoryChangedEvent if the block was
|
|
1962 |
not frozen.
|
|
1963 |
|
|
1964 |
2002-10-20 Alain Magloire
|
|
1965 |
|
|
1966 |
Eclipse provides plugins a way to trace by having an .options file,
|
|
1967 |
this mechanism is use to print out the mi exchange between gdb
|
|
1968 |
and the plugin. To enable this in the debug launch one must enable
|
|
1969 |
"tracing" and set for the "org.eclipse.debug.mi.core/debug" to true.
|
|
1970 |
But one problem, the console will simply blow taking down eclipse,
|
|
1971 |
for big MI line response, say 4k length, for example asking the children
|
|
1972 |
of "char buffer[4096]", -var-list-children varxx.
|
|
1973 |
This seem only to happen in Eclipse-gtk or Eclipse-motif
|
|
1974 |
on GNU/Linux, so it will be break in smaller chunks to give a chance to
|
|
1975 |
the console.
|
|
1976 |
|
|
1977 |
* .options: Set debug to true.
|
|
1978 |
* src/.../core/MIPlugin.java (debugLog): Break the log line in small chuncks of 100.
|
|
1979 |
* src/.../core/MISession.java (postCommand): Print the gdb/mi command.
|
|
1980 |
* src/.../core/RxThread.java (run): Print gdb/mi responses.
|
|
1981 |
|
|
1982 |
2002-10-20 Alain Magloire
|
|
1983 |
|
|
1984 |
-data-write-register-values is not in the texinfo manual but implemented in
|
|
1985 |
gdb-5.2.1/gdb/mi/mim-main.c:
|
|
1986 |
Write given values into registers. The registers and values are
|
|
1987 |
given as pairs. The corresponding MI command is
|
|
1988 |
-data-write-register-values <format> [<regnum1> <value1>...<regnumN> <valueN>]
|
|
1989 |
|
|
1990 |
* src/.../core/command/MIDataWriteRegisterValues.java: New file.
|
|
1991 |
* src/.../core/command/CommandFactory.java (createMIDataWriteMemory): New method.
|
|
1992 |
* src/.../core/cdi/Register.java (setValue): Implemented.
|
|
1993 |
|
|
1994 |
2002-10-20 Alain Magloire
|
|
1995 |
|
|
1996 |
Althought -data-write-memory is not documented in the texinfo manual
|
|
1997 |
it is implemented and well documented in the code(gdb-5.2.1/gdb/mi/mi-main.c).
|
|
1998 |
"mi_cmd_data_write_memory: Usage: [-o COLUMN_OFFSET] ADDR FORMAT WORD-SIZE VALUE.");
|
|
1999 |
|
|
2000 |
* src/.../core/command/MIDataWriteMemory.java: New file
|
|
2001 |
* src/.../core/command/CommandFactory.java (createMIDataWriteMemory): New method.
|
|
2002 |
* src/.../core/cdi/MemoryBlock.java (setValue): Implemented.
|
|
2003 |
|
|
2004 |
2002-10-20 Alain Magloire
|
|
2005 |
|
|
2006 |
* src/.../core/cdi/CTarget.java (getMemoryBlock): Remove
|
|
2007 |
we use the MemoryManager instead.
|
|
2008 |
(EvaluateExpressionToValue): Removed not use.
|
|
2009 |
* src/.../core/cdi/SourceManager.java (setFile): Removed not use.
|
|
2010 |
(getFile): Removed not use.
|
|
2011 |
(reset): Removed not use.
|
|
2012 |
|
|
2013 |
2002-10-19 Alain Magloire
|
|
2014 |
|
|
2015 |
The responsability to generate Events for modify memory blocks is push
|
|
2016 |
on the CDI implementation. The way we do this is every time consuming,
|
|
2017 |
when the inferior is suspended(see EventManager.processSuspendedEvent()),
|
|
2018 |
MemoryManager.update() is called, the method will go through the list of MemoryBlocks
|
|
2019 |
that are not MemoryBlocks.setFrozen() and fetch the new memories, the data is compare
|
|
2020 |
and MemoryChangedEvents are fired for blocks with changed values.
|
|
2021 |
Gdb/mi var objects does not seem to provide any support for Memory ranges.
|
|
2022 |
|
|
2023 |
* src/.../core/cdi/MemoryChangedEvent.java: New File implements ICDIMemoryChangedEvent.
|
|
2024 |
* src/.../core/cdi/EventManager.java (update): Process MIMemoryChangedEvent's.
|
|
2025 |
(processSuspendedEvent): call MemoryManager.update().
|
|
2026 |
* src/.../core/cdi/MemoryBlock.java (getExpression): New method.
|
|
2027 |
(getMIDataReadMemoryInfo): New method.
|
|
2028 |
(setMIDataReadMemoryInfo): New method.
|
|
2029 |
* src/.../core/cdi/MemoryManager.java (update): New method.
|
|
2030 |
(compareBlock): New method.
|
|
2031 |
(listMemoryBlocks): New method.
|
|
2032 |
|
|
2033 |
* src/.../core/cdi/CTarget.java (setCurrentThread): Catch null pointer.
|
|
2034 |
(getCThreads): Likewise.
|
|
2035 |
* src/.../core/event/MIMemoryChangedEvent.java: New File.
|
|
2036 |
* src/.../core/event/MIThreadExitEvent.java: Indentation fixes.
|
|
2037 |
* src/.../core/event/MIVarChangedEvent.java: Indentation fixes.
|
|
2038 |
|
|
2039 |
|
|
2040 |
|
|
2041 |
2002-10-16 Alain Magloire
|
|
2042 |
|
|
2043 |
* src/.../mi/core/cdi/MemoryManager.java (createMemoryBlock):
|
|
2044 |
New method that takes a string instead of a long, rearrange
|
|
2045 |
the method for it.
|
|
2046 |
|
|
2047 |
2002-10-12 Alain Magloire
|
|
2048 |
|
|
2049 |
There are some serious problems with gdb/mi, for example
|
|
2050 |
the most recurrent one is when using -data-disassemble
|
|
2051 |
in a threaded program, GNU/Linux uses a thread manager
|
|
2052 |
when trying to access the stackframe, gdb usually coredumps
|
|
2053 |
with an assert, it goes something like this:
|
|
2054 |
|
|
2055 |
-data-disassemble -f manager.c -l 136 -n 100 0
|
|
2056 |
&"Cannot access memory at address 0x4002d794\n"
|
|
2057 |
^error,msg="Cannot access memory at address 0x4002d794"
|
|
2058 |
(gdb)
|
|
2059 |
-data-disassemble -s 0x4002d900 -e 0x4002d964 0
|
|
2060 |
&"Cannot access memory at address 0x4002d900\n"
|
|
2061 |
^error,msg="Cannot access memory at address 0x4002d900"
|
|
2062 |
(gdb)
|
|
2063 |
-thread-select 2
|
|
2064 |
&"ui-out.c:133: gdb-internal-error: push_level: Assertion `uiout->level >= 0 && uiout->level < MAX_UI_OUT_LEVELS' failed.\n"
|
|
2065 |
|
|
2066 |
The RxThread will spawn a thread to terminate the session
|
|
2067 |
and clear the receiving queue.
|
|
2068 |
|
|
2069 |
|
|
2070 |
* RxThread.java (run): When the thread is being cancel() or
|
|
2071 |
running out of run(), clear the receiving queue(rxQueue) and
|
|
2072 |
notify any commands waiting.
|
|
2073 |
|
|
2074 |
* TxTread.java (run): Before putting the command in the
|
|
2075 |
receiving queue(rxQueue) check to see if the thread is
|
|
2076 |
still running.
|
|
2077 |
When the thread is being cancel() or running out of run(),
|
|
2078 |
clear the transmition queue(txQueue) an notify any commands
|
|
2079 |
waiting.
|
|
2080 |
|
|
2081 |
* Queue.java (clearItems): New method that clear the items
|
|
2082 |
on the queue and returning them.
|
|
2083 |
|
|
2084 |
* CommandQueue.java (clearCommands): New method calls super.clearItems()
|
|
2085 |
whith the appropriate castings.
|
|
2086 |
|
|
2087 |
* cdi/CThread.java (setCurrentStackFrame): Check for null.
|
|
2088 |
|
|
2089 |
2002-10-12 Alain Magloire
|
|
2090 |
|
|
2091 |
The memory block is implemented with
|
|
2092 |
-data-read-memory (MIDataReadMemory)
|
|
2093 |
Since the ICDIMemoryBlock only have
|
|
2094 |
byte[] getBytes()
|
|
2095 |
We will always issue:
|
|
2096 |
-data-read-memory address x 1 1 length
|
|
2097 |
The CDI upper layer will deal with any conversions
|
|
2098 |
|
|
2099 |
The problem now is how to send changedEvent when
|
|
2100 |
an element of the memory changed.
|
|
2101 |
|
|
2102 |
* cdi/MemoryBlock.java (getLength): Implemented
|
|
2103 |
(getBytes): Implemented
|
|
2104 |
(getStartAddress): Implemented
|
|
2105 |
|
|
2106 |
* cdi/MemoryManager.java: Implemented.
|
|
2107 |
|
|
2108 |
* command/MIDataReadMemory (getMIDataReadMemoryInfo):
|
|
2109 |
New helper method.
|
|
2110 |
|
|
2111 |
2002-10-12 Alain Magloire
|
|
2112 |
|
|
2113 |
* cdi/Location (getInstructions): Methods removed
|
|
2114 |
no longer define in ICDILocation.
|
|
2115 |
|
|
2116 |
2002-10-11 Alain Magloire
|
|
2117 |
|
|
2118 |
* cdi/SourceManager (getMixedInstruction):
|
|
2119 |
Implement the 3 new methods to return Mixed source
|
|
2120 |
and assemby instructions.
|
|
2121 |
|
|
2122 |
* cdi/MixedInstruction: New class implements
|
|
2123 |
ICDIMixedInstruction.
|
|
2124 |
|
|
2125 |
2002-10-11 Alain Magloire
|
|
2126 |
|
|
2127 |
* cdi/ExpressionManager.java: Not needed, removed.
|
|
2128 |
|
|
2129 |
2002-10-10 Alain Magloire
|
|
2130 |
|
|
2131 |
The Eclipse/UI/Debug framewok is being very repetive
|
|
2132 |
and each command can be ask 2, 3 times. So we'll try
|
|
2133 |
to make certain commands smarter by not reissuing them
|
|
2134 |
to gdb if the state is the same. We do this when
|
|
2135 |
selecting the thread and when selecting the stackframe.
|
|
2136 |
|
|
2137 |
The other problem is that Eclipse/UI/Debug is calling
|
|
2138 |
ICDISession.terminate() twice, this is catch by looking
|
|
2139 |
at isTerminated().
|
|
2140 |
|
|
2141 |
* cdi/CThread.java (setCurrentStackFrame): Make it smarter
|
|
2142 |
to not reselect the stack level if it is already at that
|
|
2143 |
level.
|
|
2144 |
|
|
2145 |
* MISession.java (isTerminated): Declare a flag that will
|
|
2146 |
hold the state.
|
|
2147 |
(terminate): Check if it was call already.
|
|
2148 |
|
|
2149 |
2002-10-10 Alain Magloire
|
|
2150 |
|
|
2151 |
* SourceManager.java: Implement getInstructions().
|