diff --git a/debug/org.eclipse.cdt.debug.mi.core/ChangeLog b/debug/org.eclipse.cdt.debug.mi.core/ChangeLog index a25c4b8e90f..458087f2d0c 100644 --- a/debug/org.eclipse.cdt.debug.mi.core/ChangeLog +++ b/debug/org.eclipse.cdt.debug.mi.core/ChangeLog @@ -1,9 +1,29 @@ +2004-03-14 Alain Magloire + + Break the ChangeLog file in two. + + * ChangeLog + * ChangeLog-2003 + +2004-03-14 Alain Magloire + + The Managers extends Manager class for more flexibility + + * cdi/org/eclipse/cdt/debug/mi/core/cdi/Manager.java + +2004-03-12 Tanya Wolff + + Marked strings as non-translatable and externalized strings in new exceptions thrown. + + * cdi/ + * src/ + 2004-03-12 Tanya Wolff Marked strings as non-translatable. * mi/ - + 2004-03-01 Alain Magloire Reog. New source browser. @@ -66,2154 +86,3 @@ * src/org/eclipse/cdt/debug/mi/core/cdi/model/Thread.java -2003-12-22 Mikhail Khodjaiants - Fix for bug 49282 terminate the gdb session if the termination of the inferior fails. - - * src/org/eclipse/cdt/debug/mi/core/cdi/model/Target.java - -2003-12-22 Mikhail Khodjaiants - Fix for Bug 49278 do not retry the "info threads" command if the first attempt fails. - Throw an exception from the "getCThreads" method when it fails. - - * src/org/eclipse/cdt/debug/mi/core/cdi/model/Target.java - -2003-12-18 Alain Magloire - - PR 49148 - Set environment variable value to give the program. - Arguments are VAR VALUE where VAR is variable name and VALUE is value. - VALUES of environment variables are uninterpreted strings. - This does not affect the program until the next "run" command. - - So pass the string raw. - - * src/org/eclipse/cdt/debug/mi/core/command/MIGDBSetEnvironment.java - * src/org/eclipse/cdt/debug/mi/core/cdi/RuntimeOptions.java - * src/org/eclipse/cdt/debug/mi/core/CommandFactory.java - -2003-12-17 Mikhail Khodjaiants - - Fix for bug 49061: Different values are used as default for the "Load shared library symbols automatically" option. - - * src/org/eclipse/cdt/debug/mi/core/GDBDebugger.java - * src/org/eclipse/cdt/debug/mi/core/GDBServerDebugger.java - * src/org/eclipse/cdt/debug/mi/core/IMILaunchConfigurationConstants.java - * src/org/eclipse/cdt/debug/mi/core/CygwinGDBDebugger.java - -2003-12-16 Mikhail Khodjaiants - - Show the gdb arguments when tracing. - - * src/org/eclipse/cdt/debug/mi/core/MIPlugin.java - -2003-12-16 Mikhail Khodjaiants - - Fix for PR 48870: Terminate gdb if attach to process fails. - - * src/org/eclipse/cdt/debug/mi/core/MIPlugin.java - -2003-12-09 Alain Magloire - - Do not try to interrupt if the target was suspended. - - * src/org/eclipse/cdt/debug/mi/core/MIInferior.java - -2003-12-08 Alain Magloire - - Target.terminate() did not pass the exception up. - Added new method MIInferior.terminate(). - - * src/org/eclipse/cdt/debug/mi/core/MIInferior.java - * src/org/eclipse/cdt/debug/mi/core/cdi/model/Target.java - -2003-12-02 Alain Magloire - - Retry the stack-info-depth when it fails the first time - and decrement the count. GDB can cope up the second try - and probably mark the thread invalid. - Patch base on Ashish Karkare patch: - - * src/org/eclipse/cdt/debug/mi/core/cdi/model/Thread.java - -2003-11-26 Mikhail Khodjaiants - Cleanup. - - * src/org/eclipse/cdt/debug/mi/core/cdi/model/Variable.java - * src/org/eclipse/cdt/debug/mi/core/GDBTypeParser.java - -2003-11-26 Mikhail Khodjaiants - Cleanup. - - * src/org/eclipse/cdt/debug/mi/core/GDBDebugger.java - * src/org/eclipse/cdt/debug/mi/core/GDBServerDebugger.java - * src/org/eclipse/cdt/debug/mi/core/CygwinGDBDebugger.java - * src/org/eclipse/cdt/debug/mi/core/cdi/BreakpointManager.java - * src/org/eclipse/cdt/debug/mi/core/cdi/event/ResumedEvent.java - * src/org/eclipse/cdt/debug/mi/core/cdi/model/Target.java - * src/org/eclipse/cdt/debug/mi/core/command/MIBreakAfter.java - * src/org/eclipse/cdt/debug/mi/core/event/MIFunctionFinishedEvent.java - * src/org/eclipse/cdt/debug/mi/core/event/MIInferiorSignalExitEvent.java - * src/org/eclipse/cdt/debug/mi/core/event/MISignalEvent.java - * src/org/eclipse/cdt/debug/mi/core/event/MIWatchpointTriggerEvent.java - * src/org/eclipse/cdt/debug/mi/core/output/MIGDBShowDirectoriesInfo.java - * src/org/eclipse/cdt/debug/mi/core/output/MIGDBShowSolibSearchPathInfo.java - * src/org/eclipse/cdt/debug/mi/core/output/MIList.java - -2003-11-25 Alain Magloire - - Process the suspend event even if there is not threads - or stack associated with the target. - - * src/org/eclipse/cdt/debug/mi/core/cdi/EventManager.java - -2003-11-22 Alain Magloire - - In MISession constructor if the initialization fails shutdown - the Tx/RX/Event threads. - In MIPlugin if the initialization fails shutdown the pty console. - Ditto for GDBDebugger/GDBServerDebugger/CygwinGDBDebugger. - - * src/org/eclipse/cdt/debug/mi/core/MIPlugin.java - * src/org/eclipse/cdt/debug/mi/core/MISession.java - * src/org/eclipse/cdt/debug/mi/core/GDBDebugger.java - * src/org/eclipse/cdt/debug/mi/core/GDBServerDebugger.java - * src/org/eclipse/cdt/debug/mi/core/CygwinGDBDebugger.java - -2003-11-21 Alain Magloire - - The wrong MIPlugin.createCSession() method was used. - Problem noted by Ashish. - - * src/org/eclipse/cdt/debug/mi/core/GDBServerDebugger.java - -2003-11-21 Mikhail Khodjaiants - - * src/org/eclipse/cdt/debug/mi/core/output/MIFrame.java - Fix for PR 46592: Debug View shows Functions as func(type param,...)(). - Return an empty string instead of "??" if the function name is not available. - -2003-11-20 Alain Magloire - - Fix NPE: 46313. Setting breakpoint when the target was running - was throwing NPE. - - * src/org/eclipse/cdt/debug/mi/core/cdi/BreakpointManager.java - * src/org/eclipse/cdt/debug/mi/core/cdit/EventManager.java - -2003-11-19 Mikhail Khodjaiants - - Fix for PR 45533: MIException while creating MISession can leave an orphan gdb process. - * src/org/eclipse/cdt/debug/mi/core/MIPlugin.java: removed the 'getAdjustedTimeout' method. - -2003-11-19 Mikhail Khodjaiants - - Fix for PR 45533: MIException while creating MISession can leave an orphan gdb process. - * src/org/eclipse/cdt/debug/mi/core/MIPlugin.java: initialization of preferences by default values. - * src/org/eclipse/cdt/debug/mi/core/MISession.java: removed the duplicate constant for the default - launch timeout value. - -2003-11-13 Mikhail Khodjaiants - - * src/org/eclipse/cdt/debug/mi/core/output/MIFrame.java - Fix for PR 46592: Debug View shows Functions as func(type param,...)(). - In some situations gdb returns the function names that include parameter types. - To make the presentation consistent truncate the parameters. - -2003-11-06 Alain Magloire - - * src/org/eclipse/cdt/debug/mi/core/cdi/EventManager.java: - Small fix for the defferred breakpoint support. - -2003-11-06 Alain Magloire - - Patch from Ashish Karkare: - A CDT 1.2 patch that enables setting of - serial line speed in the launch configuration when debugging remote targets. - - * src/org/eclipse/cdt/debug/mi/core/IGDBServerMILaunchConfigurationConstants.java - New attribute definition DEV_SPEED. - - * src/org/eclipse/cdt/debug/mi/core/GDBServerDebugger.java - Extracts serial speed value and passes it to createCSession(). - - -2003-10-29 Alain Magloire - - Deal with PR 45533 - - Make a preferenc for Timeout and use it when launching - the ICDebugger session, when way wait for for gdb - to say "ready" by returning the prompt. - - * src/org/eclipse/cdt/debug/mi/core/MISession.java - * src/org/eclipse/cdt/debug/mi/core/MIPlugin.java - * src/org/eclipse/cdt/debug/mi/core/IMIConstants.java - -2003-10-17 Alain Magloire - - Put the framework to deal with deferred breakpoint. - - * src/org/eclipse/cdt/debug/mi/core/cdi/event/ResumeEvent.java - Deal with MIRunningEvent.RETURN. - * src/org/eclipse/cdt/debug/mi/core/cdi/model/Breakpoint.java - Check if MIBreakpoint is null first. - * src/org/eclipse/cdt/debug/mi/core/cdi/model/Watchpoint.java - Check if MIWathchpoint is null first. - * src/org/eclipse/cdt/debug/mi/core/cdi/BreakpointManager.java - Implement Deferred Breakpoint - * src/org/eclipse/cdt/debug/mi/core/cdi/SharedLibraryManager.java - Implement Deferred Breakpoint - * src/org/eclipse/cdt/debug/mi/core/GDBDebugger.java - Enable deferredBreakpoint. - * src/org/eclipse/cdt/debug/mi/core/CygwinDebugger.java - Enable deferredBreakpoint. - - -2003-10-07 Mikhail Khodjaiants - - All methods of 'IRuntimeOptions' should throw CDI exceptions in case of failure. - * src/org/eclipse/cdt/debug/mi/core/cdi/RuntimeOptions.java - -2003-09-30 Alain Magloire - - ICDIVariableObject.equals(); - - * src/org/eclipse/cdt/debug/mi/core/cdi/model/VariableObject.java - -2003-09-29 Mikhail Khodjaiants - Added the initialization of the shared libraries' attributes to CygwinGDBDebugger. - - * src/org/eclipse/cdt/debug/mi/core/CygwinGDBDebugger.java - -2003-09-26 Alain Magloire - - Second part of PR 43496. - On the startup of GDB, we have to wait for "(gdb)" prompt - to make sure that gdb is ready to accept command. - - * src/org/eclipse/cdt/debug/mi/core/MIPlugin.java - -2003-09-25 Alain Magloire - - Fix for PR 43496. - In the event of an error we should Process.destroy() - after creating the Process. - - * src/org/eclipse/cdt/debug/mi/core/MIPlugin.java - -2003-09-11 Mikhail Khodjaiants - Moving the shared library search paths block to mi UI. - * IMILaunchConfigurationConstants.java: added the 'ATTR_DEBUGGER_SOLIB_PATH' attribute. - -2003-09-11 Alain Magloire - - Fix to info shared parsing. - - * src/org/eclipse/cdt/debug/mi/core/output/MIInfoSharedLibary.java - -2003-09-09 Mikhail Khodjaiants - Regrouping the launch configuration constants. - * IMILaunchConfigurationConstants.java - -2003-09-09 Mikhail Khodjaiants - Added the 'stop-on-solib-events' option. - Changed the initialization of the shared library search path. - Changed the messages of the thrown exceptions. - * GDBDebugger.java - -2003-09-09 Mikhail Khodjaiants - - CoreFileConfiguration supports shared libraries. - - * src/org/eclipse/cdt/debug/mi/core/cdi/CoreFileConfiguration.java - -2003-08-30 Alain Magloire - - Unnecessary synchronization making deadlocks. Should revisit this code. - - * src/org/eclipse/cdt/debug/mi/core/MIInferior.java - -2003-08-29 Mikhail Khodjaiants - - Added new command - 'set stop-on-solib-events'. - - * src/org/eclipse/cdt/debug/mi/core/command/MIGDBSetStopOnSolibEvents.java - * src/org/eclipse/cdt/debug/mi/core/command/CommandFactory.java - - Implementation of the new methods added to the 'ICDISharedLibraryManager' interface. - - * src/org/eclipse/cdt/debug/mi/core/cdi/SharedLibraryManager.java - -2003-08-26 Alain Magloire - - This is still a hack: "info shared" the real solution - is to implement in GDB/MI the corresponding command. - So now we do weird parsing, that varies from platform - to platform. For example Cygwin output of "info shared" - is totally different from the GNU/Linux one etc ... - We the best we can to cope ... but things will break. - - * src/org/eclipse.cdt/debug/mi/core/output/MIInfoSharedLibraryInfo.java - -2003-08-26 Alain Magloire - - Using the wrong method for toString() and we were returning - a overly verbose string. - - * src/org/eclipse/cdt/debug/mi/core/GDBTypeParser.java - -2003-08-25 Alain Magloire - - Small fix, get the datatype for the GDBTypeParser. - - * src/org/eclipse/cdt/debug/mi/core/cdi/SourceManager.java - -2003-08-22 Alain Magloire - - For casting array we use the "@" format, hide it in - the name. But show it the qualifiedName() since the - expression is use to evaluate. - - * src/org/eclipse/cdt/debug/mi/core/cdi/model/Variable.java - * src/org/eclipse/cdt/debug/mi/core/cdi/model/VariableObject.java - * src/org/eclipse/cdt/debug/mi/core/cdi/VariableManager.java - -2003-08-21 Alain Magloire - - GDB varobj for the arrays children name only returns - the index. We need to construct the entire name: - char buffer[2] - GDB return "0", "1" for the children names. - We will return - "buffer[0]", "buffer[1]" - - * src/org/eclipse/cdt/debug/mi/core/cdi/Variable.java - -2003-08-20 Alain Magloire - - GDB/MI altough define an interface that all commands should - follow .. they do not. For example, we should be able - to separate options from agument with a "--" string not - all commands. The latest is -break-condition. - So we override the MICommand.toString() to do specific - parsing for specific commands. - - * src/org/eclipse/cdt/debug/mi/core/command/MICommand.java - break the toString() method. - * src/org/eclipse/cdt/debug/mi/core/command/MIBreakCondition.java - -2003-08-19 Alain Magloire - - Fix to the GDBTypeParser to deal with gdb - awkwardness - * src/org/eclipse/cdt/debug/mi/core/GDBTypeParser.java - -2003-08-19 Alain Magloire - - GDB, uses false category for C++ class/struct. - Fix to return the correct name. - - * src/org/eclipse/cdt/debug/mi/core/cdi/model/Variable.java - -2003-08-18 Alain Magloire - - Patch from Chris Songer, excerpt from the email. - Using the phrase "To ensure consistency between a register name and its - number, the output list may include empty register names," the MI protocol - appears to allow gdb to return a "sparse" array of registers by giving a 0 - length name in response to the -data-list-register-names-command. CDT 1.0.1 - does not handle this especially well and subsequently exposes a bug in GDB - 5.1.3 and crashes it if the debugger has more than 3 register names of 0 - length. - - example: - - 8-data-list-register-names - (gdb) - 8^done,register-names=["ar0","ar1",... ,"","","","","","","ur0",\ - "ur1","ur2","ur3","ur4","ur5","ur6","ur7","","" ..] - - - * src/org/eclipse/cdt/debug/mi/core/output/MIDataListRegisterNamesInfo.java: - New method getNumRealNames(). - * src/org/eclipse/cdt/debug/mi/core/cdi/RegisterManager.java: - Check if the register name is not empty. - -2003-08-18 Alain Magloire - - From the manual: - By default GDB will automatically keep track of objects as they are - loaded and unloaded by the dynamic linker. By using the command `set - stop-on-solib-events 1' you can arrange for GDB to stop the inferior - when shared library events occur, thus allowing you to set breakpoints - in shared libraries which are explicitly loaded by the inferior. - - * src/org/eclipse/cdt/debug/mi/core/event/MISharedLibEvent.java: - New file, StoppedEvent du to shared lib events. - * src/org/eclipse/cdt/debug/mi/core/cdi/event/SuspendedEvent.java: - Catch MISharedLibEvent. - * src/org/eclipse/cdt/debug/mi/core/cdi/SharedLibraryevent.java: - New file implements ICDISharedLibaryEvent. - * src/org/eclipse/cdt/debug/mi/core/RxThread.java: - Hack to catch suspend/stop on shared library. - -2003-08-11 Mikhail Khodjaiants - * src/org/eclipse/cdt/debug/mi/core/cdi/model/type/ArrayValue.java: - * src/org/eclipse/cdt/debug/mi/core/cdi/VariableManager.java: - Removed the 'type' parameter from the 'getVariableObjectAsArray' method. - -2003-08-11 Mikhail Khodjaiants - * src/org/eclipse/cdt/debug/mi/core/cdi/model/type/ArrayValue.java: - The 'type' argument of the 'getVariableObjectAsArray' method shouldn't be null. - -2003-08-11 Mikhail Khodjaiants - * src/org/eclipse/cdt/debug/mi/core/cdi/variableManager.java - Mistype in the 'CheckType' method. - -2003-08-07 Alain Magloire - - * src/org/eclipse/cdt/debug/mi/core/cdi/variableManager.java - getVariableObjectAsArray() ignore the type argument it does - not work with gdb. - - * src/org/eclipse/cdt/debug/mi/core/cdi/model/VariableObject.java - Added hasChildren() method. - -2003-08-07 Alain Magloire - - * src/org/eclipse/cdt/debug/mi/core/cdi/VariableManager.java: - Update the interface to reflect ICDIVariableManager. - -2003-08-06 Mikhail Khodjaiants - * src/org/eclipse/cdt/debug/mi/core/cdi/model/type/ArrayValue.java: - Removed the unused local variable 'children' from the 'getVariables' method. - -2003-08-07 Alain Magloire - - PR 38964. - - * src/org/eclipse/cdt/debug/mi/core/MIInferior.java: - The method interrupted was synchronized and so was the - setSuspended(). Now do a notify when the status change. - Throw an exception if the interrupt() failed. - * src/org/eclipse/cdt/debug/mi/core/cdi/model/Target.java: - Do not check for running. - -2003-08-06 Alain Magloire - - Dealing with casting: Casting a field of a structure did not - work properly for example: - struct foo { int bar; } foobar; - To cast the field bar, we need to construct the full qualified - name "foobar.bar". - Unfortunately for C++ things are hectic in the GDB/MI world - the childre of structure are not the fields. So we try to - deal with it too. - - * src/org/eclipse/cdt/debug/mi/core/cdi/model/Variable.java: - New constructor, new method getLanguage() to deal with - different type of languages ex: C vs C++. - * src/org/eclipse/cdt/debug/mi/core/cdi/model/VariableObject.java: - Clean up and added a bunch of set/getXXX() methods instead of - accessing directly the fields. - * src/og/eclipse/cdt/debug/mi/core/cdi/VariableManager.java: - Clean the methods use for casting and format the indentation. - * src/org/eclipse/cdt/debug/mi/core/command/MIVarInfoExpression.java: - Added parsing method. - -2003-08-06 Alain Magloire - - * src/org/eclipse/cdt/debug/mi/core/cdi/model/VariableObject.java: - Implement isEditable method. - -2003-08-06 Mikhail Khodjaiants - * src/org/eclipse/cdt/debug/mi/core/cdi/model/Variable.java: - Fix for 'isEditable'. - * src/org/eclipse/cdt/debug/mi/core/cdi/model/VariableObject.java: - Use correct expression in 'sizeof'. - -2003-08-06 Alain Magloire - - First framework to deal with breaking the arrays in ranges. - - * src/org/eclipse/cdt/debug/mi/core/cdi/model/Argument.java: - Remove unused getArgumentObject(). - * src/org/eclipse/cdt/debug/mi/core/cdi/model/Register.java: - Remove unuse getRegisterObject(). - * src/org/eclipse/cdt/debug/mi/core/cdi/model/Variable.java: - Move methods to VariableObject to comply with the interface. - * src/org/eclipse/cdt/debug/mi/core/cdi/model/VariableObject.java: - Implement new methods of ICDIVariableObject.java - Save the castin information. - * src/org/eclipse/cdt/debug/mi/core/cdi/model/type/ArrayValue.java: - New method getVariables(int, int). - * src/org/eclipse/cdt/debug/mi/core/cdi/VariableManager.java: - New method encodeVariable(), to get the encode specific string - for gdb casting of arrays. - -2003-07-28 Mikhail Khodjaiants - - Minimize the number of the "evaluate expression" requests when changing the value of the floating point types. - - * src/org/eclipse/cdt/debug/mi/core/cdi/model/type/FloatingPointValue.java - -2003-07-17 Alain Magloire - - Catch the use of cli command "detach" and fire the appropriate events. - - * src/org/eclipse/cdt/debug/mi/core/CLIProcessor.java - -2003-07-16 Alain Magloire - - Provide FunctionValue, PointerValue and ArrayValue. - For ArrayValue apply the patch from Chris Songer, excerpt from - his email: - Given GDB performance, we saw CDT start to time out on large array - requests. The following patch corrects this by scaling the time out with - the number of children being retrieved. I have not looked at the head on - this so your mileage may vary. On 1.0.1 with this and the MIParser change - you can open 16k arrays. - - * src/org/eclipse/cdt/debug/mi/core/cdi/model/type/AggregateValue.java - * src/org/eclipse/cdt/debug/mi/core/cdi/model/type/DerivedValue.java - * src/org/eclipse/cdt/debug/mi/core/cdi/model/type/PointerValue.java - * src/org/eclipse/cdt/debug/mi/core/cdi/model/type/ReferenceValueValue.java - * src/org/eclipse/cdt/debug/mi/core/cdi/model/type/ArrayValue.java - * src/org/eclipse/cdt/debug/mi/core/cdi/model/type/StructValue.java - * src/org/eclipse/cdt/debug/mi/core/cdi/model/Value.java - * src/org/eclipse/cdt/debug/mi/core/cdi/model/Variable.java - -2003-07-10 Alain Magloire - - In the case of not having a PTY to unmixed inferior output from gdb commands - do the only sane thing and when a response comes in that is not a valid - MI format consider it as inferior output. - - * src/org/eclipse/cdt/debug/mi/core/output/MIParser.java: - Put non valid lines in the TargetStream. - * src/org/eclipse/cdt/debug/mi/core/MIInferior.java: - Pass output straight to the target. - * src/org/eclipse/cdt/debug/mi/core/TxThread.java: - Remove unused code. - * src/org/eclipse/cdt/debug/mi/core/command/Command.java: - Try to remove duplicate errors when throwing the MIException. - -2003-07-08 Alain Magloire - - Unfortunately GDB/MI does not make the errors available via the advertise - way explain in the documentation, for example: - 27-var-create - * this->aaa - &"There is no member or method named aaa.\n" - &"Type Hello has no component named aaa.\n" - 27^error,msg="." - - According to the doc, the error should be available in the msg field: - 27^error,msg="There is no member or method named aaaa" - - Since this will not be fix in GDB/MI anytime soon, we cope with it by - grabing the logstream error and make it available in - - CDIException.getDetailedMesssage(). - - * src/org/eclipse/cdt/debug/mi/core/command/*.java: All the commands - changed to grab also the logstream messages if any for the exception. - -2003-06-25 Alain Magloire - - Patch from Chris Songer, excerpt from its email: - The MIParser is O(N^2) time in the length of a line returned from GDB. - While not an issue for OOB messages, this can be quite an issue for array - retrieval from the target and other potentially long messages. It's N^2 - because it relies on StringBuffer.deleteCharAt( 0 ) and - StringBuffer.delete( 0, X ). These operations appear to do a copy of the - remaining data in the Sun Java library rather than bumping some index. - - The following diffs are code that we are using on 1.0.1 to correct this - issue. It's relatively new, so there may be some bugs but has certainly - performed just fine in our initial regressions. Because of that I'm not - sending it in as a patch, more an FYI really. The basic change is exactly - what you'd expect: these diffs make MIParser use a new type of string - buffer that's quite efficient at deleting from the head of the array. - - * src/org/eclipse/cdt/debug/mi/core/output/MIParser.java - -2003-06-18 Alain Magloire - - * src/org/eclipse/cdt/debug/mi/core/cdi/event/ChangedEvent.java: - Check if the variable was a register. - * src/org/eclipse/cdt/debug/mi/core/cdi/event/CreatedEvent.java: - Cleanup. - * src/org/eclipse/cdt/debug/mi/core/cdi/model/Register.java: - Removing of method {get,set}Value() and new method getChildren(). - * src/org/eclipse/cdt/debug/mi/core/cdi/model/Variable.java - (setValue): calls update on the appropriate manager. - * src/org/eclipse/cdt/debug/mi/core/cdi/model/RegisterValue.java: - Remove file, unused. - * src/org/eclipse/cdt/debug/mi/core/cdi/VariableManager.java: - (getVariableObjectAsType): check for register. - (getVariableObjectAsArray): check for register. - * src/org/eclipse/cdt/debug/mi/core/cdi/RegisterManager.java: - (getRegister): reimplemented. - -2003-06-18 Mikhail Khodjaiants - Removed unused local variable. - * src/org/eclipse/cdt/debug/mi/core/cdi/RegisterManager.java - -2003-06-17 Alain Magloire - - PR 38934 - * src/org/eclipse/cdt/debug/mi/core/cdi/RegisterManager.java (update): - We have to call "-var-update" to update the register values in gdb. - -2003-06-05 Mikhail Khodjaiants - gdb/mi support of infinite values of the floating point types. - * DoubleValue.java - * FloatingPointValue.java - * FloatValue.java - -2003-06-05 Mikhail Khodjaiants - Removed the redundant methods from the 'ICDIFloatingPointValue' interface. - * src/org/eclipse/cdt/debug/mi/core/cdi/model/type/FloatingPointValue.java - -2003-06-04 Mikhail Khodjaiants - Correction in the parsing of reference value. - * src/org/eclipse/cdt/debug/mi/core/cdi/model/type/ReferenceValue.java - -2003-06-04 Mikhail Khodjaiants - Added some missing types and methods for the type parsing. - * src/org/eclipse/cdt/debug/mi/core/cdi/model/Variable.java - * src/org/eclipse/cdt/debug/mi/core/cdi/model/type/ArrayType.java - * src/org/eclipse/cdt/debug/mi/core/cdi/model/type/DoubleValue.java - * src/org/eclipse/cdt/debug/mi/core/cdi/model/type/FloatingPointValue.java - * src/org/eclipse/cdt/debug/mi/core/cdi/model/type/FloatValue.java - * src/org/eclipse/cdt/debug/mi/core/cdi/model/type/PointerValue.java: new - * src/org/eclipse/cdt/debug/mi/core/cdi/model/type/ReferenceValue.java: new - -2003-06-03 Alain Magloire - - * src/org/eclipse/cdt/debug/mi/core/GDBTypeParser.java: - Bug fix gdb returns fix like "char [200]" no variables. - -2003-06-03 Alain Magloire - - * src/org/eclipse/cdt/debug/mi/core/cdi/SourceManager.java - (getType): save the head of the type for the return value. - -2003-06-02 Alain Magloire - - Enable the new type parsing with the class GDBTypeParser. - This class takes the output of GDB/MI - (gdb) whatis - or - (gdb) ptype - And parse it. - - * src/org/eclipse/cdt/debug/mi/core/cdi/model/type/ArrayType.java - * src/org/eclipse/cdt/debug/mi/core/cdi/model/type/DerivedType.java - * src/org/eclipse/cdt/debug/mi/core/cdi/model/type/PointerType.java - * src/org/eclipse/cdt/debug/mi/core/cdi/model/type/FunctionType.java - * src/org/eclipse/cdt/debug/mi/core/cdi/SourceManager.java - * src/org/eclipse/cdt/debug/mi/core/GDBTypeParser.java - -2003-05-25 Alain Magloire - - Do extra parsing. - * src/org/eclipse/cdt/debug/mi/core/model/type/ArrayType.java - * src/org/eclipse/cdt/debug/mi/core/model/type/DerivedType.java - * src/org/eclipse/cdt/debug/mi/core/model/type/PointerType.java - * src/org/eclipse/cdt/debug/mi/core/model/type/FunctionType.java - * src/org/eclipse/cdt/debug/mi/core/model/Variable.java - -2003-05-24 Alain Magloire - - * src/org/eclipse/cdt/debug/mi/core/cdi/StackFrame.java - When execption reset the variable to null and rethrow the exception. - -2003-05-24 Alain Magloire - - Continuing the implementation of types. - ICDIType is ICDIObject. - * src/org/eclispe/cdt/mi/core/cdi/model/type/Type.java: - Extends CObject - -2003-05-23 Alain Magloire - - Draft implementation of org.eclipse.cdt.debug.core.cdi.model.type/* - -2003-05-06 Alain Magloire - - * src/org/eclipse/cdt/debug/mi/core/cdi/model/Thread.java (suspend): - Suspend the program before selecting the thread. - -2003-05-01 Mikhail Khodjaiants - Implementations of the new "terminateSessionOnExit" method of ICDIConfiguration. - * Configuration.java - * CoreFileConfiguration.java - -2003-04-30 Alain Magloire - - * src/org/eclipse/cdt/debug/mi/core/MIPlugin.java: - Call MIInferior.update() if attaching session. - -2003-04-30 Alain Magloire - - * src/org/eclipse/cdt/debug/mi/core/cdi/Configuration.java (supportsTerminate): - Returns true. - -2003-04-25 Alain Magloire - - * src/org/eclipse/cdt/debug/mi/core/EventManager.java (update): - Remove the call to MIInferior.update(), wrong place. - * src/org/eclipse/cdt/debug/mi/core/EventThread.java (run): - Call MIInferior.update() when suspended. - * src/org/eclipse/cdt/debug/mi/core/MIInferior.java (update): - Do not do the call to "info program" for type "attached" sessions. - * src/org/eclipse/cdt/debug/mi/core/MISession.java (terminate): - When terminate() is call disable posting commands to the queue etc... - -2003-04-25 Mikhail Khodjaiants - - Fix for bug 36909. - * MIFrame.java: - gdb returns "??" as a function name if symbols are not available. - Set the function name in this case to ""; - -2003-04-24 Alain Magloire - - * src/org/eclipse/cdt/debug/mi/core/command/CommandFactory.java (createMIInfoProgram): - New method. - * src/org/eclipse/cdt/debug/mi/core/command/MIInfoProgram.java: - New file, "info program". - * src/org/eclipse/cdt/debug/mi/core/output/MIInfoProgramInfo.java: - New file, parsing of "info Program". - * src/org/eclipse/cdt/debug/mi/core/output/EventManager.java (processSuspend): - Call MIInferio.update(); - * src/org/eclipse/cdt/debug/mi/core/MIInferior.java (update): - New method to retrieve the pid. - (interrupt): Try doing Spawner.raise(pid, INT) as a fallback. - * src/org/eclipse/cdt/debug/mi/core/cdi/Configuration.java (supportSuspend): - Bug fix. - -2003-04-23 Alain Magloire - - * src/org/eclipse/cdt/debug/mi/core/cdi/SignalManager.java (update): - Move the creation of the list after the call to "info signals". - The call may fail. - -2003-04-21 Alain Magloire - - * src/org/eclipse/cdt/debug/mi/core/cdi/Target.java (suspend): - Remove the delay of 10 secs. - * src/org/eclipse/cdt/debug/mi/core/MIInferior.java (interrupt): - Do a delay of 10 secs to allow time for the inferior to stop. - * src/org/eclipse/cdt/debug/mi/core/MISession.java (terminate) : - Clear the EventQueue, if we restart. - * src/org/eclipse/cdt/debug/mi/core/Queue (isEmpty): - New method. - -2003-04-21 Alain Magloire - - * src/org/eclipse/cdt/debug/mi/core/GDBDebugger.java: - * src/org/eclipse/cdt/debug/mi/core/GDBServerDebugger.java: - Ignore exception when doing "set auto-solib-path on". - -2003-04-17 Alain Magloire - - * src/org/eclipse/cdt/debug/mi/core/cdi/model/Target.java: - setCurrentThread(), calls VariableManager.update(); - * src/org/eclipse/cdt/debug/micore/cdt/model/Thread.java: - setCurrentStackFrame() calls VariableManager.update(); - -2003-04-07 Mikhail Khodjaiants - Changed the messages of CDI exceptions. - * MISession.java - * Target.java - -2003-04-04 Alain Magloire - - Code from Monta Vista to add a Session via GDBServer. - - * src/org/eclipse/cdt/debug/mi/core/MIPlugin.java: - * src/org/eclipse/cdt/debug/mi/core/GDBServerDebugger.java: - * src/org/eclipse/cdt/debug/mi/core/IGDBServerMILaunchConfigurationConstants.java: - * plugin.xml - -2003-04-04 Alain Magloire - - * src/org/eclipse/cdt/debug/mi/core/cdt/VariableManager.java: - Check for null in update(). - -2003-04-03 Alain Magloire - - * src/org/eclipse/cdt/debug/mi/core/cdt/VariableManager.java: - update(), put a limit on the number of stack we check for variables. - -2003-04-03 Alain Magloire - - * src/org/eclipse/cdt/debug/mi/core/cdt/model/Target.java: - * src/org/eclipse/cdt/debug/mi/core/cdt/model/Thread.java: - Before updating the register check if the manager is on autoupdate. - -2003-04-02 Alain Magloire - - * src/org/eclipse/cdt/debug/mi/core/cdt/model/Target.java: - suspend() sync for at least < 10 seconds to allow the gdb to - suspend via SIGINT the program. - -2003-03-28 Mikhail Khodjaiants - Added time stamp to the trace messages. - * MIPlugin.java - -2003-03-28 Mikhail Khodjaiants - Correction of the previous patch. - * MIAsm.java - -2003-03-27 Mikhail Khodjaiants - Applied patch from Chris Songer: Assembly View Fixups - * Instruction.java - * MIAsm.java - -2003-03-19 Alain Magloire - - Some applications, like recursive code, have a very deep stackframes - bigger > 50. This can turn out to be a problem, as the VariableManager - will try to update all the variables and there can be a lot of local - variable in all those stackframes. We can not use: - "-var-update *" - either since on gdb-5.2.1, for reasons unknown to me this will make - gdb unstable/crash. So the approach is to only update variables - in the current stackframe. - The advantage we only update a small set of variables. - The downside if we have side effects i.e. pointers pass to - argument and modifying the pointer affect the callees memory. - But this is a small price to pay and usually C/C++ programmer - are interrested to see changes of variables in the current stack - not changes 20 stack before. - - * src/org/eclipse/cdt/debug/mi/core/cdi/VariableManager.java: - Method update() only check the variable in the scope of the - current stackframe(the highest stack). This will include - any globals. - -2003-03-19 Alain Magloire - - Base on PR/patch from Chris Songer. - Assigning a value to a register may have side-effects - on other registers. When assigning, the action is now - to upate again the values. The same for the variables. - - * src/org/eclipse/cdt/debug/mi/core/cdi/model/Variable.java: - * src/org/eclipse/cdt/debug/mi/core/cdi/model/Register.java: - Method setValue() calls manager.update() after the assignment. - -2003-03-17 Alain Magloire - - * src/org/eclipse/cdt/debug/mi/core/cdi/model/StackFrame.java: - getArguments() and getLocalVariable() are caching the results. - -2003-03-16 Alain Magloire - - GDB/MI does not keep the stack level, from what we expect. In gdb, the - highest stack is level 0 and lower stack as the highest level: - -stack-list-frames - ^done,stack=[frame={level="0 ",addr="0x0804845b",func="main",file="hello.c",line="24"}, - frame={level="1 ",addr="0x42017499",func="__libc_start_main",from="/lib/i686/libc.so.6"}] - - -stack-list-frames - ^done,stack=[frame={level="0 ",addr="0x08048556",func="main2",file="hello.c",line="58"}, - frame={level="1 ",addr="0x08048501",func="main",file="hello.c",line="41"}, - frame={level="2 ",addr="0x42017499",func="__libc_start_main",from="/lib/i686/libc.so.6"}] - - This is of no use to us since the level is always "0". The level is necessary for example when - doing recursive calls to make a distinction between frames. - So in CDT this reverse the hidghest frame will have the highest number. In CDT: - stack=[frame={level="2 ",addr="0x0804845b",func="main",file="hello.c",line="24"}, - frame={level="1 ",addr="0x42017499",func="__libc_start_main",from="/lib/i686/libc.so.6"}] - - stack=[frame={level="3 ",addr="0x08048556",func="main2",file="hello.c",line="58"}, - frame={level="2 ",addr="0x08048501",func="main",file="hello.c",line="41"}, - frame={level="1 ",addr="0x42017499",func="__libc_start_main",from="/lib/i686/libc.so.6"}] - - - * src/org/eclipse/cdt/debug/mi/core/cdi/model/StackFrame.java: - Takes a new Argument in the constructor, the level. - * src/org/eclipse/cdt/debug/mi/core/cdi/model/Threawd.java: - Create the StackFrame with the constructor. - * src/org/eclipse/cdt/debug/mi/core/cdi/Location.java: - Fix equals(). - * src/org/eclipse/cdt/debug/mi/core/cdi/VariableManager.java: - Use the right level when setting the frame. - -2003-03-14 Alain Magloire - - * src/org/eclipse/cdt/debug/mi/core/cdi/model/Argument.java: - New method getArgumentObject(). - * src/org/eclipse/cdt/debug/mi/core/cdi/model/Register.java: - New method getRegisterObject(). - * src/org/eclipse/cdt/debug/mi/core/cdi/VariableManager.java: - Checks for ICDIVariable and ICDIArgument since they are now ICDIVariableObject too. - * src/org/eclipse/cdt/debug/mi/core/cdi/RegisterManager.java: - Checks for ICDIRegister when creating since they are now ICDIRegisterObject too. - -2003-03-13 Alain Magloire - - Small bug fix - * src/org/eclipse/cdt/debug/mi/core/cdi/VariableManager.java - -2003-03-13 Alain Magloire - - * src/org/eclipse/cdt/debug/mi/core/cdi/VariableManager.java: - New method getLocalVariableObjects() implemented returns all the local. - * src/org/eclipse/cdt/debug/mi/core/cdi/model/StackFrame.java - getLocalVariables() use getLocalVariableObjects(). - * src/org/eclipse/cdt/debug/mi/core/cdi/model/Variable.java: - getName() does not longer throw an Exception. - -2003-03-11 Alain Magloire - - * src/org/eclipse/cdt/debug/mi/core/cdi/VariableManager.java: - New methods getVariableObjectAsArray() getVariableObjectAsType(). - -2003-03-03 Alain Magloire - - * src/org/eclipse/cdt/debug/mi/core/CommandQueue.java (print): Comment out. - * src/org/eclipse/cdt/debug/mi/core/Queue.java (print): Comment out. - -2003-02-12 Mikhail Khodjaiants - The 'setAutoSolib' method is no longer in ICDISharedLibraryManager. - * GDBDebugger.java - -2003-02-12 Alain Magloire - - * src/org/eclipse/cdt/debug/mi/core/cdi/model/Target.java: - Removed getRegisterObjects(), getRegisters(), getSharedLibraries(). - Those actions are done via the managers. - - * src/org/eclipse/cdt/debug/mi/core/cdi/model/Variable.java (getChild): - Check the grand children also. - -2003-02-12 Alain Magloire - - * src/org/eclipse/cdt/debug/mi/core/cdi/SharedLibraryManager.java (isAutoLoadSymbols): - New method. - * src/org/eclipse/cdt/deb/mi/core/command/MIGDBShow.java (getMIGDBShowInfo): - New method. - -2003-02-12 Alain Magloire - - * src/org/eclipse/cdt/debug/mi/core/cdi/event/ChangedEvent.java (ChangedEvent): - Returns a Variable. - * src/org/eclipse/cdt/debug/mi/core/cdi/event/DestroyedEvent.java (DestroyedEvent): - Check if it was an expression also. - * src/org/eclipse/cdt/debug/mi/core/cdi/model/Value.java (getVariables): - Calls the parent's implementation. - * src/org/eclipse/cdt/debug/mi/core/cdi/model/Variable.java (getVariables): - New implementation. - * src/org/eclipse/cdt/debug/mi/core/cdi/EventManager.java (update): - Deal with new MIVarDeleteEvent. - * src/org/eclipse/cdt/debug/mi/core/cdi/ExpressionManager.java (addExpression): - Removed. - (removeExpression): New method. - * src/org/eclipse/cdt/debug/mi/core/event/MIVarChangedEvent.java (getScope): - removed. - * src/org/eclipse/cdt/debug/mi/core/event/MIVarDeletedEvent.java: - New file. - -2003-02-09 Alain Magloire - - in GDB/MI 5.3 and below, the -data-list-register-xxx can bring gdb down with - an assert(). The problem is that code like this - ui_out_list_begin(); - for () { - if(error) - return ERROR; - } - ui_out_list_end(); - The ui_out_list_end() is never call. - However gdb offers the varobj to deal cleanly with register but calling - "-var-update *" seems to make gdb misbehave and hang after a while. - So we use a mixed of -data-list-register-xxx calls and var-object to deal - with registers and do not call "-var-update *" but rather call it for - each time for individual objects to see the updates. - - * src/org/eclipse/cdt/debug/mi/core/cdi/model/Register.java: - Reimplemented to use the var obj. - * src/org/eclipse/cdt/debug/mi/core/cdi/model/RegisterValue.java: - New file implement ICDIValue. - * src/org/eclipse/cdt/debug/mi/core/cdi/EventManagero.java (processSuspendedEvent): - Call each manager.update(). - * src/org/eclipse/cdt/debug/mi/core/cdi/ExpressionManager.java (update): - Reimplemented. - * src/org/eclipse/cdt/debug/mi/core/cdi/RegisterManager.java (update): - Reimplemented - * src/org/eclipse/cdt/debug/mi/core/cdi/UpdateManager.java: - Removed. - * src/org/eclipse/cdt/debug/mi/core/cdi/IUpdateListener.java: - Removed. - * src/org/eclipse/cdt/debug/mi/core/CLIProcessor.java: - Catch the cli "run" command. - -2003-02-06 Alain Magloire - - * src/org/eclipse/cdt/debug/mi/core/cdi/VariableManager.java (getVariableArrayObject): - New Method to type cast in an array. - * src/org/eclipse/cdt/debug/mi/core/cdi/model/VariableObject.java (VariableObject): - New constructor. - * src/org/eclipse/cdt/debug/mi/core/cdi/SignalManger.java(getSignal): - Return an signal object even when the session is terminated. - -2003-02-05 Alain Magloire - - * src/org/eclipse/cdt/debug/mi/core/command/MISignal.java: - * src/org/eclipse/cdt/debug/mi/core/command/MIJump.java: - Return a fake ^running, since the MI semantic is not respected. - -2003-02-04 Alain Magloire - - * src/org/eclipse/cdt/debug/mi/core/CLICommand.java: - Catch cli command "jump" - -2003-02-04 Alain Magloire - - * src/org/eclipse/cdt/debug/mi/core/cdi/model/Target.java: - * src/org/eclipse/cdt/debug/mi/core/cdi/model/Thread.java: - New implementation for signal(), jump, and stepReturn(boolean). - * src/org/eclipse/cdt/debug/mi/core/cdi/model/Signal.java: - (signal): Calls Target.signal(). - * src/org/eclipse/cdt/debug/mi/core/cdi/model/SignalManager.java: - (signal): Method removed. - * src/org/eclipse/cdt/debug/mi/core/command/MIJump.java: - New file. - * src/org/eclipse/cdt/debug/mi/core/command/CommandFactory.java: - New method creteMIJump(). - -2003-02-04 Alain Magloire - - * src/org/eclipse/cdt/debug/mi/core/cdi/SignalManger.java: - Implement signal() method. - * src/org/eclipse/cdt/debug/mi/core/command/MISignal.java: - New file. - * src/org/eclipse/cdt/debug/mi/core/command/CommandFactory.java: - (createMISignal): new method. - -2003-02-04 Alain Magloire - - * src/org/eclipse/cdt/debug/mi/core/cdi/event/ExitedEvent.java: - Catch MIInferiorSignalExitEvent. - * src/org/eclipse/cdt/debug/mi/core/cdi/event/ExitedEvent.java: - Catch MIInferiorSignalExitEvent. - * src/org/eclipse/cdt/debug/mi/core/cdi/SignalExitInfo.java: - New File. - * src/org/eclipse/cdt/debug/mi/core/event/MIInferiorSignalExitEvent.java: - New File - * src/org/eclipse/cdt/debug/mi/core/event/CLIProcessir.java: - "signal" command is like continue. - * src/org/eclipse/cdt/debug/mi/core/event/RxThread.java: - Catch MIInferiorSignalExitEvent. - -2003-02-04 Alain Magloire - - Refactor MISignal in MISigHandle to not confus with - CLI command "signal SIGNAL". - - * src/org/eclipse/cdt/debug/mi/core/cdi/model/Signal.java: - * src/org/eclipse/cdt/debug/mi/core/cdi/SignalManager.java: - * src/org/eclipse/cdt/debug/mi/core/output/MIInfoSignalsInfo.java: - * src/org/eclipse/cdt/debug/mi/core/output/MISigHandle.java: - -2003-02-03 Alain Magloire - - * src/org/eclipse/cdt/debug/mi/core/cdi/SharedLibraryManager.java: - (loadSymbols): set the read flag to true. - * src/org/eclipse/cdt/debug/mi/core/cdi/model/SharedLibrary.java: - (getMIShared): New method. - * src/org/eclipse/cdt/debug/mi/core/output/MIShared.java: - (setSymbolsRead): New method. - -2003-02-01 Alain Magloire - - * src/org/eclipse/cdt/debug/mi/core/cdi/event/ChangedEvent.java: - Support for ICDISignal event. - * src/org/eclipse/cdt/debug/mi/core/cdi/model/Signal.java (handle): - Implemented. - * src/org/eclipse/cdt/debug/mi/core/cdi/EventManager.java (update): - Support for ICDISignal event. - * src/org/eclipse/cdt/debug/mi/core/cdi/SignalManager.java (handle): - New method. - * src/org/eclipse/cdt/debug/mi/core/command/CommandFactory.java (createMIHandle): - New method - * src/org/eclipse/cdt/debug/mi/core/command/MIHandle.java: - New File. - * src/org/eclipse/cdt/debug/mi/core/CLICommand.java: - Check for "handle" and "signal" cli command. - -2003-01-31 Alain Magloire - - * src/org/eclipse/cdt/debug/mi/core/cdi/event/DestroyedEvent.java: - Use deleteSharedLibrary from the manager. - * src/org/eclipse/cdt/debug/mi/core/cdi/signal/Signal.java: - Construct a signal base on the MISignal response. - * src/org/eclipse/cdt/debug/mi/core/cdi/BreakpointManager.java - (suspendedInferior): Take ICDITarget as argument. - (resumeInferior): Take ICDITarget as argument. - * src/org/eclipse/cdt/debug/mi/core/cdi/SharedLibraryManager.java - (containsSharedLibrary): removed. - * src/org/eclipse/cdt/debug/mi/core/cdi/SignalManager.java - (update): implemented. - (getSignals): implemented. - * src/org/eclipse/cdt/debug/mi/core/cdi/SignalReceived.java: - Ask the manager for the signal. - * src/org/eclipse/cdt/debug/mi/core/event/MISignalEvent.java: - New file. - -2003-01-29 Alain Magloire - - * src/org/eclipse/cdt/debug/mi/core/cdi/SharedLibraryManager.java (getSharedLibraryPaths): - New method. - (setSharedLibraryPaths): New method. - (setAutoLoadSymbols): New methos set autosolib. - * src/org/eclipse/cdt/debug/mi/core/cdi/SourceManager.java (setAutoSolib): - Move to SharedLibraryManager.java - -2003-01-28 Alain Magloire - - * src/org/eclipse/cdt/debug/mi/core/command/MIInfoSignals.java: - * src/org/eclipse/cdt/debug/mi/core/output/MIInfoSignalsInfo.java: - * src/org/eclipse/cdt/debug/mi/core/output/MISignal.java: - New files. - -2003-01-28 Alain Magloire - - * src/org/eclipse/cdt/debug/mi/core/cdi/model/ArgumentObject.java: - Use ICDIStackFrame in the constructor. - * src/org/eclipse/cdt/debug/mi/core/cdi/model/RegisterObject.java: - Use ICDIStackFrame in the constructor. - * src/org/eclipse/cdt/debug/mi/core/cdi/model/VariableObject.java: - Use ICDIStackFrame in the constructor. - * src/org/eclipse/cdt/debug/mi/core/cdi/model/Value.java (getVariables): - No need to cast to StackFrame. - * src/org/eclipse/cdt/debug/mi/core/cdi/model/Thread.java (setCurrentFrame): - Implement new method, takes a boolean as the second method. - * src/org/eclipse/cdt/debug/mi/core/cdi/ExpressionManager.java: - No need to cast to StackFrame. - * src/org/eclipse/cdt/debug/mi/core/cdi/VariableManager.java: - No need to cast to StackFrame. - -2003-01-28 Alain Magloire - - * src/org/eclipse/cdt/debug/mi/core/cdi/model/Breakpoint.java (getCondition): - Condition was initialize with the wrong parameter. - (setMIBreakpoint): reset location and condition. - -2003-01-28 Alain Magloire - - * src/org/eclipse/cdt/debug/mi/core/cdi/model/Breakpoint.java (setMIBreakpoint): - New method. - * src/org/eclipse/cdt/debug/mi/core/cdi/BreakpointManager.java (update): - Reset the new MIBreakpoint on the Breakpoint object. - (containsBreakpoint): Removed. - (hasBreakpointChanged): Change arguments. - * src/org/eclipse/cdt/debug/mi/core/output/MIBreakpoint.java (parser): - Better check for watchpoints. - * src/org/eclipse/cdt/debug/mi/core/CLIProcessor.java (isChangeBreakpoint): - Check for "ignore" and "condition" cli commands. - -2003-01-27 Alain Magloire - - * src/org/eclipse/cdt/debug/mi/core/cdi/model/Register.java (getTypeName): - Use MIWhatis to get the type of the register. - (getVariables): Cache the answer. - * src/org/eclipse/cdt/debug/mi/core/cdi/SharedLibraryManager.java (loadSymbols): - Use MISharedLibrary. - * src/org/eclipse/cdt/debug/mi/core/command/CommandFactory.java (createMIWhatis): - New method. - (MIPType): New method. - * src/org/eclipse/cdt/debug/mi/core/command/MISharedLibrary.java: - New file. - - -2003-01-27 Alain Magloire - - * src/org/eclipse/cdt/debug/mi/core/cdi/model/Target.java (getCThreads): - When attaching gdb(at least on some platform) does not show - the selected thread(info threads). Fallback on the first one. - -2003-01-27 Alain Magloire - - * src/org/eclipse/cdt/debug/mi/core/cdi/VariableManager.java (findVariable): - Bug fix, did not compare the stacks correctly. - -2003-01-27 Alain Magloire - - * src/org/eclipse/cdt/debug/mi/core/cdi/model/VariableObject.java: - * src/org/eclipse/cdt/debug/mi/core/cdi/model/ArgumentObject.java: - * src/org/eclipse/cdt/debug/mi/core/cdi/model/RegisterObject.java: - Move to model package. - -2003-01-26 Alain Magloire - - Major refactor of the code. Rewrote/Added Managers: - VariableManager - ExpressionManager - RegisterManager - UpdateManager. - - Refactor of CSession to Session, CTarget to Target - and CThread to Thread. - * src/.../mi/core/cdi/event/ChangedEvent.java: - * src/.../mi/core/cdi/event/CreatedEvent.java: - * src/.../mi/core/cdi/event/DestroyedEvent.java: - * src/.../mi/core/cdi/event/DisconnectedEvent.java: - * src/.../mi/core/cdi/event/ExitedEvent.java: - * src/.../mi/core/cdi/event/MemoryChangedEvent.java: - * src/.../mi/core/cdi/event/ResumedEvent.java: - * src/.../mi/core/cdi/event/SuspendedEvent.java: - - - * src/.../mi/core/cdi/model/Argument.java: - * src/.../mi/core/cdi/model/Breakpoint.java: - * src/.../mi/core/cdi/model/Thread.java: - * src/.../mi/core/cdi/model/Target.java: - * src/.../mi/core/cdi/model/MemoryBlock.java: - * src/.../mi/core/cdi/model/MixedInstruction.java: - * src/.../mi/core/cdi/model/Instruction.java: - * src/.../mi/core/cdi/model/Signal.java: - * src/.../mi/core/cdi/model/SharedLibrary.java: - * src/.../mi/core/cdi/model/CObject.java: - * src/.../mi/core/cdi/model/Expression.java: - * src/.../mi/core/cdi/model/Variable.java: - * src/.../mi/core/cdi/model/Value.java: - * src/.../mi/core/cdi/model/Register.java: - * src/.../mi/core/cdi/model/StackFrame.java: - - * src/.../mi/core/cdi/ArgumentObject.java: - * src/.../mi/core/cdi/VariableObject.java: - * src/.../mi/core/cdi/RegisterObject.java: - * src/.../mi/core/cdi/BreakpointHit.java: - * src/.../mi/core/cdi/BreakpointManager.java: - * src/.../mi/core/cdi/VariableManager.java: - * src/.../mi/core/cdi/ExpressionManager.java: - * src/.../mi/core/cdi/RegisterManaget.java: - * src/.../mi/core/cdi/SignalManager.java: - * src/.../mi/core/cdi/SharedLibraryManager.java: - * src/.../mi/core/cdi/EventManager.java: - * src/.../mi/core/cdi/MemoryManager.java: - * src/.../mi/core/cdi/ErrorInfo.java: - * src/.../mi/core/cdi/Session.java: - * src/.../mi/core/cdi/ExitInfo.java: - * src/.../mi/core/cdi/UpdateManager.java: - * src/.../mi/core/cdi/IUpdateListener.java: - * src/.../mi/core/cdi/SessionObject.java: - * src/.../mi/core/cdi/SignalReceived.java: - * src/.../mi/core/cdi/SourceManager.java: - * src/.../mi/core/cdi/RuntimeOptions.java: - * src/.../mi/core/cdi/WatchpointScope.java: - * src/.../mi/core/cdi/WatchpointTrigger.java: - * src/.../mi/core/cdi/EndSteppingRange.java: - - * src/.../mi/core/MIPlugin.java: - * src/.../mi/core/CygwinGDBDebugger.java: - * src/.../mi/core/GDBDebugger.java: - - - -2003-01-24 Alain Magloire - - * src/.../mi/core/CLIProcessor.java (isEnableBreakpoint): - Check for "enable", "disable" cli commands. - -2003-01-23 Alain Magloire - - * src/.../mi/core/CLIProcessor.java (isDeletingBreakpoint): - Check for "d" it means delete breakpoints. - -2003-01-20 Alain Magloire - - * src/.../mi/core/cdi/Configuration.java (supporstSharedLibrary): - New method. - * src/.../mi/core/cdi/CoreFileConfiguration.java (supporstSharedLibrary): - New method. - * src/.../mi/core/cdi/SharedLibraryManager.java (update): - Checks if support for shared Libary before doin an update. - -2003-01-20 Alain Magloire - - * src/.../mi/core/cdi/SuspendedEvent.java: Use SignalReceived. - * src/.../mi/core/cdi/model/Signal.java: New file. - * src/.../mi/core/cdi/model/SignalManager.java: Use model/Signal. - * src/.../mi/core/cdi/SignalReceived.java: New file. - -2003-01-20 Alain Magloire - - The problem was that no check was done for the existence of - the program/executable nor the working directory etc ... - By asking the arguements to be File, the check is done by - the caller. - - * src/.../mi/core/MIPlugin.java (createCSession): Change the - the arguments. - * src/.../mi/core/GDBDebugger.java (createCSession): Change the - -2003-01-20 Alain Magloire - - * src/.../mi/core/command/MIWhatis.java: New file. - * src/.../mi/core/command/MIPType.java: New file. - * src/.../mi/core/command/MISharedLibary.java: New file. - * src/.../mi/core/output/MIWhatisInfo.java: New file. - * src/.../mi/core/output/MIPTypeInfo.java: New file. - -2003-01-18 Alain Magloire - - * src/.../mi/core/cdi/event/DestroyedEvent.java (DestroyedEvent): - Remove the deleted shared library from the list. - * src/.../mi/core/cdi/SharedLibraryManager.java (getUnloadedLibrary): - Get a shared library slated for unload. - (removeFromUnloadedList): Remove the library form the list. - -2003-01-17 Alain Magloire - - * src/.../mi/core/output/MIInfoSharedLibraryInfo.java (parseWinShared): - Break the methods in parserUnixShared() and parseWinShared() to cope - with the different formats. - -2003-01-17 Alain Magloire - - * src/.../mi/core/cdi/SharedLibraryManager.java (loadSymbols): - New method takes and array of ICDISharedLibrary. - * src/.../mi/core/cdi/SharedLibrary.java (loadSymbols): - Call the share manager to load. - -2003-01-17 Alain Magloire - - * src/.../mi/core/cdi/SharedLibraryManager.java (loadSymbols): - Call "shared libraryname". - -2003-01-17 Alain Magloire - - The problem here is that we do not knw the state of - the session, for example "target remote server:port" - was issue, in this case the state is suspended. - We try to guess by posting a "info remote-process" - and set suspended when no error. - - * src/.../mi/core/MIPlugin.java (createCSession): - Try "info remote-process" to guess the state. - Remove the "new-console" call to windows specific files. - * src/.../mi/core/CygwinGDBDebugger.java(createLaunchSession): - call "set new-console" for windows plaforms. - -2003-01-16 Alain Magloire - - * src/.../mi/core/cdi/SharedLibary.java (setMIShared): - New method. - * src/.../mi/core/cdi/SharedLibraryManager.java (update): - When changed reset the MIShared of the SharedLibrary. - -2003-01-16 Alain Magloire - - Process gdbinit configuration file. - - * src/.../mi/core/MIPlugin.java (createCSession): Takes now two new - arguments for working directory and configuration file gdbinit. - * src/.../mi/core/GDBDebugger.java (createAttachSession): - (createCoreSession): pass the working directory and gdbinit file - (createLaunchSession): pass the working directory and gdbinit file - * src/.../mi/core/IMILaunchConfigurationConstants.java: - New constant ATTR_GDB_INIT. - -2003-01-16 Alain Magloire - - * src/.../mi/core/cdi/EventManager.java (processSuspended): - Also process the Shared lib by calling update on the manager. - - * src/.../mi/core/cdi/CSession.java: Create a shared - library manager. - -2003-01-16 Alain Magloire - - * src/.../mi/core/event/MISharedLibCreatedEvent.java: New file. - * src/.../mi/core/event/MISharedLibChangedEvent.java: New file. - * src/.../mi/core/event/MISharedLibUndloadedEvent.java: New file. - - * src/.../mi/core/cdi/event/CreatedEvent.java: - new constructors to deal with MISharedLibCreatedEvent. - * src/.../mi/core/cdi/event/ChangedEvent.java: - new constructors to deal with MISharedLibChangedEvent. - * src/.../mi/core/cdi/event/DestroyedEvent.java: - new constructors to deal with MISharedLibUnloadedEvent. - - * src/.../mi/core/cdi/model/SharedLibrary.java: New file. - - * src/.../mi/core/cdi/SharedLibraryManager.java: New file. - * src/.../mi/core/cdi/CSession.java (getSharedLibraryManager): - New method. - * src/.../mi/core/cdi/EventManager.java (update): - Deal with the new MISharedLibXXXEvents. - -2003-01-15 Alain Magloire - - * src/.../mi/core/command/CommandFactory.java (createMIInfoSharedLibrary): - New method. - * src/../mi/core/command/MIInfoSharedLibrary.java: New file. - * src/../mi/core/output/MIInfoSharedLibraryInfo.java: New File. - * src/../mi/core/output/MIShared.java: new File. - -2003-01-13 Mikhail Khodjaiants - * CTarget.java: in the 'runUntil' method check if file name or function name length > 0, otherwise use address. - -2003-01-10 Alain Magloire - - * src/.../mi/core/cdi/BreakpointManager.java (update): fix subscript - (setCondition): Fire a ChangedEvent. - (enableBreakpoint): Fire a ChangedEvent. - (disableBreakpoint): Fire a ChangedEvent. - -2003-01-10 Alain Magloire - - * src/.../mi/core/cdi/model/CTarget.java (runUntil): Address breakpoint - needs a "*" prefix. - -2003-01-09 Alain Magloire - - * src/.../mi/core/cdi/BreakpointManager.java (hasBreakpointChanged): - Implemented. - -2003-01-09 Alain Magloire - - * src/.../mi/core/cdi/model/CTarget.java (setCurrentThread): takes - a new argument to decide if the events should be fired. - * src/.../mi/core/cdi/model/CThread.java (getStackFrameCount): use - the setCurrentThread() with events updates disable - (getStackFrames): Ditto. - (updateState): Wrong subscript in the loop. - -2003-01-09 Alain Magloire - - Generate CreatedEvent's for Variable, Argument, Expression, Memory, Thread - objects when they are created. This makes it consistent with the generated - DestroyedEvent's. - - * src/.../mi/core/cdi/EventManager.java (update): Deal with - MI{Register,Memory,Thread,Var}CreatedEvent events. - * src/.../mi/core/cdi/model/Ctarget.java (updateState): Fire events - when threads are created or destroyed. - * src/.../mi/core/cdi/model/MemoryBlock.java: Move here. - * src/.../mi/core/cdi/model/Register.java (getID): rename getId() to getID(). - * src/.../mi/core/cdi/event/CreatedEvent.java: New constructors - to deal with MI{Register,Memory,Thread,Var}CreatedEvent. - - * src/.../mi/core/event/MIMemoryCreatedEvent.java: New file. - * src/.../mi/core/event/MIRegisterCreatedEvent.java: New file. - * src/.../mi/core/event/MIThreadCreatedEvent.java: New file. - * src/.../mi/core/event/MIVarCreatedEvent.java: New file. - * src/.../mi/core/event/MIBreakpointChangedEvent.java (MIBreakpointChangedEvent): - Reuse the constructor. - * src/.../mi/core/event/MIBreakpointCreatedEvent.java (MIBreakpointCreatedEvent): - Reuse the constructor. - * src/.../mi/core/event/MIBreakpointDeletedEvent.java (MIBreakpointDeletedEvent): - Reuse the constructor. - -2003-01-08 Alain Magloire - - Refactoring, split the org.eclipse.cdt.debug.mi.core.cdi in pacackages - org.eclipse.cdt.debug.mi.core.cdi - org.eclipse.cdt.debug.mi.core.cdi.event - org.eclipse.cdt.debug.mi.core.cdi.model - This help structure things up. - * src/.../mi/core/cdi/event: New files. - * src/.../mi/core/cdi/model: New files. - -2003-01-08 Alain Magloire - - * src/.../mi/core/cdi/EventManager.java (update): bug fix - was calling DestroyedEvent() incorrectly. - -2003-01-08 Alain Magloire - - CLIProcessor a new class to recognise the CLI(Command Line Interface) - of gdb example: - (gdb) next - (gdb) n - (gdb) b - (gdb) break - etc ..: - When the patterns are discover, the class will generate some events - to warn te UI that something change. - - * src/.../mi/core/cdi/BreakpointManager.java (update): - Send a -break-list and generate events for any difference, in - the breakpoints that we know about. - (deleteBreakpoint): Take as argument the breakpoint number. - (getBreakpoints): Call update() to generate events if new breakpoints. - (getMIBreakpoints): return the MIBreakpoints. - * src/.../mi/core/cdi/ChangedEvent.java (ChangedEvent): - New constructor with MIBreakPointChangedEvent. - * src/.../mi/core/cdi/DestroyedEvent.java (DestroyedEvent): - New constructor with MIBreakPointDeletedEvent. - * src/.../mi/core/cdi/Created.java: New file. - * src/.../mi/core/cdi/EventManager.java (update): - Watch for the new MIBreakPoint*Events. - * src/.../mi/core/event/MIBreakPointCreatedEvent.java: New file. - * src/.../mi/core/event/MIBreakPointChangedEvent.java: New file. - * src/.../mi/core/event/MIBreakPointDeletedEvent.java: New file. - * src/.../mi/core/event/MICreatedEvent.java: New file. - * src/.../mi/core/event/MIDestroyedEvent.java: New file. - * src/.../mi/core/event/MIInferiorExitEvent.java: Extends MIDestroyedEvent - * src/.../mi/core/event/MIThreadExitEvent.java: Extends MIDestroyedEvent - * src/.../mi/core/event/MIGDBExitEvent.java: Extends MIDestroyedEvent - * src/.../mi/core/event/MIDetachedEvent.java: Extends MIDestroyedEvent - * src/.../mi/core/CLIProcessor.java: New file. - * src/.../mi/core/TxThread.java: New file. - -2003-01-07 Alain Magloire - - * src/.../mi/core/MIInferior.java (getOutputStream): Remove useless assignement. - * src/.../mi/core/MIPluging.java (debugLog): Not need to be static. - * src/.../mi/core/cdi/EventManager.java (update): Remove useless assignement. - -2003-01-06 Alain Magloire - - * build.properties: Patch from Judy Green. - -2003-01-06 Alain Magloire - - * src/.../mi/core/cdi/BreapoinManager.java (createLocation): new method - to create a breakoint with an address. - * src/.../mi/core/cdi/Location.java (Location): New constructor takes - an address as argument. - -2003-01-03 Alain Magloire - - The Class creating the CDISession part of the initialization would call - (gdb) set autosolib on - this works fine for Unix system, but on Windows it throws an error - failing the debugger. Windows(Cygwin, MingWin) does not need any - special initialization like solib-search-paths etc .. - - * src/.../mi/core/cdi/SourceManager.java (setAutoSolib): Takes a boolean argument - to set the autosolib on or off. - * src/.../mi/core/CygwinGDBDebugger.java(initializeLibraries): - Empty method, cygwin does not need any special handling. - * src/.../mi/core/GDBDebugger.java (initializeLibraries): - Always call autosolib. - - -2003-01-02 Alain Magloire - - Bug when using recursive: - int recursive(int x) { - if (x > 10) - recursive(++x); - return 0; - } - - The Variable Manager is caching the MI/GDB var-obj for speed. - It is finding the object by looking at the name and the stack/thread, - for recursive calls, this is wrong and the code would be full in - thinking the variable "x"(see above) is the same object. To make the distinction - we use the depth "-stack-info-depth" that will be use also in the equality - to make sure we identify an object uniquely. In the recursive() case above - because the depth is different, a new "x" object will be created. The downside - is that on certain platform doing deep recursive/stackframe, we have noticed - that "-stack-info-depth" can be very long, test done for gdb/QNX with - a stack depth of 1000. - - * src/.../mi/core/cdi/VariableManager.java (getElement): - Use the depth when doing equal(). - (createElement): Save the depth of the stack part of the Element. - -2003-01-02 Alain Magloire - - GDB/MI uses some oob reasons that was not documented for the watchpoints - *stopped,reason="access-watchpoint-trigger"... - *stopped,reason="read-watchpoint-trigger",... - * src/.../mi/core/event/MIWatchpointTrigger.java (parse): - check for "hw-awpt" and "hw-rwpt". - * src/.../mi/core/RxThread.java (createEvents): - Check for "access-watchpoint-trigger", "read-watchpoint-trigger. - -2002-12-17 Alain Magloire - - * src/.../mi/core/cdi/Register.java (setFormat): bug fix - The format variable was not set. - -2002-12-05 Alain Magloire - - GDB/MI provides error messages in its log stream, one problem - is that it is not consistent, for example doing: - (gdb) info threads - & "info threads\n" - which is obviously not an error. - So we put the error stream output par of the exception so when - it is relevant it shows in the Exception. - MI2CDIException is the bridge class. - - * src/.../mi/core/cdi/BreakpoinManager.java: - * src/.../mi/core/cdi/CSession.java: - * src/.../mi/core/cdi/CTarget.java: - * src/.../mi/core/cdi/CThread.java: - * src/.../mi/core/cdi/MemoryBlock.java: - * src/.../mi/core/cdi/MemoryManager.java: - * src/.../mi/core/cdi/Register.java: - * src/.../mi/core/cdi/RegisterManager.java: - * src/.../mi/core/cdi/SourceManager.java: - * src/.../mi/core/cdi/Value.java: - * src/.../mi/core/cdi/Variable.java: - * src/.../mi/core/cdi/VariableManager.java: - - * src/.../mi/core/command/Command.java (getMIInfo): - When error get the log stream and put it in the MIException. - * src/.../mi/core/event/MIErrorEvent.java: - Get the log stream error also. - * src/.../mi/core/MIException.java (getLogMessage): New method - contains buffer output. - * src/.../mi/core/RxThread.java (processMIOutput): get the - oob arrays up so it can be use in MIErrorEvent. - -2002-12-02 Alain Magloire - - * src/.../mi/core/cdi/CTarget.java (updateState): If we - have the current thread id set it before, getCThread() if - it is implemented with "info threads" can override it but - "-stack-list-thread" does not give this information. - * src/.../mi/core/cdi/ErrorInfo.java: New file - * src/.../mi/core/cdi/EventManager.java (getReason): Return - an ErrorInfo also. - * src/.../mi/core/event/MIErroEvent.java: New file - * src/.../mi/core/RxThread.java (processMIOutput): - Generated MIErrorEvent for "^error". - -2002-11-29 Alain Magloire - - * src/.../mi/core/cdi/EventManager.java (processSuspended): - get the threadId. - -2002-11-29 Alain Magloire - - * src/.../mi/core/cdi/MemoryBlock.java (setValue): - Check if the change affects other block and fire MemoryChangedEvent - when necessary. - -2002-11-29 Alain Magloire - - * src/.../mi/core/event/MIBreakpointEvent.java: - * src/.../mi/core/event/MIFunctionFinishedEvent.java: - * src/.../mi/core/event/MILocationReachedEvent.java: - * src/.../mi/core/event/MISignalEvent.java: - * src/.../mi/core/event/MISteppingRangeEvent.java: - * src/.../mi/core/event/MIStoppedEvent.java: - * src/.../mi/core/event/MIWatchpointEvent.java: - * src/.../mi/core/event/MIWatchpointTriggerEvent.java: - * src/.../mi/core/RxThread.java: - Some events like the temporary events, do not have - any specific format but do provide a frame and a thread-id - move the code in MIStoppedEvent. - -2002-11-28 Alain Magloire - - * src/.../mi/core/cdi/MemoryBlock.java (setValue): Only get a byte. - -2002-11-28 Alain Magloire - - * src/.../mi/core/cdi/CTarget.java (runUntil): new method implemented. - * src/.../mi/core/cdi/CThread.java (runUntil): new method implemented. - -2002-11-26 Doug Schaefer - - * src/.../mi/core/CygwinGDBDebugger.java: - New Debugger that provides the Cygwin Command Factory to the MISession - * src/.../mi/core/command/CygwinCommandFactory.java: - New Command Factory for Cygwin specific implementations of the commands - * src/.../mi/core/command/CygwinMIEnvironmentDirectory.java: - New. Subclasses the MIEnvironmentDirectory command to convert the - paths using cygpath. - * plugin.xml: - Defines the new debugger extension. - -2002-11-25 Alain Magloire - - * src/.../mi/core/cdi/Watchpoint.java: - Check if it was access point also. - * src/.../mi/core/output/MIBreakInsertInfo.java (parse): - Check for "wpt" variable. - * src/.../mi/core/output/MIBreakpoint.java (IsWriteWatchpoint): - implemented. - -2002-11-20 Mikhail Khodjaiants - Fix for bug 26595. - * src/.../mi/core/cdi/MemoryManager.java (compareBlocks): - If the start address of a memory block has changed fir 'changed' event - only for the corresponding bytes of the overlapping area of new and old blocks. - -2002-11-19 Alain Magloire - - * src/.../mi/core/cdi/MemoryManager.java (compareBlocks): - The startAddress() may have change for example if we were - watching "char *p;" and the address move "p++". Take this - into account now. - -2002-11-18 Alain Magloire - - * src/.../mi/core/cdi/StackFrame.java (getCurrentStackFrame): - if the currentFrame was not set only get the top level - frame for the current. - * src/.../mi/core/cdi/CTarget.java (updateStateId): - Set the currentThreads && currentThreadId. - -2002-11-18 Alain Magloire - - * src/.../mi/core/cdi/CThread.java (getStackFrameCount): - Set the new thread before getting the value and restore - after. - -2002-11-14 Alain Magloire - - This is needed in post-mortem, application doing a - very deep recursion and crashing the stack size, for example - on GNU/Linux it may reach 200000 levels deep. Trying to - bring in the UI a bactrace tree of 200000 nodes is useless. - The UI could check the count and do the appropriate action - by showing ranges etc .. - - * src/.../mi/core/cdi/CThread.java (getStackFrame): - new method with a hi and low. - (getStackFrameCount): new method. - * src/.../mi/core/command/CommandFactory.java (createMIStackInfoDepth): - new method. - * src/.../mi/core/command/MIStackInfoDepth.java (getMIStackInfoDepthInfo): - new method. - -2002-11-13 Dave Inglis - * plugin.xml - Added "native" cpu support. - -2002-11-06 Alain Magloire - - * src/.../mi/core/cdi/StackFrame.java (getLocals): - If an exception was thrown, the array may contain null - entries. Use a list and catch the exception. - -2002-11-06 Alain Magloire - - * src/.../mi/core/cdi/StackFrame.java (getArguments): - If an exception was thrown, the array may contain null - entries. Use and a List and catch the exception. - -2002-11-05 Alain Magloire - - * src/.../mi/core/cdi/Register.java (setValue): Fire a - MIRegisterChangedEvent when changing value. - Fix PR:25730 - -2002-11-01 Alain Magloire - - The change in MISession(), will catch things like starting gdb-5.0 - with argument "-i mi1", that level of mi is not supported. - - * src/.../mi/core/cdi/MemoryBlock.java (refresh): When doing the refresh - check if other blocks wehre affected and update them. - * src/.../mi/core/cdi/MemoryManager.java (update): Return the array of - affected addresses. - * src/.../mi/core/MIPlugin.java (createCSession): Do not throw an - error when trying "set new-console", it does not work on Linux. - * src/.../mi/core/MISession.java (MISession): Check if the process - terminated early, maybe because of wron arguments etc .. and throw - the exception. - -2002-11-1 David Inglis - * src/.../mi/core/MIPlugin.java - throw MIExceptions in createSession (not rethorwn IOExceptions) - -2002-10-30 Alain Magloire - - * src/.../core/cdi/MemoryBlock.java (setDirty): When need a - refresh setDirty() to true. - (isDirty): Return the flag value. - - * src/.../core/cdi/MemoryManager.java (update): Check if - the MemoryBlock isDirty(). - -2002-10-30 Alain Magloire - - * src/.../core/cdi/MemoryBlock.java (setValue): reuse refresh() - to update the memory and fire any MemoryChangedEvents. - -2002-10-26 Alain Magloire - - * src/.../core/cdi/MemoryBlock.java (setValue): Generate - a MemoryChangeEvent when the value is set, gdb/mi will not - do it. - -2002-10-25 Alain Magloire - - * src/.../core/cdi/CThread.java (getStackFrames): Save the - current thread before changing and restore when operation finish. - - * src/.../core/cdi/MemoryBlock.java (refresh): Flush the old - data and get new memory. - (update): New method to compare individual blocks. - -2002-10-25 Alain Magloire - - Automatically suspend/resume gdb when setting a breakpoint. - The workflow when debuggin which gdb command prompt is to - hit CTRL-C set the breakpoint and continue. The UI debugger - should be smart enought to do this by itself. So if the - inferior is running, when setting a breakpoint the program - is suspended(target.suspend()), the suspend event is ignore - the breakpoint is set (--break-insert) and the target is resume. - To ignore a specific event, we use a (mis)behaviour of gdb that - associate the suspend(*stopped) with the last execution command. - (gdb) - 111-exec-continue - 111^running - (gdb) - 222-exec-interrupt - 222^done - (gdb) - 111*stopped,signal-name="SIGINT",signal-meaning="Interrupt", - frame={addr="0x00010140",func="foo",args=[],file="try.c",line="13"} - (gdb) - In the case above event 111 is ignore. - - * src/.../core/command/CLICommand.java (toString): Always put - the identifying token. - * src/.../core/command/Command.java (setToken): Removed. - (getUniqToken): New method returns a global uniq token. - (getToken): Returns a uniq token for the command. - * src/.../core/MIInferior.java (setTerminated): New argument token, - since now all MIEvent has the corresponding command token. - * src/.../core/MISession.java (cmdCount): Removed. - (postCommand): the command getToken() will return a uniq token. - * src/.../core/RxThread.java (processMIOOBRecord): MIEvent take - the corresponding command token as argument. - * src/.../core/TxThrea.java (token): Field removed, token are no - longer created in this tread. - * src/.../core/event/MIBreakpointEvent.java: - * src/.../core/event/MIBreakpointEvent.java: - * src/.../core/event/MIChangedEvent.java: - * src/.../core/event/MIDetachedEvent.java: - * src/.../core/event/MIEvent.java: - * src/.../core/event/MIFunctionFinishedEvent.java: - * src/.../core/event/MIGDBExitEvent.java: - * src/.../core/event/MIInferiorExitEvent.java: - * src/.../core/event/MILocationReachedEvent.java: - * src/.../core/event/MIMemoryChangedEvent.java: - * src/.../core/event/MIRegisterChangedEvent.java: - * src/.../core/event/MIRunningEvent.java: - * src/.../core/event/MISignalEvent.java: - * src/.../core/event/MISteppingRangeEvent.java: - * src/.../core/event/MIStoppedEvent.java: - * src/.../core/event/MIThreadExitEvent.java: - * src/.../core/event/MIVarChangedEvent.java: - * src/.../core/event/MIWatchpointScopeEvent.java: - * src/.../core/event/MIWatchpointTriggerEvent.java: - Calls super with getToken(). - * src/.../core/cdi/BreakpointManager.java (allowProgramInterruption): - New method to allow suspending the program to set a breakpoint. - (suspendInferior): get the last token execution an ignore the suspend - event. - * src/.../core/cdi/CTarget.java (getLastExecutionToken): New method - returns the token of the last execution command. - * src/.../core/cdi/EventManager.java (enableEventToken): New method. - (enableEventTokens): New method. - (disableEventToken): New method. - (disableEventTokens): New method. - (update): Ignore token in the disable list. - * src/.../core/cdi/RegisterManager.java (update): MIEvent takes - a token. - * src/.../core/cdi/Variable.java (setValue): MIEvent takes a token. - * src/.../core/cdi/VariableManager.java (update): MIEvent takes a token. - -2002-10-24 Alain Magloire - - * src/.../core/RxThread.java (processMIOutput): Fire a - suspended event when seeing an error. - -2002-10-24 Alain Magloire - - * src/.../core/output/MIConst.java (isoC): Change to return - a string instead '\n' is platform dependent and has to be - translate to "\r\n" for SWT widgets to work correctly on windows. - -2002-10-23 Alain Magloire - - gdb/mi for program control command will fire a change state event: - -exec-run - ^running - This allow the UI to change its state and wait for the suspended. - Providing a gdb prompt adds some problems, since there is no state - change, i.e.(^running) after command like, next/step/...: - next - &"next\n" - ... - So to palliate, the txthread do some query when the commands are - CLI commands trying to discover the type and fire any appropriate - events on behalf on gdb. - - * src/.../core/RxThread.java (createEvent): Adjust the parser to - not rely on the oob "*stopped", since for CLI command it is not - in the result-class. So the suspended state will be base of - the "reason" only. - * src/.../core/TxThread.java (processCLICommand): new method, - get the command and try to recognize if it is a program control - command like: next, step, etc .. - * src/.../core/command/CLICommand.java (getOperation): New method, - returns the command string. - -2002-10-22 Alain Magloire - - Change the framework to support access to gdb prompt. - Trying to reuse as much as possible Eclipse framework. - The session/gdb process is available via CDI. - - * src/.../core/GDBStreamsProxy.java: Removed. - * src/.../core/GDBProcess.java: Removed. - * src/.../core/GDBStreamMonitor.java: Removed. - * src/.../core/SessionProcess.java: New file. - * src/.../core/MISession.java (getMISessionProcess): - New method, returns a "fake" Process that wraps the input/outpu - stream of gdb. - (getGDBProcess): was getMIProcess(), renamed. - * src/.../core/cdi/CSession.java (getSessionProcess): New method - return gdb process. - -2002-10-22 Alain Magloire - - * src/.../core/GDBStreamsProxy.java (write): - Replace the OutputStream with a Write class. - And clear the buffer on flush(). - -2002-10-21 Alain Magloire - - * src/.../core/GDBProcess.java (getExitValue): Catch - IllegalThreadStateException. - (getAttribute): Only create Properties, when call. - (setAttribute): Only create Properties, when call. - (getAdapter): Implemented. - (canTerminate): true only of the process is alive. - (GDBProcess): Takes one more argument the name. - * src/.../core/GDBStreamMonitor.java (fireStreamAppend): New method. - Use a synchronized LinkedList for the listeners. - (read): new Method. - (startMonitoring): New method, start a thread in the background - to monitor the input. - * src/.../core/GDBStreamsProxy.java (getErrorStream): Start the monitor thread. - (getOutputStream): Start the monitor thread. - -2002-10-21 Alain Magloire - - Framework for having a gdb console. The idea is to reuse - the eclipse console and save a lot of work. We "adapt" - the gdb Process to what eclipse debug LaunchView wants(IProcess). - So when this fake "gdb process" is selected we can grab the - input/output of the console and redirect everything to raw gdb. - - * src/.../core/GDBProcess.java: New file, it implements Eclipse - debug class IProcess. - * src/.../core/GDBStreamMonitor: New file, it implements Eclipse - debug class IStreamMonitor. - * src/.../core/GDBStreamsProxy: New file, it implements Eclipse - debug class IStreamsProxy. - * src/../core/MISession.java (getMIConsoleStream): New method - to return the mi console stream output that we get from gdb/mi. - (getMILogStream): New method, to return the mi log stream output - that we get from gdb/mi. - (terminate): close the fake MI Console and Log streams. - * src/../core/RxThread.java (processMIOOBRecord): Redirect the - console and the log stream to a buffer pipe. - -2002-10-21 Alain Magloire - - * src/.../core/cdi/EventManager.java (update): Only - fire the event for MemoryChangedEvent if the block was - not frozen. - -2002-10-20 Alain Magloire - - Eclipse provides plugins a way to trace by having an .options file, - this mechanism is use to print out the mi exchange between gdb - and the plugin. To enable this in the debug launch one must enable - "tracing" and set for the "org.eclipse.debug.mi.core/debug" to true. - But one problem, the console will simply blow taking down eclipse, - for big MI line response, say 4k length, for example asking the children - of "char buffer[4096]", -var-list-children varxx. - This seem only to happen in Eclipse-gtk or Eclipse-motif - on GNU/Linux, so it will be break in smaller chunks to give a chance to - the console. - - * .options: Set debug to true. - * src/.../core/MIPlugin.java (debugLog): Break the log line in small chuncks of 100. - * src/.../core/MISession.java (postCommand): Print the gdb/mi command. - * src/.../core/RxThread.java (run): Print gdb/mi responses. - -2002-10-20 Alain Magloire - - -data-write-register-values is not in the texinfo manual but implemented in - gdb-5.2.1/gdb/mi/mim-main.c: - Write given values into registers. The registers and values are - given as pairs. The corresponding MI command is - -data-write-register-values [ ... ] - - * src/.../core/command/MIDataWriteRegisterValues.java: New file. - * src/.../core/command/CommandFactory.java (createMIDataWriteMemory): New method. - * src/.../core/cdi/Register.java (setValue): Implemented. - -2002-10-20 Alain Magloire - - Althought -data-write-memory is not documented in the texinfo manual - it is implemented and well documented in the code(gdb-5.2.1/gdb/mi/mi-main.c). - "mi_cmd_data_write_memory: Usage: [-o COLUMN_OFFSET] ADDR FORMAT WORD-SIZE VALUE."); - - * src/.../core/command/MIDataWriteMemory.java: New file - * src/.../core/command/CommandFactory.java (createMIDataWriteMemory): New method. - * src/.../core/cdi/MemoryBlock.java (setValue): Implemented. - -2002-10-20 Alain Magloire - - * src/.../core/cdi/CTarget.java (getMemoryBlock): Remove - we use the MemoryManager instead. - (EvaluateExpressionToValue): Removed not use. - * src/.../core/cdi/SourceManager.java (setFile): Removed not use. - (getFile): Removed not use. - (reset): Removed not use. - -2002-10-19 Alain Magloire - - The responsability to generate Events for modify memory blocks is push - on the CDI implementation. The way we do this is every time consuming, - when the inferior is suspended(see EventManager.processSuspendedEvent()), - MemoryManager.update() is called, the method will go through the list of MemoryBlocks - that are not MemoryBlocks.setFrozen() and fetch the new memories, the data is compare - and MemoryChangedEvents are fired for blocks with changed values. - Gdb/mi var objects does not seem to provide any support for Memory ranges. - - * src/.../core/cdi/MemoryChangedEvent.java: New File implements ICDIMemoryChangedEvent. - * src/.../core/cdi/EventManager.java (update): Process MIMemoryChangedEvent's. - (processSuspendedEvent): call MemoryManager.update(). - * src/.../core/cdi/MemoryBlock.java (getExpression): New method. - (getMIDataReadMemoryInfo): New method. - (setMIDataReadMemoryInfo): New method. - * src/.../core/cdi/MemoryManager.java (update): New method. - (compareBlock): New method. - (listMemoryBlocks): New method. - - * src/.../core/cdi/CTarget.java (setCurrentThread): Catch null pointer. - (getCThreads): Likewise. - * src/.../core/event/MIMemoryChangedEvent.java: New File. - * src/.../core/event/MIThreadExitEvent.java: Indentation fixes. - * src/.../core/event/MIVarChangedEvent.java: Indentation fixes. - - - -2002-10-16 Alain Magloire - - * src/.../mi/core/cdi/MemoryManager.java (createMemoryBlock): - New method that takes a string instead of a long, rearrange - the method for it. - -2002-10-12 Alain Magloire - - There are some serious problems with gdb/mi, for example - the most recurrent one is when using -data-disassemble - in a threaded program, GNU/Linux uses a thread manager - when trying to access the stackframe, gdb usually coredumps - with an assert, it goes something like this: - --data-disassemble -f manager.c -l 136 -n 100 0 -&"Cannot access memory at address 0x4002d794\n" -^error,msg="Cannot access memory at address 0x4002d794" -(gdb) --data-disassemble -s 0x4002d900 -e 0x4002d964 0 -&"Cannot access memory at address 0x4002d900\n" -^error,msg="Cannot access memory at address 0x4002d900" -(gdb) --thread-select 2 -&"ui-out.c:133: gdb-internal-error: push_level: Assertion `uiout->level >= 0 && uiout->level < MAX_UI_OUT_LEVELS' failed.\n" - - The RxThread will spawn a thread to terminate the session - and clear the receiving queue. - - - * RxThread.java (run): When the thread is being cancel() or - running out of run(), clear the receiving queue(rxQueue) and - notify any commands waiting. - - * TxTread.java (run): Before putting the command in the - receiving queue(rxQueue) check to see if the thread is - still running. - When the thread is being cancel() or running out of run(), - clear the transmition queue(txQueue) an notify any commands - waiting. - - * Queue.java (clearItems): New method that clear the items - on the queue and returning them. - - * CommandQueue.java (clearCommands): New method calls super.clearItems() - whith the appropriate castings. - - * cdi/CThread.java (setCurrentStackFrame): Check for null. - -2002-10-12 Alain Magloire - - The memory block is implemented with - -data-read-memory (MIDataReadMemory) - Since the ICDIMemoryBlock only have - byte[] getBytes() - We will always issue: - -data-read-memory address x 1 1 length - The CDI upper layer will deal with any conversions - - The problem now is how to send changedEvent when - an element of the memory changed. - - * cdi/MemoryBlock.java (getLength): Implemented - (getBytes): Implemented - (getStartAddress): Implemented - - * cdi/MemoryManager.java: Implemented. - - * command/MIDataReadMemory (getMIDataReadMemoryInfo): - New helper method. - -2002-10-12 Alain Magloire - - * cdi/Location (getInstructions): Methods removed - no longer define in ICDILocation. - -2002-10-11 Alain Magloire - - * cdi/SourceManager (getMixedInstruction): - Implement the 3 new methods to return Mixed source - and assemby instructions. - - * cdi/MixedInstruction: New class implements - ICDIMixedInstruction. - -2002-10-11 Alain Magloire - - * cdi/ExpressionManager.java: Not needed, removed. - -2002-10-10 Alain Magloire - - The Eclipse/UI/Debug framewok is being very repetive - and each command can be ask 2, 3 times. So we'll try - to make certain commands smarter by not reissuing them - to gdb if the state is the same. We do this when - selecting the thread and when selecting the stackframe. - - The other problem is that Eclipse/UI/Debug is calling - ICDISession.terminate() twice, this is catch by looking - at isTerminated(). - - * cdi/CThread.java (setCurrentStackFrame): Make it smarter - to not reselect the stack level if it is already at that - level. - - * MISession.java (isTerminated): Declare a flag that will - hold the state. - (terminate): Check if it was call already. - -2002-10-10 Alain Magloire - - * SourceManager.java: Implement getInstructions(). diff --git a/debug/org.eclipse.cdt.debug.mi.core/ChangeLog-2003 b/debug/org.eclipse.cdt.debug.mi.core/ChangeLog-2003 new file mode 100644 index 00000000000..60b45209194 --- /dev/null +++ b/debug/org.eclipse.cdt.debug.mi.core/ChangeLog-2003 @@ -0,0 +1,2151 @@ +2003-12-22 Mikhail Khodjaiants + Fix for bug 49282 terminate the gdb session if the termination of the inferior fails. + + * src/org/eclipse/cdt/debug/mi/core/cdi/model/Target.java + +2003-12-22 Mikhail Khodjaiants + Fix for Bug 49278 do not retry the "info threads" command if the first attempt fails. + Throw an exception from the "getCThreads" method when it fails. + + * src/org/eclipse/cdt/debug/mi/core/cdi/model/Target.java + +2003-12-18 Alain Magloire + + PR 49148 + Set environment variable value to give the program. + Arguments are VAR VALUE where VAR is variable name and VALUE is value. + VALUES of environment variables are uninterpreted strings. + This does not affect the program until the next "run" command. + + So pass the string raw. + + * src/org/eclipse/cdt/debug/mi/core/command/MIGDBSetEnvironment.java + * src/org/eclipse/cdt/debug/mi/core/cdi/RuntimeOptions.java + * src/org/eclipse/cdt/debug/mi/core/CommandFactory.java + +2003-12-17 Mikhail Khodjaiants + + Fix for bug 49061: Different values are used as default for the "Load shared library symbols automatically" option. + + * src/org/eclipse/cdt/debug/mi/core/GDBDebugger.java + * src/org/eclipse/cdt/debug/mi/core/GDBServerDebugger.java + * src/org/eclipse/cdt/debug/mi/core/IMILaunchConfigurationConstants.java + * src/org/eclipse/cdt/debug/mi/core/CygwinGDBDebugger.java + +2003-12-16 Mikhail Khodjaiants + + Show the gdb arguments when tracing. + + * src/org/eclipse/cdt/debug/mi/core/MIPlugin.java + +2003-12-16 Mikhail Khodjaiants + + Fix for PR 48870: Terminate gdb if attach to process fails. + + * src/org/eclipse/cdt/debug/mi/core/MIPlugin.java + +2003-12-09 Alain Magloire + + Do not try to interrupt if the target was suspended. + + * src/org/eclipse/cdt/debug/mi/core/MIInferior.java + +2003-12-08 Alain Magloire + + Target.terminate() did not pass the exception up. + Added new method MIInferior.terminate(). + + * src/org/eclipse/cdt/debug/mi/core/MIInferior.java + * src/org/eclipse/cdt/debug/mi/core/cdi/model/Target.java + +2003-12-02 Alain Magloire + + Retry the stack-info-depth when it fails the first time + and decrement the count. GDB can cope up the second try + and probably mark the thread invalid. + Patch base on Ashish Karkare patch: + + * src/org/eclipse/cdt/debug/mi/core/cdi/model/Thread.java + +2003-11-26 Mikhail Khodjaiants + Cleanup. + + * src/org/eclipse/cdt/debug/mi/core/cdi/model/Variable.java + * src/org/eclipse/cdt/debug/mi/core/GDBTypeParser.java + +2003-11-26 Mikhail Khodjaiants + Cleanup. + + * src/org/eclipse/cdt/debug/mi/core/GDBDebugger.java + * src/org/eclipse/cdt/debug/mi/core/GDBServerDebugger.java + * src/org/eclipse/cdt/debug/mi/core/CygwinGDBDebugger.java + * src/org/eclipse/cdt/debug/mi/core/cdi/BreakpointManager.java + * src/org/eclipse/cdt/debug/mi/core/cdi/event/ResumedEvent.java + * src/org/eclipse/cdt/debug/mi/core/cdi/model/Target.java + * src/org/eclipse/cdt/debug/mi/core/command/MIBreakAfter.java + * src/org/eclipse/cdt/debug/mi/core/event/MIFunctionFinishedEvent.java + * src/org/eclipse/cdt/debug/mi/core/event/MIInferiorSignalExitEvent.java + * src/org/eclipse/cdt/debug/mi/core/event/MISignalEvent.java + * src/org/eclipse/cdt/debug/mi/core/event/MIWatchpointTriggerEvent.java + * src/org/eclipse/cdt/debug/mi/core/output/MIGDBShowDirectoriesInfo.java + * src/org/eclipse/cdt/debug/mi/core/output/MIGDBShowSolibSearchPathInfo.java + * src/org/eclipse/cdt/debug/mi/core/output/MIList.java + +2003-11-25 Alain Magloire + + Process the suspend event even if there is not threads + or stack associated with the target. + + * src/org/eclipse/cdt/debug/mi/core/cdi/EventManager.java + +2003-11-22 Alain Magloire + + In MISession constructor if the initialization fails shutdown + the Tx/RX/Event threads. + In MIPlugin if the initialization fails shutdown the pty console. + Ditto for GDBDebugger/GDBServerDebugger/CygwinGDBDebugger. + + * src/org/eclipse/cdt/debug/mi/core/MIPlugin.java + * src/org/eclipse/cdt/debug/mi/core/MISession.java + * src/org/eclipse/cdt/debug/mi/core/GDBDebugger.java + * src/org/eclipse/cdt/debug/mi/core/GDBServerDebugger.java + * src/org/eclipse/cdt/debug/mi/core/CygwinGDBDebugger.java + +2003-11-21 Alain Magloire + + The wrong MIPlugin.createCSession() method was used. + Problem noted by Ashish. + + * src/org/eclipse/cdt/debug/mi/core/GDBServerDebugger.java + +2003-11-21 Mikhail Khodjaiants + + * src/org/eclipse/cdt/debug/mi/core/output/MIFrame.java + Fix for PR 46592: Debug View shows Functions as func(type param,...)(). + Return an empty string instead of "??" if the function name is not available. + +2003-11-20 Alain Magloire + + Fix NPE: 46313. Setting breakpoint when the target was running + was throwing NPE. + + * src/org/eclipse/cdt/debug/mi/core/cdi/BreakpointManager.java + * src/org/eclipse/cdt/debug/mi/core/cdit/EventManager.java + +2003-11-19 Mikhail Khodjaiants + + Fix for PR 45533: MIException while creating MISession can leave an orphan gdb process. + * src/org/eclipse/cdt/debug/mi/core/MIPlugin.java: removed the 'getAdjustedTimeout' method. + +2003-11-19 Mikhail Khodjaiants + + Fix for PR 45533: MIException while creating MISession can leave an orphan gdb process. + * src/org/eclipse/cdt/debug/mi/core/MIPlugin.java: initialization of preferences by default values. + * src/org/eclipse/cdt/debug/mi/core/MISession.java: removed the duplicate constant for the default + launch timeout value. + +2003-11-13 Mikhail Khodjaiants + + * src/org/eclipse/cdt/debug/mi/core/output/MIFrame.java + Fix for PR 46592: Debug View shows Functions as func(type param,...)(). + In some situations gdb returns the function names that include parameter types. + To make the presentation consistent truncate the parameters. + +2003-11-06 Alain Magloire + + * src/org/eclipse/cdt/debug/mi/core/cdi/EventManager.java: + Small fix for the defferred breakpoint support. + +2003-11-06 Alain Magloire + + Patch from Ashish Karkare: + A CDT 1.2 patch that enables setting of + serial line speed in the launch configuration when debugging remote targets. + + * src/org/eclipse/cdt/debug/mi/core/IGDBServerMILaunchConfigurationConstants.java + New attribute definition DEV_SPEED. + + * src/org/eclipse/cdt/debug/mi/core/GDBServerDebugger.java + Extracts serial speed value and passes it to createCSession(). + + +2003-10-29 Alain Magloire + + Deal with PR 45533 + + Make a preferenc for Timeout and use it when launching + the ICDebugger session, when way wait for for gdb + to say "ready" by returning the prompt. + + * src/org/eclipse/cdt/debug/mi/core/MISession.java + * src/org/eclipse/cdt/debug/mi/core/MIPlugin.java + * src/org/eclipse/cdt/debug/mi/core/IMIConstants.java + +2003-10-17 Alain Magloire + + Put the framework to deal with deferred breakpoint. + + * src/org/eclipse/cdt/debug/mi/core/cdi/event/ResumeEvent.java + Deal with MIRunningEvent.RETURN. + * src/org/eclipse/cdt/debug/mi/core/cdi/model/Breakpoint.java + Check if MIBreakpoint is null first. + * src/org/eclipse/cdt/debug/mi/core/cdi/model/Watchpoint.java + Check if MIWathchpoint is null first. + * src/org/eclipse/cdt/debug/mi/core/cdi/BreakpointManager.java + Implement Deferred Breakpoint + * src/org/eclipse/cdt/debug/mi/core/cdi/SharedLibraryManager.java + Implement Deferred Breakpoint + * src/org/eclipse/cdt/debug/mi/core/GDBDebugger.java + Enable deferredBreakpoint. + * src/org/eclipse/cdt/debug/mi/core/CygwinDebugger.java + Enable deferredBreakpoint. + + +2003-10-07 Mikhail Khodjaiants + + All methods of 'IRuntimeOptions' should throw CDI exceptions in case of failure. + * src/org/eclipse/cdt/debug/mi/core/cdi/RuntimeOptions.java + +2003-09-30 Alain Magloire + + ICDIVariableObject.equals(); + + * src/org/eclipse/cdt/debug/mi/core/cdi/model/VariableObject.java + +2003-09-29 Mikhail Khodjaiants + Added the initialization of the shared libraries' attributes to CygwinGDBDebugger. + + * src/org/eclipse/cdt/debug/mi/core/CygwinGDBDebugger.java + +2003-09-26 Alain Magloire + + Second part of PR 43496. + On the startup of GDB, we have to wait for "(gdb)" prompt + to make sure that gdb is ready to accept command. + + * src/org/eclipse/cdt/debug/mi/core/MIPlugin.java + +2003-09-25 Alain Magloire + + Fix for PR 43496. + In the event of an error we should Process.destroy() + after creating the Process. + + * src/org/eclipse/cdt/debug/mi/core/MIPlugin.java + +2003-09-11 Mikhail Khodjaiants + Moving the shared library search paths block to mi UI. + * IMILaunchConfigurationConstants.java: added the 'ATTR_DEBUGGER_SOLIB_PATH' attribute. + +2003-09-11 Alain Magloire + + Fix to info shared parsing. + + * src/org/eclipse/cdt/debug/mi/core/output/MIInfoSharedLibary.java + +2003-09-09 Mikhail Khodjaiants + Regrouping the launch configuration constants. + * IMILaunchConfigurationConstants.java + +2003-09-09 Mikhail Khodjaiants + Added the 'stop-on-solib-events' option. + Changed the initialization of the shared library search path. + Changed the messages of the thrown exceptions. + * GDBDebugger.java + +2003-09-09 Mikhail Khodjaiants + + CoreFileConfiguration supports shared libraries. + + * src/org/eclipse/cdt/debug/mi/core/cdi/CoreFileConfiguration.java + +2003-08-30 Alain Magloire + + Unnecessary synchronization making deadlocks. Should revisit this code. + + * src/org/eclipse/cdt/debug/mi/core/MIInferior.java + +2003-08-29 Mikhail Khodjaiants + + Added new command - 'set stop-on-solib-events'. + + * src/org/eclipse/cdt/debug/mi/core/command/MIGDBSetStopOnSolibEvents.java + * src/org/eclipse/cdt/debug/mi/core/command/CommandFactory.java + + Implementation of the new methods added to the 'ICDISharedLibraryManager' interface. + + * src/org/eclipse/cdt/debug/mi/core/cdi/SharedLibraryManager.java + +2003-08-26 Alain Magloire + + This is still a hack: "info shared" the real solution + is to implement in GDB/MI the corresponding command. + So now we do weird parsing, that varies from platform + to platform. For example Cygwin output of "info shared" + is totally different from the GNU/Linux one etc ... + We the best we can to cope ... but things will break. + + * src/org/eclipse.cdt/debug/mi/core/output/MIInfoSharedLibraryInfo.java + +2003-08-26 Alain Magloire + + Using the wrong method for toString() and we were returning + a overly verbose string. + + * src/org/eclipse/cdt/debug/mi/core/GDBTypeParser.java + +2003-08-25 Alain Magloire + + Small fix, get the datatype for the GDBTypeParser. + + * src/org/eclipse/cdt/debug/mi/core/cdi/SourceManager.java + +2003-08-22 Alain Magloire + + For casting array we use the "@" format, hide it in + the name. But show it the qualifiedName() since the + expression is use to evaluate. + + * src/org/eclipse/cdt/debug/mi/core/cdi/model/Variable.java + * src/org/eclipse/cdt/debug/mi/core/cdi/model/VariableObject.java + * src/org/eclipse/cdt/debug/mi/core/cdi/VariableManager.java + +2003-08-21 Alain Magloire + + GDB varobj for the arrays children name only returns + the index. We need to construct the entire name: + char buffer[2] + GDB return "0", "1" for the children names. + We will return + "buffer[0]", "buffer[1]" + + * src/org/eclipse/cdt/debug/mi/core/cdi/Variable.java + +2003-08-20 Alain Magloire + + GDB/MI altough define an interface that all commands should + follow .. they do not. For example, we should be able + to separate options from agument with a "--" string not + all commands. The latest is -break-condition. + So we override the MICommand.toString() to do specific + parsing for specific commands. + + * src/org/eclipse/cdt/debug/mi/core/command/MICommand.java + break the toString() method. + * src/org/eclipse/cdt/debug/mi/core/command/MIBreakCondition.java + +2003-08-19 Alain Magloire + + Fix to the GDBTypeParser to deal with gdb + awkwardness + * src/org/eclipse/cdt/debug/mi/core/GDBTypeParser.java + +2003-08-19 Alain Magloire + + GDB, uses false category for C++ class/struct. + Fix to return the correct name. + + * src/org/eclipse/cdt/debug/mi/core/cdi/model/Variable.java + +2003-08-18 Alain Magloire + + Patch from Chris Songer, excerpt from the email. + Using the phrase "To ensure consistency between a register name and its + number, the output list may include empty register names," the MI protocol + appears to allow gdb to return a "sparse" array of registers by giving a 0 + length name in response to the -data-list-register-names-command. CDT 1.0.1 + does not handle this especially well and subsequently exposes a bug in GDB + 5.1.3 and crashes it if the debugger has more than 3 register names of 0 + length. + + example: + + 8-data-list-register-names + (gdb) + 8^done,register-names=["ar0","ar1",... ,"","","","","","","ur0",\ + "ur1","ur2","ur3","ur4","ur5","ur6","ur7","","" ..] + + + * src/org/eclipse/cdt/debug/mi/core/output/MIDataListRegisterNamesInfo.java: + New method getNumRealNames(). + * src/org/eclipse/cdt/debug/mi/core/cdi/RegisterManager.java: + Check if the register name is not empty. + +2003-08-18 Alain Magloire + + From the manual: + By default GDB will automatically keep track of objects as they are + loaded and unloaded by the dynamic linker. By using the command `set + stop-on-solib-events 1' you can arrange for GDB to stop the inferior + when shared library events occur, thus allowing you to set breakpoints + in shared libraries which are explicitly loaded by the inferior. + + * src/org/eclipse/cdt/debug/mi/core/event/MISharedLibEvent.java: + New file, StoppedEvent du to shared lib events. + * src/org/eclipse/cdt/debug/mi/core/cdi/event/SuspendedEvent.java: + Catch MISharedLibEvent. + * src/org/eclipse/cdt/debug/mi/core/cdi/SharedLibraryevent.java: + New file implements ICDISharedLibaryEvent. + * src/org/eclipse/cdt/debug/mi/core/RxThread.java: + Hack to catch suspend/stop on shared library. + +2003-08-11 Mikhail Khodjaiants + * src/org/eclipse/cdt/debug/mi/core/cdi/model/type/ArrayValue.java: + * src/org/eclipse/cdt/debug/mi/core/cdi/VariableManager.java: + Removed the 'type' parameter from the 'getVariableObjectAsArray' method. + +2003-08-11 Mikhail Khodjaiants + * src/org/eclipse/cdt/debug/mi/core/cdi/model/type/ArrayValue.java: + The 'type' argument of the 'getVariableObjectAsArray' method shouldn't be null. + +2003-08-11 Mikhail Khodjaiants + * src/org/eclipse/cdt/debug/mi/core/cdi/variableManager.java + Mistype in the 'CheckType' method. + +2003-08-07 Alain Magloire + + * src/org/eclipse/cdt/debug/mi/core/cdi/variableManager.java + getVariableObjectAsArray() ignore the type argument it does + not work with gdb. + + * src/org/eclipse/cdt/debug/mi/core/cdi/model/VariableObject.java + Added hasChildren() method. + +2003-08-07 Alain Magloire + + * src/org/eclipse/cdt/debug/mi/core/cdi/VariableManager.java: + Update the interface to reflect ICDIVariableManager. + +2003-08-06 Mikhail Khodjaiants + * src/org/eclipse/cdt/debug/mi/core/cdi/model/type/ArrayValue.java: + Removed the unused local variable 'children' from the 'getVariables' method. + +2003-08-07 Alain Magloire + + PR 38964. + + * src/org/eclipse/cdt/debug/mi/core/MIInferior.java: + The method interrupted was synchronized and so was the + setSuspended(). Now do a notify when the status change. + Throw an exception if the interrupt() failed. + * src/org/eclipse/cdt/debug/mi/core/cdi/model/Target.java: + Do not check for running. + +2003-08-06 Alain Magloire + + Dealing with casting: Casting a field of a structure did not + work properly for example: + struct foo { int bar; } foobar; + To cast the field bar, we need to construct the full qualified + name "foobar.bar". + Unfortunately for C++ things are hectic in the GDB/MI world + the childre of structure are not the fields. So we try to + deal with it too. + + * src/org/eclipse/cdt/debug/mi/core/cdi/model/Variable.java: + New constructor, new method getLanguage() to deal with + different type of languages ex: C vs C++. + * src/org/eclipse/cdt/debug/mi/core/cdi/model/VariableObject.java: + Clean up and added a bunch of set/getXXX() methods instead of + accessing directly the fields. + * src/og/eclipse/cdt/debug/mi/core/cdi/VariableManager.java: + Clean the methods use for casting and format the indentation. + * src/org/eclipse/cdt/debug/mi/core/command/MIVarInfoExpression.java: + Added parsing method. + +2003-08-06 Alain Magloire + + * src/org/eclipse/cdt/debug/mi/core/cdi/model/VariableObject.java: + Implement isEditable method. + +2003-08-06 Mikhail Khodjaiants + * src/org/eclipse/cdt/debug/mi/core/cdi/model/Variable.java: + Fix for 'isEditable'. + * src/org/eclipse/cdt/debug/mi/core/cdi/model/VariableObject.java: + Use correct expression in 'sizeof'. + +2003-08-06 Alain Magloire + + First framework to deal with breaking the arrays in ranges. + + * src/org/eclipse/cdt/debug/mi/core/cdi/model/Argument.java: + Remove unused getArgumentObject(). + * src/org/eclipse/cdt/debug/mi/core/cdi/model/Register.java: + Remove unuse getRegisterObject(). + * src/org/eclipse/cdt/debug/mi/core/cdi/model/Variable.java: + Move methods to VariableObject to comply with the interface. + * src/org/eclipse/cdt/debug/mi/core/cdi/model/VariableObject.java: + Implement new methods of ICDIVariableObject.java + Save the castin information. + * src/org/eclipse/cdt/debug/mi/core/cdi/model/type/ArrayValue.java: + New method getVariables(int, int). + * src/org/eclipse/cdt/debug/mi/core/cdi/VariableManager.java: + New method encodeVariable(), to get the encode specific string + for gdb casting of arrays. + +2003-07-28 Mikhail Khodjaiants + + Minimize the number of the "evaluate expression" requests when changing the value of the floating point types. + + * src/org/eclipse/cdt/debug/mi/core/cdi/model/type/FloatingPointValue.java + +2003-07-17 Alain Magloire + + Catch the use of cli command "detach" and fire the appropriate events. + + * src/org/eclipse/cdt/debug/mi/core/CLIProcessor.java + +2003-07-16 Alain Magloire + + Provide FunctionValue, PointerValue and ArrayValue. + For ArrayValue apply the patch from Chris Songer, excerpt from + his email: + Given GDB performance, we saw CDT start to time out on large array + requests. The following patch corrects this by scaling the time out with + the number of children being retrieved. I have not looked at the head on + this so your mileage may vary. On 1.0.1 with this and the MIParser change + you can open 16k arrays. + + * src/org/eclipse/cdt/debug/mi/core/cdi/model/type/AggregateValue.java + * src/org/eclipse/cdt/debug/mi/core/cdi/model/type/DerivedValue.java + * src/org/eclipse/cdt/debug/mi/core/cdi/model/type/PointerValue.java + * src/org/eclipse/cdt/debug/mi/core/cdi/model/type/ReferenceValueValue.java + * src/org/eclipse/cdt/debug/mi/core/cdi/model/type/ArrayValue.java + * src/org/eclipse/cdt/debug/mi/core/cdi/model/type/StructValue.java + * src/org/eclipse/cdt/debug/mi/core/cdi/model/Value.java + * src/org/eclipse/cdt/debug/mi/core/cdi/model/Variable.java + +2003-07-10 Alain Magloire + + In the case of not having a PTY to unmixed inferior output from gdb commands + do the only sane thing and when a response comes in that is not a valid + MI format consider it as inferior output. + + * src/org/eclipse/cdt/debug/mi/core/output/MIParser.java: + Put non valid lines in the TargetStream. + * src/org/eclipse/cdt/debug/mi/core/MIInferior.java: + Pass output straight to the target. + * src/org/eclipse/cdt/debug/mi/core/TxThread.java: + Remove unused code. + * src/org/eclipse/cdt/debug/mi/core/command/Command.java: + Try to remove duplicate errors when throwing the MIException. + +2003-07-08 Alain Magloire + + Unfortunately GDB/MI does not make the errors available via the advertise + way explain in the documentation, for example: + 27-var-create - * this->aaa + &"There is no member or method named aaa.\n" + &"Type Hello has no component named aaa.\n" + 27^error,msg="." + + According to the doc, the error should be available in the msg field: + 27^error,msg="There is no member or method named aaaa" + + Since this will not be fix in GDB/MI anytime soon, we cope with it by + grabing the logstream error and make it available in + + CDIException.getDetailedMesssage(). + + * src/org/eclipse/cdt/debug/mi/core/command/*.java: All the commands + changed to grab also the logstream messages if any for the exception. + +2003-06-25 Alain Magloire + + Patch from Chris Songer, excerpt from its email: + The MIParser is O(N^2) time in the length of a line returned from GDB. + While not an issue for OOB messages, this can be quite an issue for array + retrieval from the target and other potentially long messages. It's N^2 + because it relies on StringBuffer.deleteCharAt( 0 ) and + StringBuffer.delete( 0, X ). These operations appear to do a copy of the + remaining data in the Sun Java library rather than bumping some index. + + The following diffs are code that we are using on 1.0.1 to correct this + issue. It's relatively new, so there may be some bugs but has certainly + performed just fine in our initial regressions. Because of that I'm not + sending it in as a patch, more an FYI really. The basic change is exactly + what you'd expect: these diffs make MIParser use a new type of string + buffer that's quite efficient at deleting from the head of the array. + + * src/org/eclipse/cdt/debug/mi/core/output/MIParser.java + +2003-06-18 Alain Magloire + + * src/org/eclipse/cdt/debug/mi/core/cdi/event/ChangedEvent.java: + Check if the variable was a register. + * src/org/eclipse/cdt/debug/mi/core/cdi/event/CreatedEvent.java: + Cleanup. + * src/org/eclipse/cdt/debug/mi/core/cdi/model/Register.java: + Removing of method {get,set}Value() and new method getChildren(). + * src/org/eclipse/cdt/debug/mi/core/cdi/model/Variable.java + (setValue): calls update on the appropriate manager. + * src/org/eclipse/cdt/debug/mi/core/cdi/model/RegisterValue.java: + Remove file, unused. + * src/org/eclipse/cdt/debug/mi/core/cdi/VariableManager.java: + (getVariableObjectAsType): check for register. + (getVariableObjectAsArray): check for register. + * src/org/eclipse/cdt/debug/mi/core/cdi/RegisterManager.java: + (getRegister): reimplemented. + +2003-06-18 Mikhail Khodjaiants + Removed unused local variable. + * src/org/eclipse/cdt/debug/mi/core/cdi/RegisterManager.java + +2003-06-17 Alain Magloire + + PR 38934 + * src/org/eclipse/cdt/debug/mi/core/cdi/RegisterManager.java (update): + We have to call "-var-update" to update the register values in gdb. + +2003-06-05 Mikhail Khodjaiants + gdb/mi support of infinite values of the floating point types. + * DoubleValue.java + * FloatingPointValue.java + * FloatValue.java + +2003-06-05 Mikhail Khodjaiants + Removed the redundant methods from the 'ICDIFloatingPointValue' interface. + * src/org/eclipse/cdt/debug/mi/core/cdi/model/type/FloatingPointValue.java + +2003-06-04 Mikhail Khodjaiants + Correction in the parsing of reference value. + * src/org/eclipse/cdt/debug/mi/core/cdi/model/type/ReferenceValue.java + +2003-06-04 Mikhail Khodjaiants + Added some missing types and methods for the type parsing. + * src/org/eclipse/cdt/debug/mi/core/cdi/model/Variable.java + * src/org/eclipse/cdt/debug/mi/core/cdi/model/type/ArrayType.java + * src/org/eclipse/cdt/debug/mi/core/cdi/model/type/DoubleValue.java + * src/org/eclipse/cdt/debug/mi/core/cdi/model/type/FloatingPointValue.java + * src/org/eclipse/cdt/debug/mi/core/cdi/model/type/FloatValue.java + * src/org/eclipse/cdt/debug/mi/core/cdi/model/type/PointerValue.java: new + * src/org/eclipse/cdt/debug/mi/core/cdi/model/type/ReferenceValue.java: new + +2003-06-03 Alain Magloire + + * src/org/eclipse/cdt/debug/mi/core/GDBTypeParser.java: + Bug fix gdb returns fix like "char [200]" no variables. + +2003-06-03 Alain Magloire + + * src/org/eclipse/cdt/debug/mi/core/cdi/SourceManager.java + (getType): save the head of the type for the return value. + +2003-06-02 Alain Magloire + + Enable the new type parsing with the class GDBTypeParser. + This class takes the output of GDB/MI + (gdb) whatis + or + (gdb) ptype + And parse it. + + * src/org/eclipse/cdt/debug/mi/core/cdi/model/type/ArrayType.java + * src/org/eclipse/cdt/debug/mi/core/cdi/model/type/DerivedType.java + * src/org/eclipse/cdt/debug/mi/core/cdi/model/type/PointerType.java + * src/org/eclipse/cdt/debug/mi/core/cdi/model/type/FunctionType.java + * src/org/eclipse/cdt/debug/mi/core/cdi/SourceManager.java + * src/org/eclipse/cdt/debug/mi/core/GDBTypeParser.java + +2003-05-25 Alain Magloire + + Do extra parsing. + * src/org/eclipse/cdt/debug/mi/core/model/type/ArrayType.java + * src/org/eclipse/cdt/debug/mi/core/model/type/DerivedType.java + * src/org/eclipse/cdt/debug/mi/core/model/type/PointerType.java + * src/org/eclipse/cdt/debug/mi/core/model/type/FunctionType.java + * src/org/eclipse/cdt/debug/mi/core/model/Variable.java + +2003-05-24 Alain Magloire + + * src/org/eclipse/cdt/debug/mi/core/cdi/StackFrame.java + When execption reset the variable to null and rethrow the exception. + +2003-05-24 Alain Magloire + + Continuing the implementation of types. + ICDIType is ICDIObject. + * src/org/eclispe/cdt/mi/core/cdi/model/type/Type.java: + Extends CObject + +2003-05-23 Alain Magloire + + Draft implementation of org.eclipse.cdt.debug.core.cdi.model.type/* + +2003-05-06 Alain Magloire + + * src/org/eclipse/cdt/debug/mi/core/cdi/model/Thread.java (suspend): + Suspend the program before selecting the thread. + +2003-05-01 Mikhail Khodjaiants + Implementations of the new "terminateSessionOnExit" method of ICDIConfiguration. + * Configuration.java + * CoreFileConfiguration.java + +2003-04-30 Alain Magloire + + * src/org/eclipse/cdt/debug/mi/core/MIPlugin.java: + Call MIInferior.update() if attaching session. + +2003-04-30 Alain Magloire + + * src/org/eclipse/cdt/debug/mi/core/cdi/Configuration.java (supportsTerminate): + Returns true. + +2003-04-25 Alain Magloire + + * src/org/eclipse/cdt/debug/mi/core/EventManager.java (update): + Remove the call to MIInferior.update(), wrong place. + * src/org/eclipse/cdt/debug/mi/core/EventThread.java (run): + Call MIInferior.update() when suspended. + * src/org/eclipse/cdt/debug/mi/core/MIInferior.java (update): + Do not do the call to "info program" for type "attached" sessions. + * src/org/eclipse/cdt/debug/mi/core/MISession.java (terminate): + When terminate() is call disable posting commands to the queue etc... + +2003-04-25 Mikhail Khodjaiants + + Fix for bug 36909. + * MIFrame.java: + gdb returns "??" as a function name if symbols are not available. + Set the function name in this case to ""; + +2003-04-24 Alain Magloire + + * src/org/eclipse/cdt/debug/mi/core/command/CommandFactory.java (createMIInfoProgram): + New method. + * src/org/eclipse/cdt/debug/mi/core/command/MIInfoProgram.java: + New file, "info program". + * src/org/eclipse/cdt/debug/mi/core/output/MIInfoProgramInfo.java: + New file, parsing of "info Program". + * src/org/eclipse/cdt/debug/mi/core/output/EventManager.java (processSuspend): + Call MIInferio.update(); + * src/org/eclipse/cdt/debug/mi/core/MIInferior.java (update): + New method to retrieve the pid. + (interrupt): Try doing Spawner.raise(pid, INT) as a fallback. + * src/org/eclipse/cdt/debug/mi/core/cdi/Configuration.java (supportSuspend): + Bug fix. + +2003-04-23 Alain Magloire + + * src/org/eclipse/cdt/debug/mi/core/cdi/SignalManager.java (update): + Move the creation of the list after the call to "info signals". + The call may fail. + +2003-04-21 Alain Magloire + + * src/org/eclipse/cdt/debug/mi/core/cdi/Target.java (suspend): + Remove the delay of 10 secs. + * src/org/eclipse/cdt/debug/mi/core/MIInferior.java (interrupt): + Do a delay of 10 secs to allow time for the inferior to stop. + * src/org/eclipse/cdt/debug/mi/core/MISession.java (terminate) : + Clear the EventQueue, if we restart. + * src/org/eclipse/cdt/debug/mi/core/Queue (isEmpty): + New method. + +2003-04-21 Alain Magloire + + * src/org/eclipse/cdt/debug/mi/core/GDBDebugger.java: + * src/org/eclipse/cdt/debug/mi/core/GDBServerDebugger.java: + Ignore exception when doing "set auto-solib-path on". + +2003-04-17 Alain Magloire + + * src/org/eclipse/cdt/debug/mi/core/cdi/model/Target.java: + setCurrentThread(), calls VariableManager.update(); + * src/org/eclipse/cdt/debug/micore/cdt/model/Thread.java: + setCurrentStackFrame() calls VariableManager.update(); + +2003-04-07 Mikhail Khodjaiants + Changed the messages of CDI exceptions. + * MISession.java + * Target.java + +2003-04-04 Alain Magloire + + Code from Monta Vista to add a Session via GDBServer. + + * src/org/eclipse/cdt/debug/mi/core/MIPlugin.java: + * src/org/eclipse/cdt/debug/mi/core/GDBServerDebugger.java: + * src/org/eclipse/cdt/debug/mi/core/IGDBServerMILaunchConfigurationConstants.java: + * plugin.xml + +2003-04-04 Alain Magloire + + * src/org/eclipse/cdt/debug/mi/core/cdt/VariableManager.java: + Check for null in update(). + +2003-04-03 Alain Magloire + + * src/org/eclipse/cdt/debug/mi/core/cdt/VariableManager.java: + update(), put a limit on the number of stack we check for variables. + +2003-04-03 Alain Magloire + + * src/org/eclipse/cdt/debug/mi/core/cdt/model/Target.java: + * src/org/eclipse/cdt/debug/mi/core/cdt/model/Thread.java: + Before updating the register check if the manager is on autoupdate. + +2003-04-02 Alain Magloire + + * src/org/eclipse/cdt/debug/mi/core/cdt/model/Target.java: + suspend() sync for at least < 10 seconds to allow the gdb to + suspend via SIGINT the program. + +2003-03-28 Mikhail Khodjaiants + Added time stamp to the trace messages. + * MIPlugin.java + +2003-03-28 Mikhail Khodjaiants + Correction of the previous patch. + * MIAsm.java + +2003-03-27 Mikhail Khodjaiants + Applied patch from Chris Songer: Assembly View Fixups + * Instruction.java + * MIAsm.java + +2003-03-19 Alain Magloire + + Some applications, like recursive code, have a very deep stackframes + bigger > 50. This can turn out to be a problem, as the VariableManager + will try to update all the variables and there can be a lot of local + variable in all those stackframes. We can not use: + "-var-update *" + either since on gdb-5.2.1, for reasons unknown to me this will make + gdb unstable/crash. So the approach is to only update variables + in the current stackframe. + The advantage we only update a small set of variables. + The downside if we have side effects i.e. pointers pass to + argument and modifying the pointer affect the callees memory. + But this is a small price to pay and usually C/C++ programmer + are interrested to see changes of variables in the current stack + not changes 20 stack before. + + * src/org/eclipse/cdt/debug/mi/core/cdi/VariableManager.java: + Method update() only check the variable in the scope of the + current stackframe(the highest stack). This will include + any globals. + +2003-03-19 Alain Magloire + + Base on PR/patch from Chris Songer. + Assigning a value to a register may have side-effects + on other registers. When assigning, the action is now + to upate again the values. The same for the variables. + + * src/org/eclipse/cdt/debug/mi/core/cdi/model/Variable.java: + * src/org/eclipse/cdt/debug/mi/core/cdi/model/Register.java: + Method setValue() calls manager.update() after the assignment. + +2003-03-17 Alain Magloire + + * src/org/eclipse/cdt/debug/mi/core/cdi/model/StackFrame.java: + getArguments() and getLocalVariable() are caching the results. + +2003-03-16 Alain Magloire + + GDB/MI does not keep the stack level, from what we expect. In gdb, the + highest stack is level 0 and lower stack as the highest level: + -stack-list-frames + ^done,stack=[frame={level="0 ",addr="0x0804845b",func="main",file="hello.c",line="24"}, + frame={level="1 ",addr="0x42017499",func="__libc_start_main",from="/lib/i686/libc.so.6"}] + + -stack-list-frames + ^done,stack=[frame={level="0 ",addr="0x08048556",func="main2",file="hello.c",line="58"}, + frame={level="1 ",addr="0x08048501",func="main",file="hello.c",line="41"}, + frame={level="2 ",addr="0x42017499",func="__libc_start_main",from="/lib/i686/libc.so.6"}] + + This is of no use to us since the level is always "0". The level is necessary for example when + doing recursive calls to make a distinction between frames. + So in CDT this reverse the hidghest frame will have the highest number. In CDT: + stack=[frame={level="2 ",addr="0x0804845b",func="main",file="hello.c",line="24"}, + frame={level="1 ",addr="0x42017499",func="__libc_start_main",from="/lib/i686/libc.so.6"}] + + stack=[frame={level="3 ",addr="0x08048556",func="main2",file="hello.c",line="58"}, + frame={level="2 ",addr="0x08048501",func="main",file="hello.c",line="41"}, + frame={level="1 ",addr="0x42017499",func="__libc_start_main",from="/lib/i686/libc.so.6"}] + + + * src/org/eclipse/cdt/debug/mi/core/cdi/model/StackFrame.java: + Takes a new Argument in the constructor, the level. + * src/org/eclipse/cdt/debug/mi/core/cdi/model/Threawd.java: + Create the StackFrame with the constructor. + * src/org/eclipse/cdt/debug/mi/core/cdi/Location.java: + Fix equals(). + * src/org/eclipse/cdt/debug/mi/core/cdi/VariableManager.java: + Use the right level when setting the frame. + +2003-03-14 Alain Magloire + + * src/org/eclipse/cdt/debug/mi/core/cdi/model/Argument.java: + New method getArgumentObject(). + * src/org/eclipse/cdt/debug/mi/core/cdi/model/Register.java: + New method getRegisterObject(). + * src/org/eclipse/cdt/debug/mi/core/cdi/VariableManager.java: + Checks for ICDIVariable and ICDIArgument since they are now ICDIVariableObject too. + * src/org/eclipse/cdt/debug/mi/core/cdi/RegisterManager.java: + Checks for ICDIRegister when creating since they are now ICDIRegisterObject too. + +2003-03-13 Alain Magloire + + Small bug fix + * src/org/eclipse/cdt/debug/mi/core/cdi/VariableManager.java + +2003-03-13 Alain Magloire + + * src/org/eclipse/cdt/debug/mi/core/cdi/VariableManager.java: + New method getLocalVariableObjects() implemented returns all the local. + * src/org/eclipse/cdt/debug/mi/core/cdi/model/StackFrame.java + getLocalVariables() use getLocalVariableObjects(). + * src/org/eclipse/cdt/debug/mi/core/cdi/model/Variable.java: + getName() does not longer throw an Exception. + +2003-03-11 Alain Magloire + + * src/org/eclipse/cdt/debug/mi/core/cdi/VariableManager.java: + New methods getVariableObjectAsArray() getVariableObjectAsType(). + +2003-03-03 Alain Magloire + + * src/org/eclipse/cdt/debug/mi/core/CommandQueue.java (print): Comment out. + * src/org/eclipse/cdt/debug/mi/core/Queue.java (print): Comment out. + +2003-02-12 Mikhail Khodjaiants + The 'setAutoSolib' method is no longer in ICDISharedLibraryManager. + * GDBDebugger.java + +2003-02-12 Alain Magloire + + * src/org/eclipse/cdt/debug/mi/core/cdi/model/Target.java: + Removed getRegisterObjects(), getRegisters(), getSharedLibraries(). + Those actions are done via the managers. + + * src/org/eclipse/cdt/debug/mi/core/cdi/model/Variable.java (getChild): + Check the grand children also. + +2003-02-12 Alain Magloire + + * src/org/eclipse/cdt/debug/mi/core/cdi/SharedLibraryManager.java (isAutoLoadSymbols): + New method. + * src/org/eclipse/cdt/deb/mi/core/command/MIGDBShow.java (getMIGDBShowInfo): + New method. + +2003-02-12 Alain Magloire + + * src/org/eclipse/cdt/debug/mi/core/cdi/event/ChangedEvent.java (ChangedEvent): + Returns a Variable. + * src/org/eclipse/cdt/debug/mi/core/cdi/event/DestroyedEvent.java (DestroyedEvent): + Check if it was an expression also. + * src/org/eclipse/cdt/debug/mi/core/cdi/model/Value.java (getVariables): + Calls the parent's implementation. + * src/org/eclipse/cdt/debug/mi/core/cdi/model/Variable.java (getVariables): + New implementation. + * src/org/eclipse/cdt/debug/mi/core/cdi/EventManager.java (update): + Deal with new MIVarDeleteEvent. + * src/org/eclipse/cdt/debug/mi/core/cdi/ExpressionManager.java (addExpression): + Removed. + (removeExpression): New method. + * src/org/eclipse/cdt/debug/mi/core/event/MIVarChangedEvent.java (getScope): + removed. + * src/org/eclipse/cdt/debug/mi/core/event/MIVarDeletedEvent.java: + New file. + +2003-02-09 Alain Magloire + + in GDB/MI 5.3 and below, the -data-list-register-xxx can bring gdb down with + an assert(). The problem is that code like this + ui_out_list_begin(); + for () { + if(error) + return ERROR; + } + ui_out_list_end(); + The ui_out_list_end() is never call. + However gdb offers the varobj to deal cleanly with register but calling + "-var-update *" seems to make gdb misbehave and hang after a while. + So we use a mixed of -data-list-register-xxx calls and var-object to deal + with registers and do not call "-var-update *" but rather call it for + each time for individual objects to see the updates. + + * src/org/eclipse/cdt/debug/mi/core/cdi/model/Register.java: + Reimplemented to use the var obj. + * src/org/eclipse/cdt/debug/mi/core/cdi/model/RegisterValue.java: + New file implement ICDIValue. + * src/org/eclipse/cdt/debug/mi/core/cdi/EventManagero.java (processSuspendedEvent): + Call each manager.update(). + * src/org/eclipse/cdt/debug/mi/core/cdi/ExpressionManager.java (update): + Reimplemented. + * src/org/eclipse/cdt/debug/mi/core/cdi/RegisterManager.java (update): + Reimplemented + * src/org/eclipse/cdt/debug/mi/core/cdi/UpdateManager.java: + Removed. + * src/org/eclipse/cdt/debug/mi/core/cdi/IUpdateListener.java: + Removed. + * src/org/eclipse/cdt/debug/mi/core/CLIProcessor.java: + Catch the cli "run" command. + +2003-02-06 Alain Magloire + + * src/org/eclipse/cdt/debug/mi/core/cdi/VariableManager.java (getVariableArrayObject): + New Method to type cast in an array. + * src/org/eclipse/cdt/debug/mi/core/cdi/model/VariableObject.java (VariableObject): + New constructor. + * src/org/eclipse/cdt/debug/mi/core/cdi/SignalManger.java(getSignal): + Return an signal object even when the session is terminated. + +2003-02-05 Alain Magloire + + * src/org/eclipse/cdt/debug/mi/core/command/MISignal.java: + * src/org/eclipse/cdt/debug/mi/core/command/MIJump.java: + Return a fake ^running, since the MI semantic is not respected. + +2003-02-04 Alain Magloire + + * src/org/eclipse/cdt/debug/mi/core/CLICommand.java: + Catch cli command "jump" + +2003-02-04 Alain Magloire + + * src/org/eclipse/cdt/debug/mi/core/cdi/model/Target.java: + * src/org/eclipse/cdt/debug/mi/core/cdi/model/Thread.java: + New implementation for signal(), jump, and stepReturn(boolean). + * src/org/eclipse/cdt/debug/mi/core/cdi/model/Signal.java: + (signal): Calls Target.signal(). + * src/org/eclipse/cdt/debug/mi/core/cdi/model/SignalManager.java: + (signal): Method removed. + * src/org/eclipse/cdt/debug/mi/core/command/MIJump.java: + New file. + * src/org/eclipse/cdt/debug/mi/core/command/CommandFactory.java: + New method creteMIJump(). + +2003-02-04 Alain Magloire + + * src/org/eclipse/cdt/debug/mi/core/cdi/SignalManger.java: + Implement signal() method. + * src/org/eclipse/cdt/debug/mi/core/command/MISignal.java: + New file. + * src/org/eclipse/cdt/debug/mi/core/command/CommandFactory.java: + (createMISignal): new method. + +2003-02-04 Alain Magloire + + * src/org/eclipse/cdt/debug/mi/core/cdi/event/ExitedEvent.java: + Catch MIInferiorSignalExitEvent. + * src/org/eclipse/cdt/debug/mi/core/cdi/event/ExitedEvent.java: + Catch MIInferiorSignalExitEvent. + * src/org/eclipse/cdt/debug/mi/core/cdi/SignalExitInfo.java: + New File. + * src/org/eclipse/cdt/debug/mi/core/event/MIInferiorSignalExitEvent.java: + New File + * src/org/eclipse/cdt/debug/mi/core/event/CLIProcessir.java: + "signal" command is like continue. + * src/org/eclipse/cdt/debug/mi/core/event/RxThread.java: + Catch MIInferiorSignalExitEvent. + +2003-02-04 Alain Magloire + + Refactor MISignal in MISigHandle to not confus with + CLI command "signal SIGNAL". + + * src/org/eclipse/cdt/debug/mi/core/cdi/model/Signal.java: + * src/org/eclipse/cdt/debug/mi/core/cdi/SignalManager.java: + * src/org/eclipse/cdt/debug/mi/core/output/MIInfoSignalsInfo.java: + * src/org/eclipse/cdt/debug/mi/core/output/MISigHandle.java: + +2003-02-03 Alain Magloire + + * src/org/eclipse/cdt/debug/mi/core/cdi/SharedLibraryManager.java: + (loadSymbols): set the read flag to true. + * src/org/eclipse/cdt/debug/mi/core/cdi/model/SharedLibrary.java: + (getMIShared): New method. + * src/org/eclipse/cdt/debug/mi/core/output/MIShared.java: + (setSymbolsRead): New method. + +2003-02-01 Alain Magloire + + * src/org/eclipse/cdt/debug/mi/core/cdi/event/ChangedEvent.java: + Support for ICDISignal event. + * src/org/eclipse/cdt/debug/mi/core/cdi/model/Signal.java (handle): + Implemented. + * src/org/eclipse/cdt/debug/mi/core/cdi/EventManager.java (update): + Support for ICDISignal event. + * src/org/eclipse/cdt/debug/mi/core/cdi/SignalManager.java (handle): + New method. + * src/org/eclipse/cdt/debug/mi/core/command/CommandFactory.java (createMIHandle): + New method + * src/org/eclipse/cdt/debug/mi/core/command/MIHandle.java: + New File. + * src/org/eclipse/cdt/debug/mi/core/CLICommand.java: + Check for "handle" and "signal" cli command. + +2003-01-31 Alain Magloire + + * src/org/eclipse/cdt/debug/mi/core/cdi/event/DestroyedEvent.java: + Use deleteSharedLibrary from the manager. + * src/org/eclipse/cdt/debug/mi/core/cdi/signal/Signal.java: + Construct a signal base on the MISignal response. + * src/org/eclipse/cdt/debug/mi/core/cdi/BreakpointManager.java + (suspendedInferior): Take ICDITarget as argument. + (resumeInferior): Take ICDITarget as argument. + * src/org/eclipse/cdt/debug/mi/core/cdi/SharedLibraryManager.java + (containsSharedLibrary): removed. + * src/org/eclipse/cdt/debug/mi/core/cdi/SignalManager.java + (update): implemented. + (getSignals): implemented. + * src/org/eclipse/cdt/debug/mi/core/cdi/SignalReceived.java: + Ask the manager for the signal. + * src/org/eclipse/cdt/debug/mi/core/event/MISignalEvent.java: + New file. + +2003-01-29 Alain Magloire + + * src/org/eclipse/cdt/debug/mi/core/cdi/SharedLibraryManager.java (getSharedLibraryPaths): + New method. + (setSharedLibraryPaths): New method. + (setAutoLoadSymbols): New methos set autosolib. + * src/org/eclipse/cdt/debug/mi/core/cdi/SourceManager.java (setAutoSolib): + Move to SharedLibraryManager.java + +2003-01-28 Alain Magloire + + * src/org/eclipse/cdt/debug/mi/core/command/MIInfoSignals.java: + * src/org/eclipse/cdt/debug/mi/core/output/MIInfoSignalsInfo.java: + * src/org/eclipse/cdt/debug/mi/core/output/MISignal.java: + New files. + +2003-01-28 Alain Magloire + + * src/org/eclipse/cdt/debug/mi/core/cdi/model/ArgumentObject.java: + Use ICDIStackFrame in the constructor. + * src/org/eclipse/cdt/debug/mi/core/cdi/model/RegisterObject.java: + Use ICDIStackFrame in the constructor. + * src/org/eclipse/cdt/debug/mi/core/cdi/model/VariableObject.java: + Use ICDIStackFrame in the constructor. + * src/org/eclipse/cdt/debug/mi/core/cdi/model/Value.java (getVariables): + No need to cast to StackFrame. + * src/org/eclipse/cdt/debug/mi/core/cdi/model/Thread.java (setCurrentFrame): + Implement new method, takes a boolean as the second method. + * src/org/eclipse/cdt/debug/mi/core/cdi/ExpressionManager.java: + No need to cast to StackFrame. + * src/org/eclipse/cdt/debug/mi/core/cdi/VariableManager.java: + No need to cast to StackFrame. + +2003-01-28 Alain Magloire + + * src/org/eclipse/cdt/debug/mi/core/cdi/model/Breakpoint.java (getCondition): + Condition was initialize with the wrong parameter. + (setMIBreakpoint): reset location and condition. + +2003-01-28 Alain Magloire + + * src/org/eclipse/cdt/debug/mi/core/cdi/model/Breakpoint.java (setMIBreakpoint): + New method. + * src/org/eclipse/cdt/debug/mi/core/cdi/BreakpointManager.java (update): + Reset the new MIBreakpoint on the Breakpoint object. + (containsBreakpoint): Removed. + (hasBreakpointChanged): Change arguments. + * src/org/eclipse/cdt/debug/mi/core/output/MIBreakpoint.java (parser): + Better check for watchpoints. + * src/org/eclipse/cdt/debug/mi/core/CLIProcessor.java (isChangeBreakpoint): + Check for "ignore" and "condition" cli commands. + +2003-01-27 Alain Magloire + + * src/org/eclipse/cdt/debug/mi/core/cdi/model/Register.java (getTypeName): + Use MIWhatis to get the type of the register. + (getVariables): Cache the answer. + * src/org/eclipse/cdt/debug/mi/core/cdi/SharedLibraryManager.java (loadSymbols): + Use MISharedLibrary. + * src/org/eclipse/cdt/debug/mi/core/command/CommandFactory.java (createMIWhatis): + New method. + (MIPType): New method. + * src/org/eclipse/cdt/debug/mi/core/command/MISharedLibrary.java: + New file. + + +2003-01-27 Alain Magloire + + * src/org/eclipse/cdt/debug/mi/core/cdi/model/Target.java (getCThreads): + When attaching gdb(at least on some platform) does not show + the selected thread(info threads). Fallback on the first one. + +2003-01-27 Alain Magloire + + * src/org/eclipse/cdt/debug/mi/core/cdi/VariableManager.java (findVariable): + Bug fix, did not compare the stacks correctly. + +2003-01-27 Alain Magloire + + * src/org/eclipse/cdt/debug/mi/core/cdi/model/VariableObject.java: + * src/org/eclipse/cdt/debug/mi/core/cdi/model/ArgumentObject.java: + * src/org/eclipse/cdt/debug/mi/core/cdi/model/RegisterObject.java: + Move to model package. + +2003-01-26 Alain Magloire + + Major refactor of the code. Rewrote/Added Managers: + VariableManager + ExpressionManager + RegisterManager + UpdateManager. + + Refactor of CSession to Session, CTarget to Target + and CThread to Thread. + * src/.../mi/core/cdi/event/ChangedEvent.java: + * src/.../mi/core/cdi/event/CreatedEvent.java: + * src/.../mi/core/cdi/event/DestroyedEvent.java: + * src/.../mi/core/cdi/event/DisconnectedEvent.java: + * src/.../mi/core/cdi/event/ExitedEvent.java: + * src/.../mi/core/cdi/event/MemoryChangedEvent.java: + * src/.../mi/core/cdi/event/ResumedEvent.java: + * src/.../mi/core/cdi/event/SuspendedEvent.java: + + + * src/.../mi/core/cdi/model/Argument.java: + * src/.../mi/core/cdi/model/Breakpoint.java: + * src/.../mi/core/cdi/model/Thread.java: + * src/.../mi/core/cdi/model/Target.java: + * src/.../mi/core/cdi/model/MemoryBlock.java: + * src/.../mi/core/cdi/model/MixedInstruction.java: + * src/.../mi/core/cdi/model/Instruction.java: + * src/.../mi/core/cdi/model/Signal.java: + * src/.../mi/core/cdi/model/SharedLibrary.java: + * src/.../mi/core/cdi/model/CObject.java: + * src/.../mi/core/cdi/model/Expression.java: + * src/.../mi/core/cdi/model/Variable.java: + * src/.../mi/core/cdi/model/Value.java: + * src/.../mi/core/cdi/model/Register.java: + * src/.../mi/core/cdi/model/StackFrame.java: + + * src/.../mi/core/cdi/ArgumentObject.java: + * src/.../mi/core/cdi/VariableObject.java: + * src/.../mi/core/cdi/RegisterObject.java: + * src/.../mi/core/cdi/BreakpointHit.java: + * src/.../mi/core/cdi/BreakpointManager.java: + * src/.../mi/core/cdi/VariableManager.java: + * src/.../mi/core/cdi/ExpressionManager.java: + * src/.../mi/core/cdi/RegisterManaget.java: + * src/.../mi/core/cdi/SignalManager.java: + * src/.../mi/core/cdi/SharedLibraryManager.java: + * src/.../mi/core/cdi/EventManager.java: + * src/.../mi/core/cdi/MemoryManager.java: + * src/.../mi/core/cdi/ErrorInfo.java: + * src/.../mi/core/cdi/Session.java: + * src/.../mi/core/cdi/ExitInfo.java: + * src/.../mi/core/cdi/UpdateManager.java: + * src/.../mi/core/cdi/IUpdateListener.java: + * src/.../mi/core/cdi/SessionObject.java: + * src/.../mi/core/cdi/SignalReceived.java: + * src/.../mi/core/cdi/SourceManager.java: + * src/.../mi/core/cdi/RuntimeOptions.java: + * src/.../mi/core/cdi/WatchpointScope.java: + * src/.../mi/core/cdi/WatchpointTrigger.java: + * src/.../mi/core/cdi/EndSteppingRange.java: + + * src/.../mi/core/MIPlugin.java: + * src/.../mi/core/CygwinGDBDebugger.java: + * src/.../mi/core/GDBDebugger.java: + + + +2003-01-24 Alain Magloire + + * src/.../mi/core/CLIProcessor.java (isEnableBreakpoint): + Check for "enable", "disable" cli commands. + +2003-01-23 Alain Magloire + + * src/.../mi/core/CLIProcessor.java (isDeletingBreakpoint): + Check for "d" it means delete breakpoints. + +2003-01-20 Alain Magloire + + * src/.../mi/core/cdi/Configuration.java (supporstSharedLibrary): + New method. + * src/.../mi/core/cdi/CoreFileConfiguration.java (supporstSharedLibrary): + New method. + * src/.../mi/core/cdi/SharedLibraryManager.java (update): + Checks if support for shared Libary before doin an update. + +2003-01-20 Alain Magloire + + * src/.../mi/core/cdi/SuspendedEvent.java: Use SignalReceived. + * src/.../mi/core/cdi/model/Signal.java: New file. + * src/.../mi/core/cdi/model/SignalManager.java: Use model/Signal. + * src/.../mi/core/cdi/SignalReceived.java: New file. + +2003-01-20 Alain Magloire + + The problem was that no check was done for the existence of + the program/executable nor the working directory etc ... + By asking the arguements to be File, the check is done by + the caller. + + * src/.../mi/core/MIPlugin.java (createCSession): Change the + the arguments. + * src/.../mi/core/GDBDebugger.java (createCSession): Change the + +2003-01-20 Alain Magloire + + * src/.../mi/core/command/MIWhatis.java: New file. + * src/.../mi/core/command/MIPType.java: New file. + * src/.../mi/core/command/MISharedLibary.java: New file. + * src/.../mi/core/output/MIWhatisInfo.java: New file. + * src/.../mi/core/output/MIPTypeInfo.java: New file. + +2003-01-18 Alain Magloire + + * src/.../mi/core/cdi/event/DestroyedEvent.java (DestroyedEvent): + Remove the deleted shared library from the list. + * src/.../mi/core/cdi/SharedLibraryManager.java (getUnloadedLibrary): + Get a shared library slated for unload. + (removeFromUnloadedList): Remove the library form the list. + +2003-01-17 Alain Magloire + + * src/.../mi/core/output/MIInfoSharedLibraryInfo.java (parseWinShared): + Break the methods in parserUnixShared() and parseWinShared() to cope + with the different formats. + +2003-01-17 Alain Magloire + + * src/.../mi/core/cdi/SharedLibraryManager.java (loadSymbols): + New method takes and array of ICDISharedLibrary. + * src/.../mi/core/cdi/SharedLibrary.java (loadSymbols): + Call the share manager to load. + +2003-01-17 Alain Magloire + + * src/.../mi/core/cdi/SharedLibraryManager.java (loadSymbols): + Call "shared libraryname". + +2003-01-17 Alain Magloire + + The problem here is that we do not knw the state of + the session, for example "target remote server:port" + was issue, in this case the state is suspended. + We try to guess by posting a "info remote-process" + and set suspended when no error. + + * src/.../mi/core/MIPlugin.java (createCSession): + Try "info remote-process" to guess the state. + Remove the "new-console" call to windows specific files. + * src/.../mi/core/CygwinGDBDebugger.java(createLaunchSession): + call "set new-console" for windows plaforms. + +2003-01-16 Alain Magloire + + * src/.../mi/core/cdi/SharedLibary.java (setMIShared): + New method. + * src/.../mi/core/cdi/SharedLibraryManager.java (update): + When changed reset the MIShared of the SharedLibrary. + +2003-01-16 Alain Magloire + + Process gdbinit configuration file. + + * src/.../mi/core/MIPlugin.java (createCSession): Takes now two new + arguments for working directory and configuration file gdbinit. + * src/.../mi/core/GDBDebugger.java (createAttachSession): + (createCoreSession): pass the working directory and gdbinit file + (createLaunchSession): pass the working directory and gdbinit file + * src/.../mi/core/IMILaunchConfigurationConstants.java: + New constant ATTR_GDB_INIT. + +2003-01-16 Alain Magloire + + * src/.../mi/core/cdi/EventManager.java (processSuspended): + Also process the Shared lib by calling update on the manager. + + * src/.../mi/core/cdi/CSession.java: Create a shared + library manager. + +2003-01-16 Alain Magloire + + * src/.../mi/core/event/MISharedLibCreatedEvent.java: New file. + * src/.../mi/core/event/MISharedLibChangedEvent.java: New file. + * src/.../mi/core/event/MISharedLibUndloadedEvent.java: New file. + + * src/.../mi/core/cdi/event/CreatedEvent.java: + new constructors to deal with MISharedLibCreatedEvent. + * src/.../mi/core/cdi/event/ChangedEvent.java: + new constructors to deal with MISharedLibChangedEvent. + * src/.../mi/core/cdi/event/DestroyedEvent.java: + new constructors to deal with MISharedLibUnloadedEvent. + + * src/.../mi/core/cdi/model/SharedLibrary.java: New file. + + * src/.../mi/core/cdi/SharedLibraryManager.java: New file. + * src/.../mi/core/cdi/CSession.java (getSharedLibraryManager): + New method. + * src/.../mi/core/cdi/EventManager.java (update): + Deal with the new MISharedLibXXXEvents. + +2003-01-15 Alain Magloire + + * src/.../mi/core/command/CommandFactory.java (createMIInfoSharedLibrary): + New method. + * src/../mi/core/command/MIInfoSharedLibrary.java: New file. + * src/../mi/core/output/MIInfoSharedLibraryInfo.java: New File. + * src/../mi/core/output/MIShared.java: new File. + +2003-01-13 Mikhail Khodjaiants + * CTarget.java: in the 'runUntil' method check if file name or function name length > 0, otherwise use address. + +2003-01-10 Alain Magloire + + * src/.../mi/core/cdi/BreakpointManager.java (update): fix subscript + (setCondition): Fire a ChangedEvent. + (enableBreakpoint): Fire a ChangedEvent. + (disableBreakpoint): Fire a ChangedEvent. + +2003-01-10 Alain Magloire + + * src/.../mi/core/cdi/model/CTarget.java (runUntil): Address breakpoint + needs a "*" prefix. + +2003-01-09 Alain Magloire + + * src/.../mi/core/cdi/BreakpointManager.java (hasBreakpointChanged): + Implemented. + +2003-01-09 Alain Magloire + + * src/.../mi/core/cdi/model/CTarget.java (setCurrentThread): takes + a new argument to decide if the events should be fired. + * src/.../mi/core/cdi/model/CThread.java (getStackFrameCount): use + the setCurrentThread() with events updates disable + (getStackFrames): Ditto. + (updateState): Wrong subscript in the loop. + +2003-01-09 Alain Magloire + + Generate CreatedEvent's for Variable, Argument, Expression, Memory, Thread + objects when they are created. This makes it consistent with the generated + DestroyedEvent's. + + * src/.../mi/core/cdi/EventManager.java (update): Deal with + MI{Register,Memory,Thread,Var}CreatedEvent events. + * src/.../mi/core/cdi/model/Ctarget.java (updateState): Fire events + when threads are created or destroyed. + * src/.../mi/core/cdi/model/MemoryBlock.java: Move here. + * src/.../mi/core/cdi/model/Register.java (getID): rename getId() to getID(). + * src/.../mi/core/cdi/event/CreatedEvent.java: New constructors + to deal with MI{Register,Memory,Thread,Var}CreatedEvent. + + * src/.../mi/core/event/MIMemoryCreatedEvent.java: New file. + * src/.../mi/core/event/MIRegisterCreatedEvent.java: New file. + * src/.../mi/core/event/MIThreadCreatedEvent.java: New file. + * src/.../mi/core/event/MIVarCreatedEvent.java: New file. + * src/.../mi/core/event/MIBreakpointChangedEvent.java (MIBreakpointChangedEvent): + Reuse the constructor. + * src/.../mi/core/event/MIBreakpointCreatedEvent.java (MIBreakpointCreatedEvent): + Reuse the constructor. + * src/.../mi/core/event/MIBreakpointDeletedEvent.java (MIBreakpointDeletedEvent): + Reuse the constructor. + +2003-01-08 Alain Magloire + + Refactoring, split the org.eclipse.cdt.debug.mi.core.cdi in pacackages + org.eclipse.cdt.debug.mi.core.cdi + org.eclipse.cdt.debug.mi.core.cdi.event + org.eclipse.cdt.debug.mi.core.cdi.model + This help structure things up. + * src/.../mi/core/cdi/event: New files. + * src/.../mi/core/cdi/model: New files. + +2003-01-08 Alain Magloire + + * src/.../mi/core/cdi/EventManager.java (update): bug fix + was calling DestroyedEvent() incorrectly. + +2003-01-08 Alain Magloire + + CLIProcessor a new class to recognise the CLI(Command Line Interface) + of gdb example: + (gdb) next + (gdb) n + (gdb) b + (gdb) break + etc ..: + When the patterns are discover, the class will generate some events + to warn te UI that something change. + + * src/.../mi/core/cdi/BreakpointManager.java (update): + Send a -break-list and generate events for any difference, in + the breakpoints that we know about. + (deleteBreakpoint): Take as argument the breakpoint number. + (getBreakpoints): Call update() to generate events if new breakpoints. + (getMIBreakpoints): return the MIBreakpoints. + * src/.../mi/core/cdi/ChangedEvent.java (ChangedEvent): + New constructor with MIBreakPointChangedEvent. + * src/.../mi/core/cdi/DestroyedEvent.java (DestroyedEvent): + New constructor with MIBreakPointDeletedEvent. + * src/.../mi/core/cdi/Created.java: New file. + * src/.../mi/core/cdi/EventManager.java (update): + Watch for the new MIBreakPoint*Events. + * src/.../mi/core/event/MIBreakPointCreatedEvent.java: New file. + * src/.../mi/core/event/MIBreakPointChangedEvent.java: New file. + * src/.../mi/core/event/MIBreakPointDeletedEvent.java: New file. + * src/.../mi/core/event/MICreatedEvent.java: New file. + * src/.../mi/core/event/MIDestroyedEvent.java: New file. + * src/.../mi/core/event/MIInferiorExitEvent.java: Extends MIDestroyedEvent + * src/.../mi/core/event/MIThreadExitEvent.java: Extends MIDestroyedEvent + * src/.../mi/core/event/MIGDBExitEvent.java: Extends MIDestroyedEvent + * src/.../mi/core/event/MIDetachedEvent.java: Extends MIDestroyedEvent + * src/.../mi/core/CLIProcessor.java: New file. + * src/.../mi/core/TxThread.java: New file. + +2003-01-07 Alain Magloire + + * src/.../mi/core/MIInferior.java (getOutputStream): Remove useless assignement. + * src/.../mi/core/MIPluging.java (debugLog): Not need to be static. + * src/.../mi/core/cdi/EventManager.java (update): Remove useless assignement. + +2003-01-06 Alain Magloire + + * build.properties: Patch from Judy Green. + +2003-01-06 Alain Magloire + + * src/.../mi/core/cdi/BreapoinManager.java (createLocation): new method + to create a breakoint with an address. + * src/.../mi/core/cdi/Location.java (Location): New constructor takes + an address as argument. + +2003-01-03 Alain Magloire + + The Class creating the CDISession part of the initialization would call + (gdb) set autosolib on + this works fine for Unix system, but on Windows it throws an error + failing the debugger. Windows(Cygwin, MingWin) does not need any + special initialization like solib-search-paths etc .. + + * src/.../mi/core/cdi/SourceManager.java (setAutoSolib): Takes a boolean argument + to set the autosolib on or off. + * src/.../mi/core/CygwinGDBDebugger.java(initializeLibraries): + Empty method, cygwin does not need any special handling. + * src/.../mi/core/GDBDebugger.java (initializeLibraries): + Always call autosolib. + + +2003-01-02 Alain Magloire + + Bug when using recursive: + int recursive(int x) { + if (x > 10) + recursive(++x); + return 0; + } + + The Variable Manager is caching the MI/GDB var-obj for speed. + It is finding the object by looking at the name and the stack/thread, + for recursive calls, this is wrong and the code would be full in + thinking the variable "x"(see above) is the same object. To make the distinction + we use the depth "-stack-info-depth" that will be use also in the equality + to make sure we identify an object uniquely. In the recursive() case above + because the depth is different, a new "x" object will be created. The downside + is that on certain platform doing deep recursive/stackframe, we have noticed + that "-stack-info-depth" can be very long, test done for gdb/QNX with + a stack depth of 1000. + + * src/.../mi/core/cdi/VariableManager.java (getElement): + Use the depth when doing equal(). + (createElement): Save the depth of the stack part of the Element. + +2003-01-02 Alain Magloire + + GDB/MI uses some oob reasons that was not documented for the watchpoints + *stopped,reason="access-watchpoint-trigger"... + *stopped,reason="read-watchpoint-trigger",... + * src/.../mi/core/event/MIWatchpointTrigger.java (parse): + check for "hw-awpt" and "hw-rwpt". + * src/.../mi/core/RxThread.java (createEvents): + Check for "access-watchpoint-trigger", "read-watchpoint-trigger. + +2002-12-17 Alain Magloire + + * src/.../mi/core/cdi/Register.java (setFormat): bug fix + The format variable was not set. + +2002-12-05 Alain Magloire + + GDB/MI provides error messages in its log stream, one problem + is that it is not consistent, for example doing: + (gdb) info threads + & "info threads\n" + which is obviously not an error. + So we put the error stream output par of the exception so when + it is relevant it shows in the Exception. + MI2CDIException is the bridge class. + + * src/.../mi/core/cdi/BreakpoinManager.java: + * src/.../mi/core/cdi/CSession.java: + * src/.../mi/core/cdi/CTarget.java: + * src/.../mi/core/cdi/CThread.java: + * src/.../mi/core/cdi/MemoryBlock.java: + * src/.../mi/core/cdi/MemoryManager.java: + * src/.../mi/core/cdi/Register.java: + * src/.../mi/core/cdi/RegisterManager.java: + * src/.../mi/core/cdi/SourceManager.java: + * src/.../mi/core/cdi/Value.java: + * src/.../mi/core/cdi/Variable.java: + * src/.../mi/core/cdi/VariableManager.java: + + * src/.../mi/core/command/Command.java (getMIInfo): + When error get the log stream and put it in the MIException. + * src/.../mi/core/event/MIErrorEvent.java: + Get the log stream error also. + * src/.../mi/core/MIException.java (getLogMessage): New method + contains buffer output. + * src/.../mi/core/RxThread.java (processMIOutput): get the + oob arrays up so it can be use in MIErrorEvent. + +2002-12-02 Alain Magloire + + * src/.../mi/core/cdi/CTarget.java (updateState): If we + have the current thread id set it before, getCThread() if + it is implemented with "info threads" can override it but + "-stack-list-thread" does not give this information. + * src/.../mi/core/cdi/ErrorInfo.java: New file + * src/.../mi/core/cdi/EventManager.java (getReason): Return + an ErrorInfo also. + * src/.../mi/core/event/MIErroEvent.java: New file + * src/.../mi/core/RxThread.java (processMIOutput): + Generated MIErrorEvent for "^error". + +2002-11-29 Alain Magloire + + * src/.../mi/core/cdi/EventManager.java (processSuspended): + get the threadId. + +2002-11-29 Alain Magloire + + * src/.../mi/core/cdi/MemoryBlock.java (setValue): + Check if the change affects other block and fire MemoryChangedEvent + when necessary. + +2002-11-29 Alain Magloire + + * src/.../mi/core/event/MIBreakpointEvent.java: + * src/.../mi/core/event/MIFunctionFinishedEvent.java: + * src/.../mi/core/event/MILocationReachedEvent.java: + * src/.../mi/core/event/MISignalEvent.java: + * src/.../mi/core/event/MISteppingRangeEvent.java: + * src/.../mi/core/event/MIStoppedEvent.java: + * src/.../mi/core/event/MIWatchpointEvent.java: + * src/.../mi/core/event/MIWatchpointTriggerEvent.java: + * src/.../mi/core/RxThread.java: + Some events like the temporary events, do not have + any specific format but do provide a frame and a thread-id + move the code in MIStoppedEvent. + +2002-11-28 Alain Magloire + + * src/.../mi/core/cdi/MemoryBlock.java (setValue): Only get a byte. + +2002-11-28 Alain Magloire + + * src/.../mi/core/cdi/CTarget.java (runUntil): new method implemented. + * src/.../mi/core/cdi/CThread.java (runUntil): new method implemented. + +2002-11-26 Doug Schaefer + + * src/.../mi/core/CygwinGDBDebugger.java: + New Debugger that provides the Cygwin Command Factory to the MISession + * src/.../mi/core/command/CygwinCommandFactory.java: + New Command Factory for Cygwin specific implementations of the commands + * src/.../mi/core/command/CygwinMIEnvironmentDirectory.java: + New. Subclasses the MIEnvironmentDirectory command to convert the + paths using cygpath. + * plugin.xml: + Defines the new debugger extension. + +2002-11-25 Alain Magloire + + * src/.../mi/core/cdi/Watchpoint.java: + Check if it was access point also. + * src/.../mi/core/output/MIBreakInsertInfo.java (parse): + Check for "wpt" variable. + * src/.../mi/core/output/MIBreakpoint.java (IsWriteWatchpoint): + implemented. + +2002-11-20 Mikhail Khodjaiants + Fix for bug 26595. + * src/.../mi/core/cdi/MemoryManager.java (compareBlocks): + If the start address of a memory block has changed fir 'changed' event + only for the corresponding bytes of the overlapping area of new and old blocks. + +2002-11-19 Alain Magloire + + * src/.../mi/core/cdi/MemoryManager.java (compareBlocks): + The startAddress() may have change for example if we were + watching "char *p;" and the address move "p++". Take this + into account now. + +2002-11-18 Alain Magloire + + * src/.../mi/core/cdi/StackFrame.java (getCurrentStackFrame): + if the currentFrame was not set only get the top level + frame for the current. + * src/.../mi/core/cdi/CTarget.java (updateStateId): + Set the currentThreads && currentThreadId. + +2002-11-18 Alain Magloire + + * src/.../mi/core/cdi/CThread.java (getStackFrameCount): + Set the new thread before getting the value and restore + after. + +2002-11-14 Alain Magloire + + This is needed in post-mortem, application doing a + very deep recursion and crashing the stack size, for example + on GNU/Linux it may reach 200000 levels deep. Trying to + bring in the UI a bactrace tree of 200000 nodes is useless. + The UI could check the count and do the appropriate action + by showing ranges etc .. + + * src/.../mi/core/cdi/CThread.java (getStackFrame): + new method with a hi and low. + (getStackFrameCount): new method. + * src/.../mi/core/command/CommandFactory.java (createMIStackInfoDepth): + new method. + * src/.../mi/core/command/MIStackInfoDepth.java (getMIStackInfoDepthInfo): + new method. + +2002-11-13 Dave Inglis + * plugin.xml + Added "native" cpu support. + +2002-11-06 Alain Magloire + + * src/.../mi/core/cdi/StackFrame.java (getLocals): + If an exception was thrown, the array may contain null + entries. Use a list and catch the exception. + +2002-11-06 Alain Magloire + + * src/.../mi/core/cdi/StackFrame.java (getArguments): + If an exception was thrown, the array may contain null + entries. Use and a List and catch the exception. + +2002-11-05 Alain Magloire + + * src/.../mi/core/cdi/Register.java (setValue): Fire a + MIRegisterChangedEvent when changing value. + Fix PR:25730 + +2002-11-01 Alain Magloire + + The change in MISession(), will catch things like starting gdb-5.0 + with argument "-i mi1", that level of mi is not supported. + + * src/.../mi/core/cdi/MemoryBlock.java (refresh): When doing the refresh + check if other blocks wehre affected and update them. + * src/.../mi/core/cdi/MemoryManager.java (update): Return the array of + affected addresses. + * src/.../mi/core/MIPlugin.java (createCSession): Do not throw an + error when trying "set new-console", it does not work on Linux. + * src/.../mi/core/MISession.java (MISession): Check if the process + terminated early, maybe because of wron arguments etc .. and throw + the exception. + +2002-11-1 David Inglis + * src/.../mi/core/MIPlugin.java + throw MIExceptions in createSession (not rethorwn IOExceptions) + +2002-10-30 Alain Magloire + + * src/.../core/cdi/MemoryBlock.java (setDirty): When need a + refresh setDirty() to true. + (isDirty): Return the flag value. + + * src/.../core/cdi/MemoryManager.java (update): Check if + the MemoryBlock isDirty(). + +2002-10-30 Alain Magloire + + * src/.../core/cdi/MemoryBlock.java (setValue): reuse refresh() + to update the memory and fire any MemoryChangedEvents. + +2002-10-26 Alain Magloire + + * src/.../core/cdi/MemoryBlock.java (setValue): Generate + a MemoryChangeEvent when the value is set, gdb/mi will not + do it. + +2002-10-25 Alain Magloire + + * src/.../core/cdi/CThread.java (getStackFrames): Save the + current thread before changing and restore when operation finish. + + * src/.../core/cdi/MemoryBlock.java (refresh): Flush the old + data and get new memory. + (update): New method to compare individual blocks. + +2002-10-25 Alain Magloire + + Automatically suspend/resume gdb when setting a breakpoint. + The workflow when debuggin which gdb command prompt is to + hit CTRL-C set the breakpoint and continue. The UI debugger + should be smart enought to do this by itself. So if the + inferior is running, when setting a breakpoint the program + is suspended(target.suspend()), the suspend event is ignore + the breakpoint is set (--break-insert) and the target is resume. + To ignore a specific event, we use a (mis)behaviour of gdb that + associate the suspend(*stopped) with the last execution command. + (gdb) + 111-exec-continue + 111^running + (gdb) + 222-exec-interrupt + 222^done + (gdb) + 111*stopped,signal-name="SIGINT",signal-meaning="Interrupt", + frame={addr="0x00010140",func="foo",args=[],file="try.c",line="13"} + (gdb) + In the case above event 111 is ignore. + + * src/.../core/command/CLICommand.java (toString): Always put + the identifying token. + * src/.../core/command/Command.java (setToken): Removed. + (getUniqToken): New method returns a global uniq token. + (getToken): Returns a uniq token for the command. + * src/.../core/MIInferior.java (setTerminated): New argument token, + since now all MIEvent has the corresponding command token. + * src/.../core/MISession.java (cmdCount): Removed. + (postCommand): the command getToken() will return a uniq token. + * src/.../core/RxThread.java (processMIOOBRecord): MIEvent take + the corresponding command token as argument. + * src/.../core/TxThrea.java (token): Field removed, token are no + longer created in this tread. + * src/.../core/event/MIBreakpointEvent.java: + * src/.../core/event/MIBreakpointEvent.java: + * src/.../core/event/MIChangedEvent.java: + * src/.../core/event/MIDetachedEvent.java: + * src/.../core/event/MIEvent.java: + * src/.../core/event/MIFunctionFinishedEvent.java: + * src/.../core/event/MIGDBExitEvent.java: + * src/.../core/event/MIInferiorExitEvent.java: + * src/.../core/event/MILocationReachedEvent.java: + * src/.../core/event/MIMemoryChangedEvent.java: + * src/.../core/event/MIRegisterChangedEvent.java: + * src/.../core/event/MIRunningEvent.java: + * src/.../core/event/MISignalEvent.java: + * src/.../core/event/MISteppingRangeEvent.java: + * src/.../core/event/MIStoppedEvent.java: + * src/.../core/event/MIThreadExitEvent.java: + * src/.../core/event/MIVarChangedEvent.java: + * src/.../core/event/MIWatchpointScopeEvent.java: + * src/.../core/event/MIWatchpointTriggerEvent.java: + Calls super with getToken(). + * src/.../core/cdi/BreakpointManager.java (allowProgramInterruption): + New method to allow suspending the program to set a breakpoint. + (suspendInferior): get the last token execution an ignore the suspend + event. + * src/.../core/cdi/CTarget.java (getLastExecutionToken): New method + returns the token of the last execution command. + * src/.../core/cdi/EventManager.java (enableEventToken): New method. + (enableEventTokens): New method. + (disableEventToken): New method. + (disableEventTokens): New method. + (update): Ignore token in the disable list. + * src/.../core/cdi/RegisterManager.java (update): MIEvent takes + a token. + * src/.../core/cdi/Variable.java (setValue): MIEvent takes a token. + * src/.../core/cdi/VariableManager.java (update): MIEvent takes a token. + +2002-10-24 Alain Magloire + + * src/.../core/RxThread.java (processMIOutput): Fire a + suspended event when seeing an error. + +2002-10-24 Alain Magloire + + * src/.../core/output/MIConst.java (isoC): Change to return + a string instead '\n' is platform dependent and has to be + translate to "\r\n" for SWT widgets to work correctly on windows. + +2002-10-23 Alain Magloire + + gdb/mi for program control command will fire a change state event: + -exec-run + ^running + This allow the UI to change its state and wait for the suspended. + Providing a gdb prompt adds some problems, since there is no state + change, i.e.(^running) after command like, next/step/...: + next + &"next\n" + ... + So to palliate, the txthread do some query when the commands are + CLI commands trying to discover the type and fire any appropriate + events on behalf on gdb. + + * src/.../core/RxThread.java (createEvent): Adjust the parser to + not rely on the oob "*stopped", since for CLI command it is not + in the result-class. So the suspended state will be base of + the "reason" only. + * src/.../core/TxThread.java (processCLICommand): new method, + get the command and try to recognize if it is a program control + command like: next, step, etc .. + * src/.../core/command/CLICommand.java (getOperation): New method, + returns the command string. + +2002-10-22 Alain Magloire + + Change the framework to support access to gdb prompt. + Trying to reuse as much as possible Eclipse framework. + The session/gdb process is available via CDI. + + * src/.../core/GDBStreamsProxy.java: Removed. + * src/.../core/GDBProcess.java: Removed. + * src/.../core/GDBStreamMonitor.java: Removed. + * src/.../core/SessionProcess.java: New file. + * src/.../core/MISession.java (getMISessionProcess): + New method, returns a "fake" Process that wraps the input/outpu + stream of gdb. + (getGDBProcess): was getMIProcess(), renamed. + * src/.../core/cdi/CSession.java (getSessionProcess): New method + return gdb process. + +2002-10-22 Alain Magloire + + * src/.../core/GDBStreamsProxy.java (write): + Replace the OutputStream with a Write class. + And clear the buffer on flush(). + +2002-10-21 Alain Magloire + + * src/.../core/GDBProcess.java (getExitValue): Catch + IllegalThreadStateException. + (getAttribute): Only create Properties, when call. + (setAttribute): Only create Properties, when call. + (getAdapter): Implemented. + (canTerminate): true only of the process is alive. + (GDBProcess): Takes one more argument the name. + * src/.../core/GDBStreamMonitor.java (fireStreamAppend): New method. + Use a synchronized LinkedList for the listeners. + (read): new Method. + (startMonitoring): New method, start a thread in the background + to monitor the input. + * src/.../core/GDBStreamsProxy.java (getErrorStream): Start the monitor thread. + (getOutputStream): Start the monitor thread. + +2002-10-21 Alain Magloire + + Framework for having a gdb console. The idea is to reuse + the eclipse console and save a lot of work. We "adapt" + the gdb Process to what eclipse debug LaunchView wants(IProcess). + So when this fake "gdb process" is selected we can grab the + input/output of the console and redirect everything to raw gdb. + + * src/.../core/GDBProcess.java: New file, it implements Eclipse + debug class IProcess. + * src/.../core/GDBStreamMonitor: New file, it implements Eclipse + debug class IStreamMonitor. + * src/.../core/GDBStreamsProxy: New file, it implements Eclipse + debug class IStreamsProxy. + * src/../core/MISession.java (getMIConsoleStream): New method + to return the mi console stream output that we get from gdb/mi. + (getMILogStream): New method, to return the mi log stream output + that we get from gdb/mi. + (terminate): close the fake MI Console and Log streams. + * src/../core/RxThread.java (processMIOOBRecord): Redirect the + console and the log stream to a buffer pipe. + +2002-10-21 Alain Magloire + + * src/.../core/cdi/EventManager.java (update): Only + fire the event for MemoryChangedEvent if the block was + not frozen. + +2002-10-20 Alain Magloire + + Eclipse provides plugins a way to trace by having an .options file, + this mechanism is use to print out the mi exchange between gdb + and the plugin. To enable this in the debug launch one must enable + "tracing" and set for the "org.eclipse.debug.mi.core/debug" to true. + But one problem, the console will simply blow taking down eclipse, + for big MI line response, say 4k length, for example asking the children + of "char buffer[4096]", -var-list-children varxx. + This seem only to happen in Eclipse-gtk or Eclipse-motif + on GNU/Linux, so it will be break in smaller chunks to give a chance to + the console. + + * .options: Set debug to true. + * src/.../core/MIPlugin.java (debugLog): Break the log line in small chuncks of 100. + * src/.../core/MISession.java (postCommand): Print the gdb/mi command. + * src/.../core/RxThread.java (run): Print gdb/mi responses. + +2002-10-20 Alain Magloire + + -data-write-register-values is not in the texinfo manual but implemented in + gdb-5.2.1/gdb/mi/mim-main.c: + Write given values into registers. The registers and values are + given as pairs. The corresponding MI command is + -data-write-register-values [ ... ] + + * src/.../core/command/MIDataWriteRegisterValues.java: New file. + * src/.../core/command/CommandFactory.java (createMIDataWriteMemory): New method. + * src/.../core/cdi/Register.java (setValue): Implemented. + +2002-10-20 Alain Magloire + + Althought -data-write-memory is not documented in the texinfo manual + it is implemented and well documented in the code(gdb-5.2.1/gdb/mi/mi-main.c). + "mi_cmd_data_write_memory: Usage: [-o COLUMN_OFFSET] ADDR FORMAT WORD-SIZE VALUE."); + + * src/.../core/command/MIDataWriteMemory.java: New file + * src/.../core/command/CommandFactory.java (createMIDataWriteMemory): New method. + * src/.../core/cdi/MemoryBlock.java (setValue): Implemented. + +2002-10-20 Alain Magloire + + * src/.../core/cdi/CTarget.java (getMemoryBlock): Remove + we use the MemoryManager instead. + (EvaluateExpressionToValue): Removed not use. + * src/.../core/cdi/SourceManager.java (setFile): Removed not use. + (getFile): Removed not use. + (reset): Removed not use. + +2002-10-19 Alain Magloire + + The responsability to generate Events for modify memory blocks is push + on the CDI implementation. The way we do this is every time consuming, + when the inferior is suspended(see EventManager.processSuspendedEvent()), + MemoryManager.update() is called, the method will go through the list of MemoryBlocks + that are not MemoryBlocks.setFrozen() and fetch the new memories, the data is compare + and MemoryChangedEvents are fired for blocks with changed values. + Gdb/mi var objects does not seem to provide any support for Memory ranges. + + * src/.../core/cdi/MemoryChangedEvent.java: New File implements ICDIMemoryChangedEvent. + * src/.../core/cdi/EventManager.java (update): Process MIMemoryChangedEvent's. + (processSuspendedEvent): call MemoryManager.update(). + * src/.../core/cdi/MemoryBlock.java (getExpression): New method. + (getMIDataReadMemoryInfo): New method. + (setMIDataReadMemoryInfo): New method. + * src/.../core/cdi/MemoryManager.java (update): New method. + (compareBlock): New method. + (listMemoryBlocks): New method. + + * src/.../core/cdi/CTarget.java (setCurrentThread): Catch null pointer. + (getCThreads): Likewise. + * src/.../core/event/MIMemoryChangedEvent.java: New File. + * src/.../core/event/MIThreadExitEvent.java: Indentation fixes. + * src/.../core/event/MIVarChangedEvent.java: Indentation fixes. + + + +2002-10-16 Alain Magloire + + * src/.../mi/core/cdi/MemoryManager.java (createMemoryBlock): + New method that takes a string instead of a long, rearrange + the method for it. + +2002-10-12 Alain Magloire + + There are some serious problems with gdb/mi, for example + the most recurrent one is when using -data-disassemble + in a threaded program, GNU/Linux uses a thread manager + when trying to access the stackframe, gdb usually coredumps + with an assert, it goes something like this: + +-data-disassemble -f manager.c -l 136 -n 100 0 +&"Cannot access memory at address 0x4002d794\n" +^error,msg="Cannot access memory at address 0x4002d794" +(gdb) +-data-disassemble -s 0x4002d900 -e 0x4002d964 0 +&"Cannot access memory at address 0x4002d900\n" +^error,msg="Cannot access memory at address 0x4002d900" +(gdb) +-thread-select 2 +&"ui-out.c:133: gdb-internal-error: push_level: Assertion `uiout->level >= 0 && uiout->level < MAX_UI_OUT_LEVELS' failed.\n" + + The RxThread will spawn a thread to terminate the session + and clear the receiving queue. + + + * RxThread.java (run): When the thread is being cancel() or + running out of run(), clear the receiving queue(rxQueue) and + notify any commands waiting. + + * TxTread.java (run): Before putting the command in the + receiving queue(rxQueue) check to see if the thread is + still running. + When the thread is being cancel() or running out of run(), + clear the transmition queue(txQueue) an notify any commands + waiting. + + * Queue.java (clearItems): New method that clear the items + on the queue and returning them. + + * CommandQueue.java (clearCommands): New method calls super.clearItems() + whith the appropriate castings. + + * cdi/CThread.java (setCurrentStackFrame): Check for null. + +2002-10-12 Alain Magloire + + The memory block is implemented with + -data-read-memory (MIDataReadMemory) + Since the ICDIMemoryBlock only have + byte[] getBytes() + We will always issue: + -data-read-memory address x 1 1 length + The CDI upper layer will deal with any conversions + + The problem now is how to send changedEvent when + an element of the memory changed. + + * cdi/MemoryBlock.java (getLength): Implemented + (getBytes): Implemented + (getStartAddress): Implemented + + * cdi/MemoryManager.java: Implemented. + + * command/MIDataReadMemory (getMIDataReadMemoryInfo): + New helper method. + +2002-10-12 Alain Magloire + + * cdi/Location (getInstructions): Methods removed + no longer define in ICDILocation. + +2002-10-11 Alain Magloire + + * cdi/SourceManager (getMixedInstruction): + Implement the 3 new methods to return Mixed source + and assemby instructions. + + * cdi/MixedInstruction: New class implements + ICDIMixedInstruction. + +2002-10-11 Alain Magloire + + * cdi/ExpressionManager.java: Not needed, removed. + +2002-10-10 Alain Magloire + + The Eclipse/UI/Debug framewok is being very repetive + and each command can be ask 2, 3 times. So we'll try + to make certain commands smarter by not reissuing them + to gdb if the state is the same. We do this when + selecting the thread and when selecting the stackframe. + + The other problem is that Eclipse/UI/Debug is calling + ICDISession.terminate() twice, this is catch by looking + at isTerminated(). + + * cdi/CThread.java (setCurrentStackFrame): Make it smarter + to not reselect the stack level if it is already at that + level. + + * MISession.java (isTerminated): Declare a flag that will + hold the state. + (terminate): Check if it was call already. + +2002-10-10 Alain Magloire + + * SourceManager.java: Implement getInstructions(). diff --git a/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/BreakpointManager.java b/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/BreakpointManager.java index 5b531d9e522..9cf224a5337 100644 --- a/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/BreakpointManager.java +++ b/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/BreakpointManager.java @@ -47,19 +47,17 @@ import org.eclipse.cdt.debug.mi.core.output.MIInfo; /** * Breakpoint Manager for the CDI interface. */ -public class BreakpointManager extends SessionObject implements ICDIBreakpointManager { +public class BreakpointManager extends Manager implements ICDIBreakpointManager { List breakList; List deferredList; boolean allowInterrupt; - boolean autoupdate; public BreakpointManager(Session session) { - super(session); + super(session, false); breakList = Collections.synchronizedList(new ArrayList()); deferredList = Collections.synchronizedList(new ArrayList()); allowInterrupt = true; - autoupdate = false; } public MIBreakpoint[] getMIBreakpoints() throws CDIException { @@ -70,7 +68,7 @@ public class BreakpointManager extends SessionObject implements ICDIBreakpointMa s.getMISession().postCommand(breakpointList); MIBreakListInfo info = breakpointList.getMIBreakListInfo(); if (info == null) { - throw new CDIException("No answer"); + throw new CDIException(CdiResources.getString("cdi.Common.No_answer")); //$NON-NLS-1$ } return info.getMIBreakpoints(); } catch (MIException e) { @@ -141,7 +139,7 @@ public class BreakpointManager extends SessionObject implements ICDIBreakpointMa && breakList.contains(breakpoint)) { number = ((Breakpoint) breakpoint).getMIBreakpoint().getNumber(); } else { - throw new CDIException("Not a CDT breakpoint"); + throw new CDIException(CdiResources.getString("cdi.BreakpointManager.Not_a_CDT_breakpoint")); //$NON-NLS-1$ } boolean state = suspendInferior(breakpoint.getTarget()); Session session = (Session)getSession(); @@ -151,7 +149,7 @@ public class BreakpointManager extends SessionObject implements ICDIBreakpointMa session.getMISession().postCommand(breakEnable); MIInfo info = breakEnable.getMIInfo(); if (info == null) { - throw new CDIException("No answer"); + throw new CDIException(CdiResources.getString("cdi.Common.No_answer")); //$NON-NLS-1$ } } catch (MIException e) { throw new MI2CDIException(e); @@ -171,7 +169,7 @@ public class BreakpointManager extends SessionObject implements ICDIBreakpointMa && breakList.contains(breakpoint)) { number = ((Breakpoint) breakpoint).getMIBreakpoint().getNumber(); } else { - throw new CDIException("Not a CDT breakpoint"); + throw new CDIException(CdiResources.getString("cdi.BreakpointManager.Not_a_CDT_breakpoint")); //$NON-NLS-1$ } Session session = (Session)getSession(); @@ -183,7 +181,7 @@ public class BreakpointManager extends SessionObject implements ICDIBreakpointMa session.getMISession().postCommand(breakDisable); MIInfo info = breakDisable.getMIInfo(); if (info == null) { - throw new CDIException("No answer"); + throw new CDIException(CdiResources.getString("cdi.Common.No_answer")); //$NON-NLS-1$ } } catch (MIException e) { throw new MI2CDIException(e); @@ -202,7 +200,7 @@ public class BreakpointManager extends SessionObject implements ICDIBreakpointMa && breakList.contains(breakpoint)) { number = ((Breakpoint) breakpoint).getMIBreakpoint().getNumber(); } else { - throw new CDIException("Not a CDT breakpoint"); + throw new CDIException(CdiResources.getString("cdi.BreakpointManager.Not_a_CDT_breakpoint")); //$NON-NLS-1$ } Session session = (Session)getSession(); @@ -212,7 +210,7 @@ public class BreakpointManager extends SessionObject implements ICDIBreakpointMa // reset the values to sane states. String exprCond = condition.getExpression(); if (exprCond == null) { - exprCond = ""; + exprCond = ""; //$NON-NLS-1$ } int ignoreCount = condition.getIgnoreCount(); if (ignoreCount < 0) { @@ -225,14 +223,14 @@ public class BreakpointManager extends SessionObject implements ICDIBreakpointMa session.getMISession().postCommand(breakCondition); MIInfo info = breakCondition.getMIInfo(); if (info == null) { - throw new CDIException("No answer"); + throw new CDIException(CdiResources.getString("cdi.Common.No_answer")); //$NON-NLS-1$ } MIBreakAfter breakAfter = factory.createMIBreakAfter(number, ignoreCount); session.getMISession().postCommand(breakAfter); info = breakAfter.getMIInfo(); if (info == null) { - throw new CDIException("No answer"); + throw new CDIException(CdiResources.getString("cdi.Common.No_answer")); //$NON-NLS-1$ } } catch (MIException e) { throw new MI2CDIException(e); @@ -332,7 +330,7 @@ public class BreakpointManager extends SessionObject implements ICDIBreakpointMa numbers[i] = ((Breakpoint) breakpoints[i]).getMIBreakpoint().getNumber(); } else { - throw new CDIException("Not a CDT breakpoint"); + throw new CDIException(CdiResources.getString("cdi.BreakpointManager.Not_a_CDT_breakpoint")); //$NON-NLS-1$ } } Session session = (Session)getSession(); @@ -343,7 +341,7 @@ public class BreakpointManager extends SessionObject implements ICDIBreakpointMa session.getMISession().postCommand(breakDelete); MIInfo info = breakDelete.getMIInfo(); if (info == null) { - throw new CDIException("No answer"); + throw new CDIException(CdiResources.getString("cdi.Common.No_answer")); //$NON-NLS-1$ } } catch (MIException e) { throw new MI2CDIException(e); @@ -376,7 +374,7 @@ public class BreakpointManager extends SessionObject implements ICDIBreakpointMa */ public ICDICatchpoint setCatchpoint( int type, ICDICatchEvent event, String expression, ICDICondition condition) throws CDIException { - throw new CDIException("Not Supported"); + throw new CDIException(CdiResources.getString("cdi.BreakpointManager.Not_Supported")); //$NON-NLS-1$ } /** @@ -467,11 +465,11 @@ public class BreakpointManager extends SessionObject implements ICDIBreakpointMa session.getMISession().postCommand(breakInsert); MIBreakInsertInfo info = breakInsert.getMIBreakInsertInfo(); if (info == null) { - throw new CDIException("No answer"); + throw new CDIException(CdiResources.getString("cdi.Common.No_answer")); //$NON-NLS-1$ } points = info.getMIBreakpoints(); if (points == null || points.length == 0) { - throw new CDIException("Error parsing"); + throw new CDIException(CdiResources.getString("cdi.BreakpointManager.Parsing_Error")); //$NON-NLS-1$ } } catch (MIException e) { throw new MI2CDIException(e); @@ -503,10 +501,10 @@ public class BreakpointManager extends SessionObject implements ICDIBreakpointMa MIBreakWatchInfo info = breakWatch.getMIBreakWatchInfo(); points = info.getMIBreakpoints(); if (info == null) { - throw new CDIException("No answer"); + throw new CDIException(CdiResources.getString("cdi.Common.No_answer")); //$NON-NLS-1$ } if (points == null || points.length == 0) { - throw new CDIException("Parsing Error"); + throw new CDIException(CdiResources.getString("cdi.BreakpointManager.Parsing_Error")); //$NON-NLS-1$ } } catch (MIException e) { throw new MI2CDIException(e); @@ -543,18 +541,4 @@ public class BreakpointManager extends SessionObject implements ICDIBreakpointMa return new Location(address); } - /** - * @see org.eclipse.cdt.debug.core.cdi.ICDIBreakpointManager#isAutoUpdate() - */ - public boolean isAutoUpdate() { - return autoupdate; - } - - /** - * @see org.eclipse.cdt.debug.core.cdi.ICDIBreakpointManager#setAutoUpdate(boolean) - */ - public void setAutoUpdate(boolean update) { - autoupdate = update; - } - } diff --git a/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/CdiResources.java b/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/CdiResources.java new file mode 100644 index 00000000000..222f745be6d --- /dev/null +++ b/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/CdiResources.java @@ -0,0 +1,38 @@ +/* + * Created on Mar 12, 2004 + * + * To change the template for this generated file go to + * Window - Preferences - Java - Code Generation - Code and Comments + */ +package org.eclipse.cdt.debug.mi.core.cdi; +import java.util.MissingResourceException; +import java.util.ResourceBundle; +/** + * @author twolff + * + * To change the template for this generated type comment go to + * Window - Preferences - Java - Code Generation - Code and Comments + */ +public class CdiResources { + private static final String BUNDLE_NAME = "org.eclipse.cdt.debug.mi.core.cdi.CdiResources";//$NON-NLS-1$ + private static final ResourceBundle RESOURCE_BUNDLE = ResourceBundle + .getBundle(BUNDLE_NAME); + /** + * + */ + private CdiResources() { + // TODO Auto-generated constructor stub + } + /** + * @param key + * @return + */ + public static String getString(String key) { + // TODO Auto-generated method stub + try { + return RESOURCE_BUNDLE.getString(key); + } catch (MissingResourceException e) { + return '!' + key + '!'; + } + } +} diff --git a/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/CdiResources.properties b/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/CdiResources.properties new file mode 100644 index 00000000000..45540bfaa84 --- /dev/null +++ b/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/CdiResources.properties @@ -0,0 +1,33 @@ +cdi.Common.No_answer=No answer +cdi.SourceManager.Unknown_type=Unknown type +cdi.RegisterManager.Wrong_register_type=Wrong register type +cdi.BreakpointManager.Not_a_CDT_breakpoint=Not a CDT breakpoint +cdi.BreakpointManager.Not_Supported=Not Supported +cdi.BreakpointManager.Parsing_Error=Parsing Error +cdi.RuntimeOptions.Unable_to_set_args_target_not_responding=Unable to set arguments: target is not responding +cdi.RuntimeOptions.Unable_to_set_args=Unable to set arguments: +cdi.RuntimeOptions.Unable_to_set_args=Unable to set environment: +cdi.RuntimeOptions.Unable_to_set_working_dir=Unable to set working directory: +cdi.Session.Unknown_target=Unkown target +cdi.VariableManager.Unknown_type=Unknown type +cdi.VariableManager.Wrong_variable_type=Wrong variable type +cdi.VariableManager.Unknown_variable_ogject=Unknown variable object +cdi.SignalManager.ignore=aaignore +cdi.SignalManager.noignore=noignoreqq +cdi.SignalManager.stop=aastop +cdi.SignalManager.nostop=nostopqq +cdi.model.VariableObject.Target_not_responding=Target is not responding +cdi.model.Target.Unknown_thread=Unknown thread +cdi.model.Target.Target_not_responding=Target is not responding +cdi.model.Target.Cannot_switch_to_thread=Can not switch to thread +cdi.model.Target.Inferior_already_running=Inferior is already running +cdi.model.MemoryBlock.Bad_Offset=Bad Offset +src.MISession.Process_Terminated=Process Terminated +src.MISession.Thread_Terminated={R,T}xThread terminated +src.MISession.Target_not_suspended=Target is not suspended +src.MISession.Session_terminated=Session terminated +src.MISession.Target_not_responding=Target is not responding (timed out) +src.CygwinGDBDebugger.Error_init_shared_lib_options=Error initializing shared library options: +src.MIInferior.target_is_suspended=target is suspended +src.MIInferior.No_session=No MI Session +src.MIInferior.Failed_to_interrupt=Failed to interrupt diff --git a/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/Configuration.java b/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/Configuration.java index 65e9aedbe88..2214841714d 100644 --- a/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/Configuration.java +++ b/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/Configuration.java @@ -117,7 +117,7 @@ public class Configuration implements ICDIConfiguration { public boolean supportsSuspend() { String os = null; try { - os = System.getProperty("os.name", ""); + os = System.getProperty("os.name", ""); //$NON-NLS-1$ //$NON-NLS-2$ } catch (SecurityException e) { } Process gdb = miSession.getGDBProcess(); @@ -130,7 +130,7 @@ public class Configuration implements ICDIConfiguration { // If we have a pty, sending a control-c will work // except for solaris. - if (os.equals("SunOS")) { + if (os.equals("SunOS")) { //$NON-NLS-1$ MIInferior inferior = miSession.getMIInferior(); if (inferior.getPTY() != null) { // FIXME: bug in Solaris gdb when using -tty, sending a control-c diff --git a/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/ExpressionManager.java b/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/ExpressionManager.java index d5ddecd9ead..0e75ebc7345 100644 --- a/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/ExpressionManager.java +++ b/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/ExpressionManager.java @@ -34,16 +34,14 @@ import org.eclipse.cdt.debug.mi.core.output.MIVarUpdateInfo; /** */ -public class ExpressionManager extends SessionObject implements ICDIExpressionManager{ +public class ExpressionManager extends Manager implements ICDIExpressionManager{ private List expList; - private boolean autoupdate; MIVarChange[] noChanges = new MIVarChange[0]; public ExpressionManager(Session session) { - super(session); + super(session, true); expList = Collections.synchronizedList(new ArrayList()); - autoupdate = true; } /** @@ -91,7 +89,7 @@ public class ExpressionManager extends SessionObject implements ICDIExpressionMa mi.postCommand(var); MIVarCreateInfo info = var.getMIVarCreateInfo(); if (info == null) { - throw new CDIException("No answer"); + throw new CDIException(CdiResources.getString("cdi.Common.No_answer")); //$NON-NLS-1$ } VariableObject varObj = new VariableObject(currentTarget, name, null, 0, 0); expression = new Expression(varObj, info.getMIVar()); @@ -119,7 +117,7 @@ public class ExpressionManager extends SessionObject implements ICDIExpressionMa mi.postCommand(var); MIVarCreateInfo info = var.getMIVarCreateInfo(); if (info == null) { - throw new CDIException("No answer"); + throw new CDIException(CdiResources.getString("cdi.Common.No_answer")); //$NON-NLS-1$ } ICDITarget tgt = frame.getThread().getTarget(); VariableObject varObj = new VariableObject(tgt, name, frame, 0, 0); @@ -189,7 +187,7 @@ public class ExpressionManager extends SessionObject implements ICDIExpressionMa mi.postCommand(update); MIVarUpdateInfo info = update.getMIVarUpdateInfo(); if (info == null) { - throw new CDIException("No answer"); + throw new CDIException(CdiResources.getString("cdi.Common.No_answer")); //$NON-NLS-1$ } changes = info.getMIVarChanges(); } catch (MIException e) { @@ -211,18 +209,4 @@ public class ExpressionManager extends SessionObject implements ICDIExpressionMa mi.fireEvents(events); } - /** - * @see org.eclipse.cdt.debug.core.cdi.ICDIExpressionManager#isAutoUpdate() - */ - public boolean isAutoUpdate() { - return autoupdate; - } - - /** - * @see org.eclipse.cdt.debug.core.cdi.ICDIExpressionManager#setAutoUpdate(boolean) - */ - public void setAutoUpdate(boolean update) { - autoupdate = update; - } - } diff --git a/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/Location.java b/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/Location.java index 573f5316d80..fa0d06d82e3 100644 --- a/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/Location.java +++ b/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/Location.java @@ -12,8 +12,8 @@ import org.eclipse.cdt.debug.core.cdi.ICDILocation; public class Location implements ICDILocation { long addr; - String file = ""; - String function = ""; + String file = ""; //$NON-NLS-1$ + String function = ""; //$NON-NLS-1$ int line; public Location(String f, String fnct, int l) { diff --git a/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/Manager.java b/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/Manager.java new file mode 100644 index 00000000000..16d8a032624 --- /dev/null +++ b/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/Manager.java @@ -0,0 +1,64 @@ +/********************************************************************** + * Copyright (c) 2002,2003 QNX Software Systems and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Common Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/cpl-v10.html + * + * Contributors: + * QNX Software Systems - Initial API and implementation +***********************************************************************/ + +package org.eclipse.cdt.debug.mi.core.cdi; + +import org.eclipse.cdt.debug.core.cdi.CDIException; +import org.eclipse.cdt.debug.core.cdi.ICDIManager; +import org.eclipse.cdt.debug.core.cdi.event.ICDIEvent; + +/** + * Manager + * + */ +public abstract class Manager extends SessionObject implements ICDIManager { + + boolean autoUpdate; + + public Manager(Session session, boolean update) { + super(session); + autoUpdate = update; + } + + /* (non-Javadoc) + * @see org.eclipse.cdt.debug.core.cdi.ICDIUpdateManager#setAutoUpdate(boolean) + */ + public void setAutoUpdate(boolean update) { + autoUpdate = update; + } + + /* (non-Javadoc) + * @see org.eclipse.cdt.debug.core.cdi.ICDIUpdateManager#isAutoUpdate() + */ + public boolean isAutoUpdate() { + return autoUpdate; + } + + /* (non-Javadoc) + * @see org.eclipse.cdt.debug.core.cdi.impl.Manager#update() + */ + public abstract void update() throws CDIException; + + /* (non-Javadoc) + * @see org.eclipse.cdt.debug.core.cdi.event.ICDIEventListener#handleDebugEvent(org.eclipse.cdt.debug.core.cdi.event.ICDIEvent[]) + */ + public void handleDebugEvent(ICDIEvent[] events) { + for (int i = 0; i < events.length; i++) { + handleDebugEvent(events[i]); + } + } + + /* (non-Javadoc) + * @see org.eclipse.cdt.debug.core.cdi.event.ICDIEventListener#handleDebugEvent(org.eclipse.cdt.debug.core.cdi.event.ICDIEvent) + */ + public void handleDebugEvent(ICDIEvent event) { + } +} diff --git a/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/MemoryManager.java b/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/MemoryManager.java index 11ac2b15a8b..a070aa70182 100644 --- a/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/MemoryManager.java +++ b/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/MemoryManager.java @@ -24,15 +24,13 @@ import org.eclipse.cdt.debug.mi.core.output.MIDataReadMemoryInfo; /** */ -public class MemoryManager extends SessionObject implements ICDIMemoryManager { +public class MemoryManager extends Manager implements ICDIMemoryManager { List blockList; - boolean autoupdate; public MemoryManager(Session session) { - super(session); + super(session, true); blockList = new ArrayList(); - autoupdate = true; } /** @@ -136,7 +134,7 @@ public class MemoryManager extends SessionObject implements ICDIMemoryManager { mi.postCommand(mem); MIDataReadMemoryInfo info = mem.getMIDataReadMemoryInfo(); if (info == null) { - throw new CDIException("No answer"); + throw new CDIException(CdiResources.getString("cdi.Common.No_answer")); //$NON-NLS-1$ } return info; } catch (MIException e) { @@ -149,7 +147,7 @@ public class MemoryManager extends SessionObject implements ICDIMemoryManager { */ public ICDIMemoryBlock createMemoryBlock(long address, int length) throws CDIException { - String addr = "0x" + Long.toHexString(address); + String addr = "0x" + Long.toHexString(address); //$NON-NLS-1$ return createMemoryBlock(addr, length); } @@ -197,18 +195,4 @@ public class MemoryManager extends SessionObject implements ICDIMemoryManager { } } - /** - * @see org.eclipse.cdt.debug.core.cdi.ICDIMemoryManager#isAutoUpdate() - */ - public boolean isAutoUpdate() { - return autoupdate; - } - - /** - * @see org.eclipse.cdt.debug.core.cdi.ICDIMemoryManager#setAutoUpdate(boolean) - */ - public void setAutoUpdate(boolean update) { - autoupdate = update; - } - } diff --git a/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/RegisterManager.java b/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/RegisterManager.java index e940187fa71..97b95e9083b 100644 --- a/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/RegisterManager.java +++ b/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/RegisterManager.java @@ -34,16 +34,14 @@ import org.eclipse.cdt.debug.mi.core.output.MIVarUpdateInfo; /** */ -public class RegisterManager extends SessionObject implements ICDIRegisterManager { +public class RegisterManager extends Manager implements ICDIRegisterManager { private List regList; - private boolean autoupdate; MIVarChange[] noChanges = new MIVarChange[0]; public RegisterManager(Session session) { - super(session); + super(session, true); regList = Collections.synchronizedList(new ArrayList()); - autoupdate = true; } /** @@ -59,7 +57,7 @@ public class RegisterManager extends SessionObject implements ICDIRegisterManage MIDataListRegisterNamesInfo info = registers.getMIDataListRegisterNamesInfo(); if (info == null) { - throw new CDIException("No answer"); + throw new CDIException(CdiResources.getString("cdi.Common.No_answer")); //$NON-NLS-1$ } String[] names = info.getRegisterNames(); List regsList = new ArrayList(names.length); @@ -86,7 +84,7 @@ public class RegisterManager extends SessionObject implements ICDIRegisterManage Register reg = getRegister(regObject); if (reg == null) { try { - String name = "$" + regObj.getName(); + String name = "$" + regObj.getName(); //$NON-NLS-1$ Session session = (Session)getSession(); MISession mi = session.getMISession(); CommandFactory factory = mi.getCommandFactory(); @@ -94,7 +92,7 @@ public class RegisterManager extends SessionObject implements ICDIRegisterManage mi.postCommand(var); MIVarCreateInfo info = var.getMIVarCreateInfo(); if (info == null) { - throw new CDIException("No answer"); + throw new CDIException(CdiResources.getString("cdi.Common.No_answer")); //$NON-NLS-1$ } reg = new Register(regObj, info.getMIVar()); regList.add(reg); @@ -104,7 +102,7 @@ public class RegisterManager extends SessionObject implements ICDIRegisterManage } return reg; } - throw new CDIException("Wrong register type"); + throw new CDIException(CdiResources.getString("cdi.RegisterManager.Wrong_register_type")); //$NON-NLS-1$ } public Register createRegister(RegisterObject v, MIVar mivar) throws CDIException { @@ -120,20 +118,6 @@ public class RegisterManager extends SessionObject implements ICDIRegisterManage regList.remove(reg); } - /** - * @see org.eclipse.cdt.debug.core.cdi.ICDIRegisterManager#setAutoUpdate(boolean) - */ - public void setAutoUpdate(boolean update) { - autoupdate = update; - } - - /** - * @see org.eclipse.cdt.debug.core.cdi.ICDIRegisterManager#isAutoUpdate() - */ - public boolean isAutoUpdate() { - return autoupdate; - } - /** * Use by the eventManager to find the Register; */ @@ -180,7 +164,7 @@ public class RegisterManager extends SessionObject implements ICDIRegisterManage MIDataListChangedRegistersInfo info = changed.getMIDataListChangedRegistersInfo(); if (info == null) { - throw new CDIException("No answer"); + throw new CDIException(CdiResources.getString("cdi.Common.No_answer")); //$NON-NLS-1$ } int[] regnos = info.getRegisterNumbers(); List eventList = new ArrayList(regnos.length); @@ -197,7 +181,7 @@ public class RegisterManager extends SessionObject implements ICDIRegisterManage mi.postCommand(update); MIVarUpdateInfo updateInfo = update.getMIVarUpdateInfo(); if (updateInfo == null) { - throw new CDIException("No answer"); + throw new CDIException(CdiResources.getString("cdi.Common.No_answer")); //$NON-NLS-1$ } changes = updateInfo.getMIVarChanges(); } catch (MIException e) { diff --git a/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/RuntimeOptions.java b/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/RuntimeOptions.java index 46250887caa..e10e2883c8e 100644 --- a/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/RuntimeOptions.java +++ b/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/RuntimeOptions.java @@ -42,10 +42,10 @@ public class RuntimeOptions implements ICDIRuntimeOptions { mi.postCommand(arguments); MIInfo info = arguments.getMIInfo(); if (info == null) { - throw new CDIException("Unable to set arguments: target is not responding"); + throw new CDIException(CdiResources.getString("cdi.RuntimeOptions.Unable_to_set_args_target_not_responding")); //$NON-NLS-1$ } } catch (MIException e) { - throw new CDIException("Unable to set arguments: " + e.getMessage()); + throw new CDIException(CdiResources.getString("cdi.RuntimeOptions.Unable_to_set_args") + e.getMessage()); //$NON-NLS-1$ } } @@ -73,10 +73,10 @@ public class RuntimeOptions implements ICDIRuntimeOptions { mi.postCommand(set); MIInfo info = set.getMIInfo(); if (info == null) { - throw new CDIException("Unable to set environment: target is not responding"); + throw new CDIException(CdiResources.getString("cdi.RuntimeOptions.Unable_to_set_args_target_not_responding")); //$NON-NLS-1$ } } catch (MIException e) { - throw new CDIException("Unable to set environment: " + e.getMessage()); + throw new CDIException(CdiResources.getString("cdi.RuntimeOptions.Unable_to_set_environment") + e.getMessage()); //$NON-NLS-1$ } } } @@ -95,10 +95,10 @@ public class RuntimeOptions implements ICDIRuntimeOptions { mi.postCommand(cd); MIInfo info = cd.getMIInfo(); if (info == null) { - throw new CDIException("Unable to set working directory: target is not responding"); + throw new CDIException(CdiResources.getString("cdi.RuntimeOptions.Unable_to_set_args_target_not_responding")); //$NON-NLS-1$ } } catch (MIException e) { - throw new CDIException("Unable to set working directory: " + e.getMessage()); + throw new CDIException(CdiResources.getString("cdi.RuntimeOptions.Unable_to_set_working_dir") + e.getMessage()); //$NON-NLS-1$ } } diff --git a/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/Session.java b/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/Session.java index 0dd2f35d29e..1a0fa9841a4 100644 --- a/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/Session.java +++ b/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/Session.java @@ -172,7 +172,7 @@ public class Session implements ICDISession, ICDISessionObject { if (target instanceof Target) { ctarget = (Target)target; } else { - throw new CDIException("Unkown target"); + throw new CDIException(CdiResources.getString("cdi.Session.Unknown_target")); //$NON-NLS-1$ } } diff --git a/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/SharedLibraryManager.java b/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/SharedLibraryManager.java index 532200c8ca3..ca60bb4d752 100644 --- a/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/SharedLibraryManager.java +++ b/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/SharedLibraryManager.java @@ -38,16 +38,14 @@ import org.eclipse.cdt.debug.mi.core.output.MIShared; /** * Manager of the CDI shared libraries. */ -public class SharedLibraryManager extends SessionObject implements ICDISharedLibraryManager { +public class SharedLibraryManager extends Manager implements ICDISharedLibraryManager { List sharedList; - boolean autoupdate; boolean isDeferred; public SharedLibraryManager (Session session) { - super(session); + super(session, true); sharedList = new ArrayList(1); - autoupdate = true; } MIShared[] getMIShareds() throws CDIException { @@ -59,7 +57,7 @@ public class SharedLibraryManager extends SessionObject implements ICDISharedLib session.getMISession().postCommand(infoShared); MIInfoSharedLibraryInfo info = infoShared.getMIInfoSharedLibraryInfo(); if (info == null) { - throw new CDIException("No answer"); + throw new CDIException(CdiResources.getString("cdi.Common.No_answer")); //$NON-NLS-1$ } miLibs = info.getMIShared(); } catch (MIException e) { @@ -171,13 +169,13 @@ public class SharedLibraryManager extends SessionObject implements ICDISharedLib Session session = (Session)getSession(); MISession mi = session.getMISession(); CommandFactory factory = mi.getCommandFactory(); - MIGDBShow show = factory.createMIGDBShow(new String[]{"auto-solib-add"}); + MIGDBShow show = factory.createMIGDBShow(new String[]{"auto-solib-add"}); //$NON-NLS-1$ try { mi.postCommand(show); MIGDBShowInfo info = show.getMIGDBShowInfo(); String value = info.getValue(); if (value != null) { - return value.equalsIgnoreCase("on"); + return value.equalsIgnoreCase("on"); //$NON-NLS-1$ } } catch (MIException e) { throw new MI2CDIException(e); @@ -202,13 +200,13 @@ public class SharedLibraryManager extends SessionObject implements ICDISharedLib Session session = (Session)getSession(); MISession mi = session.getMISession(); CommandFactory factory = mi.getCommandFactory(); - MIGDBShow show = factory.createMIGDBShow(new String[]{"stop-on-solib-events"}); + MIGDBShow show = factory.createMIGDBShow(new String[]{"stop-on-solib-events"}); //$NON-NLS-1$ try { mi.postCommand(show); MIGDBShowInfo info = show.getMIGDBShowInfo(); String value = info.getValue(); if (value != null) { - return value.equalsIgnoreCase("1"); + return value.equalsIgnoreCase("1"); //$NON-NLS-1$ } } catch (MIException e) { throw new MI2CDIException(e); @@ -268,7 +266,7 @@ public class SharedLibraryManager extends SessionObject implements ICDISharedLib mi.postCommand(sharedlibrary); MIInfo info = sharedlibrary.getMIInfo(); if (info == null) { - throw new CDIException("No answer"); + throw new CDIException(CdiResources.getString("cdi.Common.No_answer")); //$NON-NLS-1$ } } catch (MIException e) { throw new MI2CDIException(e); @@ -292,7 +290,7 @@ public class SharedLibraryManager extends SessionObject implements ICDISharedLib session.getMISession().postCommand(sharedlibrary); MIInfo info = sharedlibrary.getMIInfo(); if (info == null) { - throw new CDIException("No answer"); + throw new CDIException(CdiResources.getString("cdi.Common.No_answer")); //$NON-NLS-1$ } } catch (MIException e) { throw new MI2CDIException(e); @@ -302,20 +300,6 @@ public class SharedLibraryManager extends SessionObject implements ICDISharedLib } } - /** - * @see org.eclipse.cdt.debug.core.cdi.ICDISharedLibraryManager#isAutoUpdate() - */ - public boolean isAutoUpdate() { - return autoupdate; - } - - /** - * @see org.eclipse.cdt.debug.core.cdi.ICDISharedLibraryManager#setAutoUpdate(boolean) - */ - public void setAutoUpdate(boolean update) { - autoupdate = update; - } - /* (non-Javadoc) * @see org.eclipse.cdt.debug.core.cdi.ICDISharedLibraryManager#supportsAutoLoadSymbols() */ diff --git a/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/SignalManager.java b/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/SignalManager.java index 4b3cb7dc4be..b60c8b4d5e8 100644 --- a/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/SignalManager.java +++ b/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/SignalManager.java @@ -25,15 +25,13 @@ import org.eclipse.cdt.debug.mi.core.output.MISigHandle; /** */ -public class SignalManager extends SessionObject implements ICDISignalManager { +public class SignalManager extends Manager implements ICDISignalManager { - boolean autoupdate; MISigHandle[] noSigs = new MISigHandle[0]; List signalsList = null; public SignalManager(Session session) { - super(session); - autoupdate = false; + super(session, false); } MISigHandle[] getMISignals() throws CDIException { @@ -46,7 +44,7 @@ public class SignalManager extends SessionObject implements ICDISignalManager { mi.postCommand(sigs); MIInfoSignalsInfo info = sigs.getMIInfoSignalsInfo(); if (info == null) { - throw new CDIException("No answer"); + throw new CDIException(CdiResources.getString("cdi.Common.No_answer")); //$NON-NLS-1$ } miSigs = info.getMISignals(); } catch (MIException e) { @@ -65,7 +63,7 @@ public class SignalManager extends SessionObject implements ICDISignalManager { mi.postCommand(sigs); MIInfoSignalsInfo info = sigs.getMIInfoSignalsInfo(); if (info == null) { - throw new CDIException("No answer"); + throw new CDIException(CdiResources.getString("cdi.Common.No_answer")); //$NON-NLS-1$ } MISigHandle[] miSigs = info.getMISignals(); if (miSigs.length > 0) { @@ -127,17 +125,17 @@ public class SignalManager extends SessionObject implements ICDISignalManager { MISession mi = session.getMISession(); CommandFactory factory = mi.getCommandFactory(); StringBuffer buffer = new StringBuffer(sig.getName()); - buffer.append(" "); + buffer.append(" "); //$NON-NLS-1$ if (isIgnore) { - buffer.append("ignore"); + buffer.append(CdiResources.getString("cdi.SignalManager.ignore")); //$NON-NLS-1$ } else { - buffer.append("noignore"); + buffer.append(CdiResources.getString("cdi.SignalManager.noignore")); //$NON-NLS-1$ } - buffer.append(" "); + buffer.append(" "); //$NON-NLS-1$ if (isStop) { - buffer.append("stop"); + buffer.append(CdiResources.getString("cdi.SignalManager.stop")); //$NON-NLS-1$ } else { - buffer.append("nostop"); + buffer.append(CdiResources.getString("cdi.SignalManager.nostop")); //$NON-NLS-1$ } MIHandle handle = factory.createMIHandle(buffer.toString()); try { @@ -160,20 +158,6 @@ public class SignalManager extends SessionObject implements ICDISignalManager { return (ICDISignal[])signalsList.toArray(new ICDISignal[0]); } - /** - * @see org.eclipse.cdt.debug.core.cdi.ICDISignalManager#isAutoUpdate() - */ - public boolean isAutoUpdate() { - return autoupdate; - } - - /** - * @see org.eclipse.cdt.debug.core.cdi.ICDISignalManager#setAutoUpdate(boolean) - */ - public void setAutoUpdate(boolean update) { - autoupdate = update; - } - /** * @see org.eclipse.cdt.debug.core.cdi.ICDISignalManager#update() */ diff --git a/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/SourceManager.java b/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/SourceManager.java index 10f2beac425..e039661e774 100644 --- a/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/SourceManager.java +++ b/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/SourceManager.java @@ -51,14 +51,12 @@ import org.eclipse.cdt.debug.mi.core.output.MISrcAsm; /** */ -public class SourceManager extends SessionObject implements ICDISourceManager { +public class SourceManager extends Manager implements ICDISourceManager { - boolean autoupdate; GDBTypeParser gdbTypeParser; public SourceManager(Session session) { - super(session); - autoupdate = false; + super(session, false); gdbTypeParser = new GDBTypeParser(); } @@ -131,7 +129,7 @@ public class SourceManager extends SessionObject implements ICDISourceManager { Session session = (Session)getSession(); MISession mi = session.getMISession(); CommandFactory factory = mi.getCommandFactory(); - String hex = "0x"; + String hex = "0x"; //$NON-NLS-1$ String sa = hex + Long.toHexString(start); String ea = hex + Long.toHexString(end); MIDataDisassemble dis = factory.createMIDataDisassemble(sa, ea, false); @@ -185,7 +183,7 @@ public class SourceManager extends SessionObject implements ICDISourceManager { Session session = (Session)getSession(); MISession mi = session.getMISession(); CommandFactory factory = mi.getCommandFactory(); - String hex = "0x"; + String hex = "0x"; //$NON-NLS-1$ String sa = hex + Long.toHexString(start); String ea = hex + Long.toHexString(end); MIDataDisassemble dis = factory.createMIDataDisassemble(sa, ea, true); @@ -203,20 +201,6 @@ public class SourceManager extends SessionObject implements ICDISourceManager { } } - /** - * @see org.eclipse.cdt.debug.core.cdi.ICDISourceManager#isAutoUpdate() - */ - public boolean isAutoUpdate() { - return autoupdate; - } - - /** - * @see org.eclipse.cdt.debug.core.cdi.ICDISourceManager#setAutoUpdate(boolean) - */ - public void setAutoUpdate(boolean update) { - autoupdate = update; - } - /** * @see org.eclipse.cdt.debug.core.cdi.ICDISourceManager#update() */ @@ -271,7 +255,7 @@ public class SourceManager extends SessionObject implements ICDISourceManager { if (headType != null) { return headType; } - throw new CDIException("Unknown type"); + throw new CDIException(CdiResources.getString("cdi.SourceManager.Unknown_type")); //$NON-NLS-1$ } Type toCDIType(ICDITarget target, String name) throws CDIException { @@ -282,37 +266,37 @@ public class SourceManager extends SessionObject implements ICDISourceManager { String typename = name.trim(); // Check the primitives. - if (typename.equals("char")) { + if (typename.equals("char")) { //$NON-NLS-1$ return new CharType(target, typename); - } else if (typename.equals("wchar_t")) { + } else if (typename.equals("wchar_t")) { //$NON-NLS-1$ return new WCharType(target, typename); - } else if (typename.equals("short")) { + } else if (typename.equals("short")) { //$NON-NLS-1$ return new ShortType(target, typename); - } else if (typename.equals("int")) { + } else if (typename.equals("int")) { //$NON-NLS-1$ return new IntType(target, typename); - } else if (typename.equals("long")) { + } else if (typename.equals("long")) { //$NON-NLS-1$ return new LongType(target, typename); - } else if (typename.equals("unsigned")) { + } else if (typename.equals("unsigned")) { //$NON-NLS-1$ return new IntType(target, typename, true); - } else if (typename.equals("signed")) { + } else if (typename.equals("signed")) { //$NON-NLS-1$ return new IntType(target, typename); - } else if (typename.equals("bool")) { + } else if (typename.equals("bool")) { //$NON-NLS-1$ return new BoolType(target, typename); - } else if (typename.equals("_Bool")) { + } else if (typename.equals("_Bool")) { //$NON-NLS-1$ return new BoolType(target, typename); - } else if (typename.equals("float")) { + } else if (typename.equals("float")) { //$NON-NLS-1$ return new FloatType(target, typename); - } else if (typename.equals("double")) { + } else if (typename.equals("double")) { //$NON-NLS-1$ return new DoubleType(target, typename); - } else if (typename.equals("void")) { + } else if (typename.equals("void")) { //$NON-NLS-1$ return new VoidType(target, typename); - } else if (typename.equals("enum")) { + } else if (typename.equals("enum")) { //$NON-NLS-1$ return new EnumType(target, typename); - } else if (typename.equals("union")) { + } else if (typename.equals("union")) { //$NON-NLS-1$ return new StructType(target, typename); - } else if (typename.equals("struct")) { + } else if (typename.equals("struct")) { //$NON-NLS-1$ return new StructType(target, typename); - } else if (typename.equals("class")) { + } else if (typename.equals("class")) { //$NON-NLS-1$ return new StructType(target, typename); } @@ -325,24 +309,24 @@ public class SourceManager extends SessionObject implements ICDISourceManager { // ISOC allows permutations: // "signed int" and "int signed" are equivalent - boolean isUnsigned = (first.equals("unsigned") || second.equals("unsigned")); - boolean isSigned = (first.equals("signed") || second.equals("signed")); - boolean isChar = (first.equals("char") || second.equals("char")); - boolean isInt = (first.equals("int") || second.equals("int")); - boolean isLong = (first.equals("long") || second.equals("long")); - boolean isShort = (first.equals("short") || second.equals("short")); - boolean isLongLong = (first.equals("long") && second.equals("long")); + boolean isUnsigned = (first.equals("unsigned") || second.equals("unsigned")); //$NON-NLS-1$ //$NON-NLS-2$ + boolean isSigned = (first.equals("signed") || second.equals("signed")); //$NON-NLS-1$ //$NON-NLS-2$ + boolean isChar = (first.equals("char") || second.equals("char")); //$NON-NLS-1$ //$NON-NLS-2$ + boolean isInt = (first.equals("int") || second.equals("int")); //$NON-NLS-1$ //$NON-NLS-2$ + boolean isLong = (first.equals("long") || second.equals("long")); //$NON-NLS-1$ //$NON-NLS-2$ + boolean isShort = (first.equals("short") || second.equals("short")); //$NON-NLS-1$ //$NON-NLS-2$ + boolean isLongLong = (first.equals("long") && second.equals("long")); //$NON-NLS-1$ //$NON-NLS-2$ - boolean isDouble = (first.equals("double") || second.equals("double")); - boolean isFloat = (first.equals("float") || second.equals("float")); - boolean isComplex = (first.equals("complex") || second.equals("complex") || - first.equals("_Complex") || second.equals("_Complex")); - boolean isImaginery = (first.equals("_Imaginary") || second.equals("_Imaginary")); + boolean isDouble = (first.equals("double") || second.equals("double")); //$NON-NLS-1$ //$NON-NLS-2$ + boolean isFloat = (first.equals("float") || second.equals("float")); //$NON-NLS-1$ //$NON-NLS-2$ + boolean isComplex = (first.equals("complex") || second.equals("complex") || //$NON-NLS-1$ //$NON-NLS-2$ + first.equals("_Complex") || second.equals("_Complex")); //$NON-NLS-1$ //$NON-NLS-2$ + boolean isImaginery = (first.equals("_Imaginary") || second.equals("_Imaginary")); //$NON-NLS-1$ //$NON-NLS-2$ - boolean isStruct = first.equals("struct"); - boolean isClass = first.equals("class"); - boolean isUnion = first.equals("union"); - boolean isEnum = first.equals("enum"); + boolean isStruct = first.equals("struct"); //$NON-NLS-1$ + boolean isClass = first.equals("class"); //$NON-NLS-1$ + boolean isUnion = first.equals("union"); //$NON-NLS-1$ + boolean isEnum = first.equals("enum"); //$NON-NLS-1$ if (isChar && (isSigned || isUnsigned)) { return new CharType(target, typename, isUnsigned); @@ -379,17 +363,17 @@ public class SourceManager extends SessionObject implements ICDISourceManager { String second = st.nextToken(); String third = st.nextToken(); - boolean isSigned = (first.equals("signed") || second.equals("signed") || third.equals("signed")); - boolean unSigned = (first.equals("unsigned") || second.equals("unsigned") || third.equals("unsigned")); - boolean isInt = (first.equals("int") || second.equals("int") || third.equals("int")); - boolean isLong = (first.equals("long") || second.equals("long") || third.equals("long")); - boolean isShort = (first.equals("short") || second.equals("short") || third.equals("short")); - boolean isLongLong = (first.equals("long") && second.equals("long")) || - (second.equals("long") && third.equals("long")); - boolean isDouble = (first.equals("double") || second.equals("double") || third.equals("double")); - boolean isComplex = (first.equals("complex") || second.equals("complex") || third.equals("complex") || - first.equals("_Complex") || second.equals("_Complex") || third.equals("_Complex")); - boolean isImaginery = (first.equals("_Imaginary") || second.equals("_Imaginary") || third.equals("_Imaginary")); + boolean isSigned = (first.equals("signed") || second.equals("signed") || third.equals("signed")); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ + boolean unSigned = (first.equals("unsigned") || second.equals("unsigned") || third.equals("unsigned")); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ + boolean isInt = (first.equals("int") || second.equals("int") || third.equals("int")); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ + boolean isLong = (first.equals("long") || second.equals("long") || third.equals("long")); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ + boolean isShort = (first.equals("short") || second.equals("short") || third.equals("short")); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ + boolean isLongLong = (first.equals("long") && second.equals("long")) || //$NON-NLS-1$ //$NON-NLS-2$ + (second.equals("long") && third.equals("long")); //$NON-NLS-1$ //$NON-NLS-2$ + boolean isDouble = (first.equals("double") || second.equals("double") || third.equals("double")); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ + boolean isComplex = (first.equals("complex") || second.equals("complex") || third.equals("complex") || //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ + first.equals("_Complex") || second.equals("_Complex") || third.equals("_Complex")); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ + boolean isImaginery = (first.equals("_Imaginary") || second.equals("_Imaginary") || third.equals("_Imaginary")); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ if (isShort && isInt && (isSigned || unSigned)) { @@ -411,18 +395,18 @@ public class SourceManager extends SessionObject implements ICDISourceManager { String third = st.nextToken(); String fourth = st.nextToken(); - boolean unSigned = (first.equals("unsigned") || second.equals("unsigned") || third.equals("unsigned") || fourth.equals("unsigned")); - boolean isSigned = (first.equals("signed") || second.equals("signed") || third.equals("signed") || fourth.equals("signed")); - boolean isInt = (first.equals("int") || second.equals("int") || third.equals("int") || fourth.equals("int")); - boolean isLongLong = (first.equals("long") && second.equals("long")) - || (second.equals("long") && third.equals("long")) - || (third.equals("long") && fourth.equals("long")); + boolean unSigned = (first.equals("unsigned") || second.equals("unsigned") || third.equals("unsigned") || fourth.equals("unsigned")); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ + boolean isSigned = (first.equals("signed") || second.equals("signed") || third.equals("signed") || fourth.equals("signed")); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ + boolean isInt = (first.equals("int") || second.equals("int") || third.equals("int") || fourth.equals("int")); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ + boolean isLongLong = (first.equals("long") && second.equals("long")) //$NON-NLS-1$ //$NON-NLS-2$ + || (second.equals("long") && third.equals("long")) //$NON-NLS-1$ //$NON-NLS-2$ + || (third.equals("long") && fourth.equals("long")); //$NON-NLS-1$ //$NON-NLS-2$ if (isLongLong && isInt && (isSigned || unSigned)) { return new LongLongType(target, typename, unSigned); } } - throw new CDIException("Unknown type"); + throw new CDIException(CdiResources.getString("cdi.SourceManager.Unknown_type")); //$NON-NLS-1$ } public String getDetailTypeName(String typename) throws CDIException { @@ -434,7 +418,7 @@ public class SourceManager extends SessionObject implements ICDISourceManager { mi.postCommand(ptype); MIPTypeInfo info = ptype.getMIPtypeInfo(); if (info == null) { - throw new CDIException("No answer"); + throw new CDIException(CdiResources.getString("cdi.Common.No_answer")); //$NON-NLS-1$ } return info.getType(); } catch (MIException e) { diff --git a/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/ThreadManager.java b/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/ThreadManager.java new file mode 100644 index 00000000000..1e69bf6e54e --- /dev/null +++ b/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/ThreadManager.java @@ -0,0 +1,34 @@ +/* + *(c) Copyright QNX Software Systems Ltd. 2002. + * All Rights Reserved. + * + */ +package org.eclipse.cdt.debug.mi.core.cdi; + +import org.eclipse.cdt.debug.core.cdi.CDIException; +import org.eclipse.cdt.debug.core.cdi.model.ICDIThread; + + +/** + */ +public class ThreadManager extends Manager { //implements ICDIThreadManager { + + + public ThreadManager(Session session) { + super(session, true); + } + + /** + * @see org.eclipse.cdt.debug.core.cdi.ICDIThreadManager#getThreads() + */ + public ICDIThread[] getThreads() throws CDIException { + return new ICDIThread[] {}; + } + + /** + * @see org.eclipse.cdt.debug.core.cdi.ICDIThreadManager#update() + */ + public void update() throws CDIException { + } + +} diff --git a/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/VariableManager.java b/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/VariableManager.java index 2c51b5e9ca5..5c5a6d9d67b 100644 --- a/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/VariableManager.java +++ b/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/VariableManager.java @@ -46,20 +46,18 @@ import org.eclipse.cdt.debug.mi.core.output.MIVarUpdateInfo; /** */ -public class VariableManager extends SessionObject implements ICDIVariableManager { +public class VariableManager extends Manager implements ICDIVariableManager { // We put a restriction on how deep we want to // go when doing update of the variables. // If the number is to high, gdb will just hang. int MAX_STACK_DEPTH = 200; List variableList; - boolean autoupdate; MIVarChange[] noChanges = new MIVarChange[0]; public VariableManager(Session session) { - super(session); + super(session, true); variableList = Collections.synchronizedList(new ArrayList()); - autoupdate = true; } /** @@ -132,13 +130,13 @@ public class VariableManager extends SessionObject implements ICDIVariableManage mi.postCommand(ptype); MIPTypeInfo info = ptype.getMIPtypeInfo(); if (info == null) { - throw new CDIException("No answer"); + throw new CDIException(CdiResources.getString("cdi.Common.No_answer")); //$NON-NLS-1$ } } catch (MIException e) { throw new MI2CDIException(e); } } else { - throw new CDIException("Unknown type"); + throw new CDIException(CdiResources.getString("cdi.VariableManager.Unknown_type")); //$NON-NLS-1$ } } @@ -206,7 +204,7 @@ public class VariableManager extends SessionObject implements ICDIVariableManage mi.postCommand(var); MIVarCreateInfo info = var.getMIVarCreateInfo(); if (info == null) { - throw new CDIException("No answer"); + throw new CDIException(CdiResources.getString("cdi.Common.No_answer")); //$NON-NLS-1$ } argument = new Argument(argObj, info.getMIVar()); variableList.add(argument); @@ -220,7 +218,7 @@ public class VariableManager extends SessionObject implements ICDIVariableManage } return argument; } - throw new CDIException("Wrong variable type"); + throw new CDIException(CdiResources.getString("cdi.VariableManager.Wrong_variable_type")); //$NON-NLS-1$ } /** @@ -245,7 +243,7 @@ public class VariableManager extends SessionObject implements ICDIVariableManage mi.postCommand(listArgs); MIStackListArgumentsInfo info = listArgs.getMIStackListArgumentsInfo(); if (info == null) { - throw new CDIException("No answer"); + throw new CDIException(CdiResources.getString("cdi.Common.No_answer")); //$NON-NLS-1$ } MIFrame[] miFrames = info.getMIFrames(); if (miFrames != null && miFrames.length == 1) { @@ -281,10 +279,10 @@ public class VariableManager extends SessionObject implements ICDIVariableManage } StringBuffer buffer = new StringBuffer(); if (filename.length() > 0) { - buffer.append('\'').append(filename).append('\'').append("::"); + buffer.append('\'').append(filename).append('\'').append("::"); //$NON-NLS-1$ } if (function.length() > 0) { - buffer.append(function).append("::"); + buffer.append(function).append("::"); //$NON-NLS-1$ } buffer.append(name); ICDITarget target = getSession().getCurrentTarget(); @@ -313,7 +311,7 @@ public class VariableManager extends SessionObject implements ICDIVariableManage vo.setCastingArrayEnd(length); return vo; } - throw new CDIException("Unknown variable object"); + throw new CDIException(CdiResources.getString("cdi.VariableManager.Unknown_variable_object")); //$NON-NLS-1$ } /** @@ -337,12 +335,12 @@ public class VariableManager extends SessionObject implements ICDIVariableManage obj.getStackDepth()); String casting = obj.getCastingType(); if (casting != null && casting.length() > 0) { - type = "(" + type + ")" + "(" + casting + " )"; + type = "(" + type + ")" + "(" + casting + " )"; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ } vo.setCastingType(type); return vo; } - throw new CDIException("Unknown variable object"); + throw new CDIException(CdiResources.getString("cdi.VariableManager.Unknown_variable_object")); //$NON-NLS-1$ } /** @@ -364,7 +362,7 @@ public class VariableManager extends SessionObject implements ICDIVariableManage mi.postCommand(locals); MIStackListLocalsInfo info = locals.getMIStackListLocalsInfo(); if (info == null) { - throw new CDIException("No answer"); + throw new CDIException(CdiResources.getString("cdi.Common.No_answer")); //$NON-NLS-1$ } args = info.getLocals(); if (args != null) { @@ -423,7 +421,7 @@ public class VariableManager extends SessionObject implements ICDIVariableManage mi.postCommand(var); MIVarCreateInfo info = var.getMIVarCreateInfo(); if (info == null) { - throw new CDIException("No answer"); + throw new CDIException(CdiResources.getString("cdi.Common.No_answer")); //$NON-NLS-1$ } variable = new Variable(varObj, info.getMIVar()); variableList.add(variable); @@ -437,7 +435,7 @@ public class VariableManager extends SessionObject implements ICDIVariableManage } return variable; } - throw new CDIException("Wrong variable type"); + throw new CDIException(CdiResources.getString("cdi.VariableManager.Wrong_variable_type")); //$NON-NLS-1$ } /** @@ -454,20 +452,6 @@ public class VariableManager extends SessionObject implements ICDIVariableManage } } - /** - * @see org.eclipse.cdt.debug.core.cdi.ICDIVariableManager#isAutoUpdate() - */ - public boolean isAutoUpdate() { - return autoupdate; - } - - /** - * @see org.eclipse.cdt.debug.core.cdi.ICDIVariableManager#setAutoUpdate(boolean) - */ - public void setAutoUpdate(boolean update) { - autoupdate = update; - } - /** * Update the elements in the cache, from the response of the "-var-update" * mi/command. Althought tempting we do not use the "-var-update *" command, since @@ -517,7 +501,7 @@ public class VariableManager extends SessionObject implements ICDIVariableManage mi.postCommand(update); MIVarUpdateInfo info = update.getMIVarUpdateInfo(); if (info == null) { - throw new CDIException("No answer"); + throw new CDIException(CdiResources.getString("cdi.Common.No_answer")); //$NON-NLS-1$ } changes = info.getMIVarChanges(); } catch (MIException e) { diff --git a/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/model/MemoryBlock.java b/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/model/MemoryBlock.java index 9f2bc779db0..b2ed39cd711 100644 --- a/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/model/MemoryBlock.java +++ b/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/model/MemoryBlock.java @@ -9,6 +9,7 @@ import org.eclipse.cdt.debug.core.cdi.model.ICDITarget; import org.eclipse.cdt.debug.mi.core.MIException; import org.eclipse.cdt.debug.mi.core.MIFormat; import org.eclipse.cdt.debug.mi.core.MISession; +import org.eclipse.cdt.debug.mi.core.cdi.CdiResources; import org.eclipse.cdt.debug.mi.core.cdi.MI2CDIException; import org.eclipse.cdt.debug.mi.core.cdi.MemoryManager; import org.eclipse.cdt.debug.mi.core.cdi.Session; @@ -165,21 +166,21 @@ public class MemoryBlock extends CObject implements ICDIMemoryBlock { */ public void setValue(long offset, byte[] bytes) throws CDIException { if (offset >= getLength() || offset + bytes.length > getLength()) { - throw new CDIException("Bad Offset"); + throw new CDIException(CdiResources.getString("cdi.model.MemoryBlock.Bad_Offset")); //$NON-NLS-1$ } Session session = (Session)getTarget().getSession(); MISession mi = session.getMISession(); CommandFactory factory = mi.getCommandFactory(); for (int i = 0; i < bytes.length; i++) { long l = new Byte(bytes[i]).longValue() & 0xff; - String value = "0x" + Long.toHexString(l); + String value = "0x" + Long.toHexString(l); //$NON-NLS-1$ MIDataWriteMemory mw = factory.createMIDataWriteMemory(offset + i, expression, MIFormat.HEXADECIMAL, 1, value); try { mi.postCommand(mw); MIInfo info = mw.getMIInfo(); if (info == null) { - throw new CDIException("No answer"); + throw new CDIException(CdiResources.getString("cdi.Common.No_answer")); //$NON-NLS-1$ } } catch (MIException e) { throw new MI2CDIException(e); diff --git a/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/model/Register.java b/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/model/Register.java index d082b059221..249e8ecaa35 100644 --- a/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/model/Register.java +++ b/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/model/Register.java @@ -9,6 +9,7 @@ import org.eclipse.cdt.debug.core.cdi.model.ICDIRegister; import org.eclipse.cdt.debug.core.cdi.model.ICDIVariable; import org.eclipse.cdt.debug.mi.core.MIException; import org.eclipse.cdt.debug.mi.core.MISession; +import org.eclipse.cdt.debug.mi.core.cdi.CdiResources; import org.eclipse.cdt.debug.mi.core.cdi.MI2CDIException; import org.eclipse.cdt.debug.mi.core.cdi.RegisterManager; import org.eclipse.cdt.debug.mi.core.cdi.Session; @@ -36,7 +37,7 @@ public class Register extends Variable implements ICDIRegister { mi.postCommand(var); MIVarListChildrenInfo info = var.getMIVarListChildrenInfo(); if (info == null) { - throw new CDIException("No answer"); + throw new CDIException(CdiResources.getString("cdi.Common.No_answer")); //$NON-NLS-1$ } MIVar[] vars = info.getMIVars(); children = new Register[vars.length]; diff --git a/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/model/StackFrame.java b/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/model/StackFrame.java index be5872b325c..aa0bfae70a8 100644 --- a/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/model/StackFrame.java +++ b/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/model/StackFrame.java @@ -119,7 +119,7 @@ public class StackFrame extends CObject implements ICDIStackFrame { return new Location(frame.getFile(), frame.getFunction(), frame.getLine(), frame.getAddress()); } - return new Location("", "", 0, 0); + return new Location("", "", 0, 0); //$NON-NLS-1$ //$NON-NLS-2$ } /** diff --git a/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/model/Target.java b/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/model/Target.java index 7564b960738..dc52698e880 100644 --- a/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/model/Target.java +++ b/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/model/Target.java @@ -44,6 +44,7 @@ import org.eclipse.cdt.debug.mi.core.output.MIDataEvaluateExpressionInfo; import org.eclipse.cdt.debug.mi.core.output.MIInfo; import org.eclipse.cdt.debug.mi.core.output.MIInfoThreadsInfo; import org.eclipse.cdt.debug.mi.core.output.MIThreadSelectInfo; +import org.eclipse.cdt.debug.mi.core.cdi.CdiResources; /** */ @@ -89,7 +90,7 @@ public class Target implements ICDITarget { if (cthread instanceof Thread) { setCurrentThread(cthread, true); } else { - throw new CDIException("Unknown thread"); + throw new CDIException(CdiResources.getString("cdi.model.Target.Unknown_thread")); //$NON-NLS-1$ } } @@ -97,7 +98,7 @@ public class Target implements ICDITarget { if (cthread instanceof Thread) { setCurrentThread((Thread)cthread, doUpdate); } else { - throw new CDIException("Unknown thread"); + throw new CDIException(CdiResources.getString("cdi.model.Target.Unknown_thread")); //$NON-NLS-1$ } } @@ -121,7 +122,7 @@ public class Target implements ICDITarget { mi.postCommand(select); MIThreadSelectInfo info = select.getMIThreadSelectInfo(); if (info == null) { - throw new CDIException("Target is not responding"); + throw new CDIException(CdiResources.getString("cdi.model.Target.Target_not_responding")); //$NON-NLS-1$ } currentThreadId = info.getNewThreadId(); } catch (MIException e) { @@ -148,7 +149,7 @@ public class Target implements ICDITarget { // thread is gone. Generate a Thread destroyed. MISession mi = session.getMISession(); mi.fireEvent(new MIThreadExitEvent(id)); - throw new CDIException("Can not swith to thread " + id); + throw new CDIException(CdiResources.getString("cdi.model.Target.Cannot_switch_to_thread") + id); //$NON-NLS-1$ } } @@ -318,7 +319,7 @@ public class Target implements ICDITarget { mi.postCommand(run); MIInfo info = run.getMIInfo(); if (info == null) { - throw new CDIException("Target is not responding"); + throw new CDIException(CdiResources.getString("cdi.model.Target.Target_not_responding")); //$NON-NLS-1$ } } catch (MIException e) { throw new MI2CDIException(e); @@ -331,7 +332,7 @@ public class Target implements ICDITarget { public void resume() throws CDIException { MISession mi = session.getMISession(); if (mi.getMIInferior().isRunning()) { - throw new CDIException("Inferior is already running"); + throw new CDIException(CdiResources.getString("cdi.model.Target.Inferior_already_running")); //$NON-NLS-1$ } else if (mi.getMIInferior().isSuspended()) { CommandFactory factory = mi.getCommandFactory(); MIExecContinue cont = factory.createMIExecContinue(); @@ -340,7 +341,7 @@ public class Target implements ICDITarget { mi.postCommand(cont); MIInfo info = cont.getMIInfo(); if (info == null) { - throw new CDIException("Target is not responding"); + throw new CDIException(CdiResources.getString("cdi.model.Target.Target_not_responding")); //$NON-NLS-1$ } } catch (MIException e) { throw new MI2CDIException(e); @@ -364,7 +365,7 @@ public class Target implements ICDITarget { mi.postCommand(step); MIInfo info = step.getMIInfo(); if (info == null) { - throw new CDIException("Target is not responding"); + throw new CDIException(CdiResources.getString("cdi.model.Target.Target_not_responding")); //$NON-NLS-1$ } } catch (MIException e) { throw new MI2CDIException(e); @@ -383,7 +384,7 @@ public class Target implements ICDITarget { mi.postCommand(stepi); MIInfo info = stepi.getMIInfo(); if (info == null) { - throw new CDIException("Target is not responding"); + throw new CDIException(CdiResources.getString("cdi.model.Target.Target_not_responding")); //$NON-NLS-1$ } } catch (MIException e) { throw new MI2CDIException(e); @@ -402,7 +403,7 @@ public class Target implements ICDITarget { mi.postCommand(next); MIInfo info = next.getMIInfo(); if (info == null) { - throw new CDIException("Target is not responding"); + throw new CDIException(CdiResources.getString("cdi.model.Target.Target_not_responding")); //$NON-NLS-1$ } } catch (MIException e) { throw new MI2CDIException(e); @@ -421,7 +422,7 @@ public class Target implements ICDITarget { mi.postCommand(nexti); MIInfo info = nexti.getMIInfo(); if (info == null) { - throw new CDIException("Target is not responding"); + throw new CDIException(CdiResources.getString("cdi.model.Target.Target_not_responding")); //$NON-NLS-1$ } } catch (MIException e) { throw new MI2CDIException(e); @@ -457,7 +458,7 @@ public class Target implements ICDITarget { mi.postCommand(finish); MIInfo info = finish.getMIInfo(); if (info == null) { - throw new CDIException("Target is not responding"); + throw new CDIException(CdiResources.getString("cdi.model.Target.Target_not_responding")); //$NON-NLS-1$ } } catch (MIException e) { throw new MI2CDIException(e); @@ -475,7 +476,7 @@ public class Target implements ICDITarget { mi.postCommand(ret); MIInfo info = ret.getMIInfo(); if (info == null) { - throw new CDIException("Target is not responding"); + throw new CDIException(CdiResources.getString("cdi.model.Target.Target_not_responding")); //$NON-NLS-1$ } } catch (MIException e) { throw new MI2CDIException(e); @@ -505,7 +506,7 @@ public class Target implements ICDITarget { mi.postCommand(detach); MIInfo info = detach.getMIInfo(); if (info == null) { - throw new CDIException("Target is not responding"); + throw new CDIException(CdiResources.getString("cdi.model.Target.Target_not_responding")); //$NON-NLS-1$ } } catch (MIException e) { throw new MI2CDIException(e); @@ -523,13 +524,13 @@ public class Target implements ICDITarget { public void runUntil(ICDILocation location) throws CDIException { MISession mi = session.getMISession(); CommandFactory factory = mi.getCommandFactory(); - String loc = ""; + String loc = ""; //$NON-NLS-1$ if (location.getFile() != null && location.getFile().length() > 0) { - loc = location.getFile() + ":" + location.getLineNumber(); + loc = location.getFile() + ":" + location.getLineNumber(); //$NON-NLS-1$ } else if (location.getFunction() != null && location.getFunction().length() > 0) { loc = location.getFunction(); } else if (location.getAddress() != 0) { - loc = "*" + location.getAddress(); + loc = "*" + location.getAddress(); //$NON-NLS-1$ } MIExecUntil until = factory.createMIExecUntil(loc); lastExecutionCommand = until; @@ -537,7 +538,7 @@ public class Target implements ICDITarget { mi.postCommand(until); MIInfo info = until.getMIInfo(); if (info == null) { - throw new CDIException("Target is not responding"); + throw new CDIException(CdiResources.getString("cdi.model.Target.Target_not_responding")); //$NON-NLS-1$ } } catch (MIException e) { throw new MI2CDIException(e); @@ -551,13 +552,13 @@ public class Target implements ICDITarget { public void jump(ICDILocation location) throws CDIException { MISession mi = session.getMISession(); CommandFactory factory = mi.getCommandFactory(); - String loc = ""; + String loc = ""; //$NON-NLS-1$ if (location.getFile() != null && location.getFile().length() > 0) { - loc = location.getFile() + ":" + location.getLineNumber(); + loc = location.getFile() + ":" + location.getLineNumber(); //$NON-NLS-1$ } else if (location.getFunction() != null && location.getFunction().length() > 0) { loc = location.getFunction(); } else if (location.getAddress() != 0) { - loc = "*" + location.getAddress(); + loc = "*" + location.getAddress(); //$NON-NLS-1$ } MIJump jump = factory.createMIJump(loc); lastExecutionCommand = jump; @@ -565,7 +566,7 @@ public class Target implements ICDITarget { mi.postCommand(jump); MIInfo info = jump.getMIInfo(); if (info == null) { - throw new CDIException("Target is not responding"); + throw new CDIException(CdiResources.getString("cdi.model.Target.Target_not_responding")); //$NON-NLS-1$ } } catch (MIException e) { throw new MI2CDIException(e); @@ -586,7 +587,7 @@ public class Target implements ICDITarget { MIDataEvaluateExpressionInfo info = evaluate.getMIDataEvaluateExpressionInfo(); if (info == null) { - throw new CDIException("Target is not responding"); + throw new CDIException(CdiResources.getString("cdi.model.Target.Target_not_responding")); //$NON-NLS-1$ } return info.getExpression(); } catch (MIException e) { @@ -644,12 +645,12 @@ public class Target implements ICDITarget { Session session = (Session)getSession(); MISession mi = session.getMISession(); CommandFactory factory = mi.getCommandFactory(); - MISignal signal = factory.createMISignal("0"); + MISignal signal = factory.createMISignal("0"); //$NON-NLS-1$ try { mi.postCommand(signal); MIInfo info = signal.getMIInfo(); if (info == null) { - throw new CDIException("Target is not responding"); + throw new CDIException(CdiResources.getString("cdi.model.Target.Target_not_responding")); //$NON-NLS-1$ } } catch (MIException e) { throw new MI2CDIException(e); @@ -668,7 +669,7 @@ public class Target implements ICDITarget { mi.postCommand(sig); MIInfo info = sig.getMIInfo(); if (info == null) { - throw new CDIException("Target is not responding"); + throw new CDIException(CdiResources.getString("cdi.model.Target.Target_not_responding")); //$NON-NLS-1$ } } catch (MIException e) { throw new MI2CDIException(e); diff --git a/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/model/Thread.java b/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/model/Thread.java index f1acc328ca4..7df550e0e47 100644 --- a/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/model/Thread.java +++ b/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/model/Thread.java @@ -16,6 +16,7 @@ import org.eclipse.cdt.debug.core.cdi.model.ICDITarget; import org.eclipse.cdt.debug.core.cdi.model.ICDIThread; import org.eclipse.cdt.debug.mi.core.MIException; import org.eclipse.cdt.debug.mi.core.MISession; +import org.eclipse.cdt.debug.mi.core.cdi.CdiResources; import org.eclipse.cdt.debug.mi.core.cdi.MI2CDIException; import org.eclipse.cdt.debug.mi.core.cdi.RegisterManager; import org.eclipse.cdt.debug.mi.core.cdi.Session; @@ -99,7 +100,7 @@ public class Thread extends CObject implements ICDIThread { mi.postCommand(frames); MIStackListFramesInfo info = frames.getMIStackListFramesInfo(); if (info == null) { - throw new CDIException("No answer"); + throw new CDIException(CdiResources.getString("cdi.Common.No_answer")); //$NON-NLS-1$ } MIFrame[] miFrames = info.getMIFrames(); for (int i = 0; i < miFrames.length; i++) { @@ -146,7 +147,7 @@ public class Thread extends CObject implements ICDIThread { // Catch the first exception gdb can recover the second time. info = depth.getMIStackInfoDepthInfo(); if (info == null) { - throw new CDIException("No answer"); + throw new CDIException(CdiResources.getString("cdi.Common.No_answer")); //$NON-NLS-1$ } stackdepth = info.getDepth(); } catch (MIException e) { @@ -155,7 +156,7 @@ public class Thread extends CObject implements ICDIThread { mi.postCommand(depth); info = depth.getMIStackInfoDepthInfo(); if (info == null) { - throw new CDIException("No answer"); + throw new CDIException(CdiResources.getString("cdi.Common.No_answer")); //$NON-NLS-1$ } stackdepth = info.getDepth(); if (stackdepth > 0) { @@ -199,7 +200,7 @@ public class Thread extends CObject implements ICDIThread { mi.postCommand(frames); MIStackListFramesInfo info = frames.getMIStackListFramesInfo(); if (info == null) { - throw new CDIException("No answer"); + throw new CDIException(CdiResources.getString("cdi.Common.No_answer")); //$NON-NLS-1$ } MIFrame[] miFrames = info.getMIFrames(); for (int i = 0; i < miFrames.length; i++) { @@ -264,7 +265,7 @@ public class Thread extends CObject implements ICDIThread { mi.postCommand(frame); MIInfo info = frame.getMIInfo(); if (info == null) { - throw new CDIException("No answer"); + throw new CDIException(CdiResources.getString("cdi.Common.No_answer")); //$NON-NLS-1$ } currentFrame = stackframe; // Resetting stackframe may change the value of diff --git a/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/model/Value.java b/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/model/Value.java index 43f710308fd..1a794e4c8bd 100644 --- a/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/model/Value.java +++ b/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/model/Value.java @@ -10,6 +10,7 @@ import org.eclipse.cdt.debug.core.cdi.model.ICDIValue; import org.eclipse.cdt.debug.core.cdi.model.ICDIVariable; import org.eclipse.cdt.debug.mi.core.MIException; import org.eclipse.cdt.debug.mi.core.MISession; +import org.eclipse.cdt.debug.mi.core.cdi.CdiResources; import org.eclipse.cdt.debug.mi.core.cdi.Session; import org.eclipse.cdt.debug.mi.core.command.CommandFactory; import org.eclipse.cdt.debug.mi.core.command.MIVarEvaluateExpression; @@ -37,7 +38,7 @@ public class Value extends CObject implements ICDIValue { * @see org.eclipse.cdt.debug.core.cdi.model.ICDIValue#getValueString() */ public String getValueString() throws CDIException { - String result = ""; + String result = ""; //$NON-NLS-1$ MISession mi = ((Session)(getTarget().getSession())).getMISession(); CommandFactory factory = mi.getCommandFactory(); MIVarEvaluateExpression var = @@ -46,7 +47,7 @@ public class Value extends CObject implements ICDIValue { mi.postCommand(var); MIVarEvaluateExpressionInfo info = var.getMIVarEvaluateExpressionInfo(); if (info == null) { - throw new CDIException("No answer"); + throw new CDIException(CdiResources.getString("cdi.Common.No_answer")); //$NON-NLS-1$ } result = info.getValue(); } catch (MIException e) { diff --git a/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/model/Variable.java b/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/model/Variable.java index e67d08371eb..949597d104e 100644 --- a/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/model/Variable.java +++ b/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/model/Variable.java @@ -31,6 +31,7 @@ import org.eclipse.cdt.debug.core.cdi.model.type.ICDIType; import org.eclipse.cdt.debug.core.cdi.model.type.ICDIWCharType; import org.eclipse.cdt.debug.mi.core.MIException; import org.eclipse.cdt.debug.mi.core.MISession; +import org.eclipse.cdt.debug.mi.core.cdi.CdiResources; import org.eclipse.cdt.debug.mi.core.cdi.Format; import org.eclipse.cdt.debug.mi.core.cdi.MI2CDIException; import org.eclipse.cdt.debug.mi.core.cdi.Session; @@ -113,18 +114,18 @@ public class Variable extends VariableObject implements ICDIVariable { mi.postCommand(var); MIVarInfoExpressionInfo info = var.getMIVarInfoExpressionInfo(); if (info == null) { - throw new CDIException("No answer"); + throw new CDIException(CdiResources.getString("cdi.Common.No_answer")); //$NON-NLS-1$ } language = info.getLanguage(); } catch (MIException e) { throw new MI2CDIException(e); } } - return (language == null) ? "" : language; + return (language == null) ? "" : language; //$NON-NLS-1$ } boolean isCPPLanguage() throws CDIException { - return getLanguage().equalsIgnoreCase("C++"); + return getLanguage().equalsIgnoreCase("C++"); //$NON-NLS-1$ } void setIsFake(boolean f) { @@ -157,7 +158,7 @@ public class Variable extends VariableObject implements ICDIVariable { } MIVarListChildrenInfo info = var.getMIVarListChildrenInfo(); if (info == null) { - throw new CDIException("No answer"); + throw new CDIException(CdiResources.getString("cdi.Common.No_answer")); //$NON-NLS-1$ } MIVar[] vars = info.getMIVars(); children = new Variable[vars.length]; @@ -168,12 +169,12 @@ public class Variable extends VariableObject implements ICDIVariable { boolean childFake = false; ICDIType t = getType(); if (t instanceof ICDIArrayType) { - fn = "(" + fn + ")[" + i + "]"; + fn = "(" + fn + ")[" + i + "]"; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ // For Array gdb varobj only return the index, override here. int index = castingIndex + i; - childName = getName() + "[" + index + "]"; + childName = getName() + "[" + index + "]"; //$NON-NLS-1$ //$NON-NLS-2$ } else if (t instanceof ICDIPointerType) { - fn = "*(" + fn + ")"; + fn = "*(" + fn + ")"; //$NON-NLS-1$ //$NON-NLS-2$ } else if (t instanceof ICDIStructType) { if (isCPPLanguage()) { // For C++ in GDB the children of the @@ -193,14 +194,14 @@ public class Variable extends VariableObject implements ICDIVariable { // So we choose to ignore the first set of children // but carry over to those "fake" variables the typename and the qualified name if (!isFake() - || (isFake() && !(name.equals("private") || name.equals("public") || name.equals("protected")))) { + || (isFake() && !(name.equals("private") || name.equals("public") || name.equals("protected")))) { //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ childFake = true; childTypename = getTypeName(); } else { - fn = "(" + fn + ")." + vars[i].getExp(); + fn = "(" + fn + ")." + vars[i].getExp(); //$NON-NLS-1$ //$NON-NLS-2$ } } else { // If not C++ language - fn = "(" + fn + ")." + vars[i].getExp(); + fn = "(" + fn + ")." + vars[i].getExp(); //$NON-NLS-1$ //$NON-NLS-2$ } } Variable v = new Variable(getTarget(), childName, fn, getStackFrame(), getPosition(), getStackDepth(), vars[i]); @@ -297,7 +298,7 @@ public class Variable extends VariableObject implements ICDIVariable { mi.postCommand(var); MIInfo info = var.getMIInfo(); if (info == null) { - throw new CDIException("No answer"); + throw new CDIException(CdiResources.getString("cdi.Common.No_answer")); //$NON-NLS-1$ } } catch (MIException e) { throw new MI2CDIException(e); @@ -348,14 +349,14 @@ public class Variable extends VariableObject implements ICDIVariable { mi.postCommand(var); MIVarShowAttributesInfo info = var.getMIVarShowAttributesInfo(); if (info == null) { - throw new CDIException("No answer"); + throw new CDIException(CdiResources.getString("cdi.Common.No_answer")); //$NON-NLS-1$ } editable = String.valueOf(info.isEditable()); } catch (MIException e) { throw new MI2CDIException(e); } } - return (editable == null) ? false : editable.equalsIgnoreCase("true"); + return (editable == null) ? false : editable.equalsIgnoreCase("true"); //$NON-NLS-1$ } /** @@ -370,7 +371,7 @@ public class Variable extends VariableObject implements ICDIVariable { mi.postCommand(var); MIInfo info = var.getMIInfo(); if (info == null) { - throw new CDIException("No answer"); + throw new CDIException(CdiResources.getString("cdi.Common.No_answer")); //$NON-NLS-1$ } } catch (MIException e) { throw new MI2CDIException(e); diff --git a/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/model/VariableObject.java b/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/model/VariableObject.java index b78fa20db6c..dbeb7613f92 100644 --- a/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/model/VariableObject.java +++ b/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/model/VariableObject.java @@ -28,6 +28,7 @@ import org.eclipse.cdt.debug.mi.core.command.MIDataEvaluateExpression; import org.eclipse.cdt.debug.mi.core.command.MIWhatis; import org.eclipse.cdt.debug.mi.core.output.MIDataEvaluateExpressionInfo; import org.eclipse.cdt.debug.mi.core.output.MIWhatisInfo; +import org.eclipse.cdt.debug.mi.core.cdi.CdiResources; /** */ @@ -119,7 +120,7 @@ public class VariableObject extends CObject implements ICDIVariableObject { String fn = getFullName(); if (castingLength > 0 || castingIndex > 0) { StringBuffer buffer = new StringBuffer(); - buffer.append("*("); + buffer.append("*("); //$NON-NLS-1$ buffer.append('(').append(fn).append(')'); if (castingIndex != 0) { buffer.append('+').append(castingIndex); @@ -129,7 +130,7 @@ public class VariableObject extends CObject implements ICDIVariableObject { fn = buffer.toString(); } else if (castingType != null && castingType.length() > 0) { StringBuffer buffer = new StringBuffer(); - buffer.append("((").append(castingType).append(')'); + buffer.append("((").append(castingType).append(')'); //$NON-NLS-1$ buffer.append(fn).append(')'); fn = buffer.toString(); } @@ -185,13 +186,13 @@ public class VariableObject extends CObject implements ICDIVariableObject { Session session = (Session) (target.getSession()); MISession mi = session.getMISession(); CommandFactory factory = mi.getCommandFactory(); - String exp = "sizeof(" + getTypeName() + ")"; + String exp = "sizeof(" + getTypeName() + ")"; //$NON-NLS-1$ //$NON-NLS-2$ MIDataEvaluateExpression evaluate = factory.createMIDataEvaluateExpression(exp); try { mi.postCommand(evaluate); MIDataEvaluateExpressionInfo info = evaluate.getMIDataEvaluateExpressionInfo(); if (info == null) { - throw new CDIException("Target is not responding"); + throw new CDIException(CdiResources.getString("cdi.model.VariableObject.Target_not_responding")); //$NON-NLS-1$ } sizeof = info.getExpression(); } catch (MIException e) { @@ -244,7 +245,7 @@ public class VariableObject extends CObject implements ICDIVariableObject { mi.postCommand(whatis); MIWhatisInfo info = whatis.getMIWhatisInfo(); if (info == null) { - throw new CDIException("No answer"); + throw new CDIException(CdiResources.getString("cdi.Common.No_answer")); //$NON-NLS-1$ } typename = info.getType(); } catch (MIException e) { diff --git a/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/model/Watchpoint.java b/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/model/Watchpoint.java index 7ab814166de..e06a71265d1 100644 --- a/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/model/Watchpoint.java +++ b/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/model/Watchpoint.java @@ -19,7 +19,7 @@ public class Watchpoint extends Breakpoint implements ICDIWatchpoint { String what; public Watchpoint(BreakpointManager m, String expression, int type, int wType, ICDICondition cond) { - super(m, type, null, cond, ""); + super(m, type, null, cond, ""); //$NON-NLS-1$ watchType = wType; what = expression; } diff --git a/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/model/type/FloatingPointValue.java b/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/model/type/FloatingPointValue.java index 47f68d02a69..12d5f804238 100644 --- a/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/model/type/FloatingPointValue.java +++ b/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/model/type/FloatingPointValue.java @@ -64,14 +64,14 @@ public abstract class FloatingPointValue extends Value implements ICDIFloatingPo } private boolean isPositiveInfinity(String valueString) { - return (valueString != null) ? valueString.indexOf("inf") != -1 : false; + return (valueString != null) ? valueString.indexOf("inf") != -1 : false; //$NON-NLS-1$ } private boolean isNegativeInfinity(String valueString) { - return (valueString != null) ? valueString.indexOf("-inf") != -1 : false; + return (valueString != null) ? valueString.indexOf("-inf") != -1 : false; //$NON-NLS-1$ } private boolean isNaN(String valueString) { - return (valueString != null) ? valueString.indexOf("nan") != -1 : false; + return (valueString != null) ? valueString.indexOf("nan") != -1 : false; //$NON-NLS-1$ } } diff --git a/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/model/type/FunctionType.java b/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/model/type/FunctionType.java index ef595b30afe..f74fd3ac783 100644 --- a/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/model/type/FunctionType.java +++ b/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/model/type/FunctionType.java @@ -13,7 +13,7 @@ import org.eclipse.cdt.debug.core.cdi.model.type.ICDIType; */ public class FunctionType extends DerivedType implements ICDIFunctionType { - String params = ""; + String params = ""; //$NON-NLS-1$ public FunctionType(ICDITarget target, String typename) { super(target, typename); diff --git a/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/model/type/ReferenceValue.java b/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/model/type/ReferenceValue.java index dc075b1fbaa..2a2d6b2a968 100644 --- a/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/model/type/ReferenceValue.java +++ b/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/model/type/ReferenceValue.java @@ -30,9 +30,9 @@ public class ReferenceValue extends DerivedValue implements ICDIReferenceValue { public long referenceValue() throws CDIException { long value = 0; String valueString = getValueString().trim(); - if ( valueString.startsWith("@") ) + if ( valueString.startsWith("@") ) //$NON-NLS-1$ valueString = valueString.substring( 1 ); - int space = valueString.indexOf(":"); + int space = valueString.indexOf(":"); //$NON-NLS-1$ if (space != -1) { valueString = valueString.substring(0, space).trim(); } diff --git a/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/model/type/StructType.java b/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/model/type/StructType.java index 6ee857bced4..8f8bd44cc0a 100644 --- a/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/model/type/StructType.java +++ b/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/model/type/StructType.java @@ -25,21 +25,21 @@ public class StructType extends AggregateType implements ICDIStructType { * @see org.eclipse.cdt.debug.core.cdi.model.type.ICDIStructType#isClass() */ public boolean isClass() { - return getDetailTypeName().startsWith("class"); + return getDetailTypeName().startsWith("class"); //$NON-NLS-1$ } /* (non-Javadoc) * @see org.eclipse.cdt.debug.core.cdi.model.type.ICDIStructType#isStruct() */ public boolean isStruct() { - return getDetailTypeName().startsWith("struct"); + return getDetailTypeName().startsWith("struct"); //$NON-NLS-1$ } /* (non-Javadoc) * @see org.eclipse.cdt.debug.core.cdi.model.type.ICDIStructType#isUnion() */ public boolean isUnion() { - return getDetailTypeName().startsWith("union"); + return getDetailTypeName().startsWith("union"); //$NON-NLS-1$ } } diff --git a/debug/org.eclipse.cdt.debug.mi.core/mi/org/eclipse/cdt/debug/mi/core/command/MIEnvironmentDirectory.java b/debug/org.eclipse.cdt.debug.mi.core/mi/org/eclipse/cdt/debug/mi/core/command/MIEnvironmentDirectory.java index 6dd7168a6b4..7afc3f66a2a 100644 --- a/debug/org.eclipse.cdt.debug.mi.core/mi/org/eclipse/cdt/debug/mi/core/command/MIEnvironmentDirectory.java +++ b/debug/org.eclipse.cdt.debug.mi.core/mi/org/eclipse/cdt/debug/mi/core/command/MIEnvironmentDirectory.java @@ -16,7 +16,7 @@ package org.eclipse.cdt.debug.mi.core.command; public class MIEnvironmentDirectory extends MICommand { public MIEnvironmentDirectory(String[] paths) { - super("-environment-directory", paths); + super("-environment-directory", paths); //$NON-NLS-1$ } } diff --git a/debug/org.eclipse.cdt.debug.mi.core/mi/org/eclipse/cdt/debug/mi/core/command/MIExecArguments.java b/debug/org.eclipse.cdt.debug.mi.core/mi/org/eclipse/cdt/debug/mi/core/command/MIExecArguments.java index 17cf2c15926..201533148d7 100644 --- a/debug/org.eclipse.cdt.debug.mi.core/mi/org/eclipse/cdt/debug/mi/core/command/MIExecArguments.java +++ b/debug/org.eclipse.cdt.debug.mi.core/mi/org/eclipse/cdt/debug/mi/core/command/MIExecArguments.java @@ -17,6 +17,6 @@ package org.eclipse.cdt.debug.mi.core.command; public class MIExecArguments extends MICommand { public MIExecArguments(String[] args) { - super("-exec-arguments", args); + super("-exec-arguments", args); //$NON-NLS-1$ } } diff --git a/debug/org.eclipse.cdt.debug.mi.core/mi/org/eclipse/cdt/debug/mi/core/command/MIGDBSetEnvironment.java b/debug/org.eclipse.cdt.debug.mi.core/mi/org/eclipse/cdt/debug/mi/core/command/MIGDBSetEnvironment.java index f2612ad4406..544883c6cf7 100644 --- a/debug/org.eclipse.cdt.debug.mi.core/mi/org/eclipse/cdt/debug/mi/core/command/MIGDBSetEnvironment.java +++ b/debug/org.eclipse.cdt.debug.mi.core/mi/org/eclipse/cdt/debug/mi/core/command/MIGDBSetEnvironment.java @@ -19,7 +19,7 @@ public class MIGDBSetEnvironment extends MIGDBSet { super(paths); // Overload the parameter String[] newPaths = new String[paths.length + 1]; - newPaths[0] = "environment"; + newPaths[0] = "environment"; //$NON-NLS-1$ System.arraycopy(paths, 0, newPaths, 1, paths.length); setParameters(newPaths); } diff --git a/debug/org.eclipse.cdt.debug.mi.core/mi/org/eclipse/cdt/debug/mi/core/command/MIGDBShowDirectories.java b/debug/org.eclipse.cdt.debug.mi.core/mi/org/eclipse/cdt/debug/mi/core/command/MIGDBShowDirectories.java index 2daf09f87ef..3fa03942652 100644 --- a/debug/org.eclipse.cdt.debug.mi.core/mi/org/eclipse/cdt/debug/mi/core/command/MIGDBShowDirectories.java +++ b/debug/org.eclipse.cdt.debug.mi.core/mi/org/eclipse/cdt/debug/mi/core/command/MIGDBShowDirectories.java @@ -20,7 +20,7 @@ import org.eclipse.cdt.debug.mi.core.output.MIOutput; */ public class MIGDBShowDirectories extends MIGDBShow { public MIGDBShowDirectories() { - super(new String[] { "directories" }); + super(new String[] { "directories" }); //$NON-NLS-1$ } public MIGDBShowDirectoriesInfo getMIGDBShowDirectoriesInfo() throws MIException { diff --git a/debug/org.eclipse.cdt.debug.mi.core/mi/org/eclipse/cdt/debug/mi/core/command/MIGDBShowSolibSearchPath.java b/debug/org.eclipse.cdt.debug.mi.core/mi/org/eclipse/cdt/debug/mi/core/command/MIGDBShowSolibSearchPath.java index 1cb287252e4..8409fa58a76 100644 --- a/debug/org.eclipse.cdt.debug.mi.core/mi/org/eclipse/cdt/debug/mi/core/command/MIGDBShowSolibSearchPath.java +++ b/debug/org.eclipse.cdt.debug.mi.core/mi/org/eclipse/cdt/debug/mi/core/command/MIGDBShowSolibSearchPath.java @@ -20,7 +20,7 @@ import org.eclipse.cdt.debug.mi.core.output.MIOutput; */ public class MIGDBShowSolibSearchPath extends MIGDBShow { public MIGDBShowSolibSearchPath() { - super(new String[] { "solib-search-path" }); + super(new String[] { "solib-search-path" }); //$NON-NLS-1$ } public MIGDBShowSolibSearchPathInfo getMIGDBShowSolibSearchPathInfo() throws MIException { diff --git a/debug/org.eclipse.cdt.debug.mi.core/mi/org/eclipse/cdt/debug/mi/core/command/MIHandle.java b/debug/org.eclipse.cdt.debug.mi.core/mi/org/eclipse/cdt/debug/mi/core/command/MIHandle.java index 5b7e1448845..cf0c36d4f65 100644 --- a/debug/org.eclipse.cdt.debug.mi.core/mi/org/eclipse/cdt/debug/mi/core/command/MIHandle.java +++ b/debug/org.eclipse.cdt.debug.mi.core/mi/org/eclipse/cdt/debug/mi/core/command/MIHandle.java @@ -16,7 +16,7 @@ package org.eclipse.cdt.debug.mi.core.command; public class MIHandle extends CLICommand { public MIHandle(String arg) { - super("handle " + arg); + super("handle " + arg); //$NON-NLS-1$ } } diff --git a/debug/org.eclipse.cdt.debug.mi.core/mi/org/eclipse/cdt/debug/mi/core/command/MIInfoProgram.java b/debug/org.eclipse.cdt.debug.mi.core/mi/org/eclipse/cdt/debug/mi/core/command/MIInfoProgram.java index a0b3257f866..16b77e92873 100644 --- a/debug/org.eclipse.cdt.debug.mi.core/mi/org/eclipse/cdt/debug/mi/core/command/MIInfoProgram.java +++ b/debug/org.eclipse.cdt.debug.mi.core/mi/org/eclipse/cdt/debug/mi/core/command/MIInfoProgram.java @@ -19,7 +19,7 @@ import org.eclipse.cdt.debug.mi.core.output.MIOutput; public class MIInfoProgram extends CLICommand { public MIInfoProgram() { - super("info program"); + super("info program"); //$NON-NLS-1$ } public MIInfoProgramInfo getMIInfoProgramInfo() throws MIException { diff --git a/debug/org.eclipse.cdt.debug.mi.core/mi/org/eclipse/cdt/debug/mi/core/command/MIInfoSharedLibrary.java b/debug/org.eclipse.cdt.debug.mi.core/mi/org/eclipse/cdt/debug/mi/core/command/MIInfoSharedLibrary.java index 1a3bbab3256..66e97b5ba5c 100644 --- a/debug/org.eclipse.cdt.debug.mi.core/mi/org/eclipse/cdt/debug/mi/core/command/MIInfoSharedLibrary.java +++ b/debug/org.eclipse.cdt.debug.mi.core/mi/org/eclipse/cdt/debug/mi/core/command/MIInfoSharedLibrary.java @@ -19,7 +19,7 @@ import org.eclipse.cdt.debug.mi.core.output.MIOutput; public class MIInfoSharedLibrary extends CLICommand { public MIInfoSharedLibrary() { - super("info sharedlibrary"); + super("info sharedlibrary"); //$NON-NLS-1$ } public MIInfoSharedLibraryInfo getMIInfoSharedLibraryInfo() throws MIException { diff --git a/debug/org.eclipse.cdt.debug.mi.core/mi/org/eclipse/cdt/debug/mi/core/command/MIInfoSignals.java b/debug/org.eclipse.cdt.debug.mi.core/mi/org/eclipse/cdt/debug/mi/core/command/MIInfoSignals.java index db3c2f67736..4205081c46d 100644 --- a/debug/org.eclipse.cdt.debug.mi.core/mi/org/eclipse/cdt/debug/mi/core/command/MIInfoSignals.java +++ b/debug/org.eclipse.cdt.debug.mi.core/mi/org/eclipse/cdt/debug/mi/core/command/MIInfoSignals.java @@ -19,11 +19,11 @@ import org.eclipse.cdt.debug.mi.core.output.MIOutput; public class MIInfoSignals extends CLICommand { public MIInfoSignals() { - super("info signals"); + super("info signals"); //$NON-NLS-1$ } public MIInfoSignals(String name) { - super("info signal " + name); + super("info signal " + name); //$NON-NLS-1$ } public MIInfoSignalsInfo getMIInfoSignalsInfo() throws MIException { diff --git a/debug/org.eclipse.cdt.debug.mi.core/mi/org/eclipse/cdt/debug/mi/core/command/MIInfoThreads.java b/debug/org.eclipse.cdt.debug.mi.core/mi/org/eclipse/cdt/debug/mi/core/command/MIInfoThreads.java index 6f57f6b81b5..0039ae966ba 100644 --- a/debug/org.eclipse.cdt.debug.mi.core/mi/org/eclipse/cdt/debug/mi/core/command/MIInfoThreads.java +++ b/debug/org.eclipse.cdt.debug.mi.core/mi/org/eclipse/cdt/debug/mi/core/command/MIInfoThreads.java @@ -19,7 +19,7 @@ import org.eclipse.cdt.debug.mi.core.output.MIOutput; public class MIInfoThreads extends CLICommand { public MIInfoThreads() { - super("info threads"); + super("info threads"); //$NON-NLS-1$ } public MIInfoThreadsInfo getMIInfoThreadsInfo() throws MIException { diff --git a/debug/org.eclipse.cdt.debug.mi.core/mi/org/eclipse/cdt/debug/mi/core/command/MIJump.java b/debug/org.eclipse.cdt.debug.mi.core/mi/org/eclipse/cdt/debug/mi/core/command/MIJump.java index 941ddbcc29b..eee80eafa24 100644 --- a/debug/org.eclipse.cdt.debug.mi.core/mi/org/eclipse/cdt/debug/mi/core/command/MIJump.java +++ b/debug/org.eclipse.cdt.debug.mi.core/mi/org/eclipse/cdt/debug/mi/core/command/MIJump.java @@ -20,7 +20,7 @@ public class MIJump extends CLICommand { MIOutput out; public MIJump(String loc) { - super("jump " + loc); + super("jump " + loc); //$NON-NLS-1$ } /** diff --git a/debug/org.eclipse.cdt.debug.mi.core/mi/org/eclipse/cdt/debug/mi/core/command/MISignal.java b/debug/org.eclipse.cdt.debug.mi.core/mi/org/eclipse/cdt/debug/mi/core/command/MISignal.java index 709910f09ce..30c91f6d18a 100644 --- a/debug/org.eclipse.cdt.debug.mi.core/mi/org/eclipse/cdt/debug/mi/core/command/MISignal.java +++ b/debug/org.eclipse.cdt.debug.mi.core/mi/org/eclipse/cdt/debug/mi/core/command/MISignal.java @@ -21,7 +21,7 @@ public class MISignal extends CLICommand { MIOutput out; public MISignal(String arg) { - super("signal " + arg); + super("signal " + arg); //$NON-NLS-1$ } /** diff --git a/debug/org.eclipse.cdt.debug.mi.core/mi/org/eclipse/cdt/debug/mi/core/command/MITargetSelect.java b/debug/org.eclipse.cdt.debug.mi.core/mi/org/eclipse/cdt/debug/mi/core/command/MITargetSelect.java index 50465eb4079..fe8bce972d5 100644 --- a/debug/org.eclipse.cdt.debug.mi.core/mi/org/eclipse/cdt/debug/mi/core/command/MITargetSelect.java +++ b/debug/org.eclipse.cdt.debug.mi.core/mi/org/eclipse/cdt/debug/mi/core/command/MITargetSelect.java @@ -29,6 +29,6 @@ package org.eclipse.cdt.debug.mi.core.command; public class MITargetSelect extends MICommand { public MITargetSelect(String[] params) { - super("-target-select", params); + super("-target-select", params); //$NON-NLS-1$ } } diff --git a/debug/org.eclipse.cdt.debug.mi.core/mi/org/eclipse/cdt/debug/mi/core/command/MIVarDelete.java b/debug/org.eclipse.cdt.debug.mi.core/mi/org/eclipse/cdt/debug/mi/core/command/MIVarDelete.java index 8c206b6a97d..5c052295523 100644 --- a/debug/org.eclipse.cdt.debug.mi.core/mi/org/eclipse/cdt/debug/mi/core/command/MIVarDelete.java +++ b/debug/org.eclipse.cdt.debug.mi.core/mi/org/eclipse/cdt/debug/mi/core/command/MIVarDelete.java @@ -23,7 +23,7 @@ import org.eclipse.cdt.debug.mi.core.output.MIVarDeleteInfo; public class MIVarDelete extends MICommand { public MIVarDelete(String name) { - super("-var-delete", new String[]{name}); + super("-var-delete", new String[]{name}); //$NON-NLS-1$ } public MIVarDeleteInfo getMIVarDeleteInfo() throws MIException { diff --git a/debug/org.eclipse.cdt.debug.mi.core/mi/org/eclipse/cdt/debug/mi/core/command/MIVarSetFormat.java b/debug/org.eclipse.cdt.debug.mi.core/mi/org/eclipse/cdt/debug/mi/core/command/MIVarSetFormat.java index 0dfda84fc1b..8544c132692 100644 --- a/debug/org.eclipse.cdt.debug.mi.core/mi/org/eclipse/cdt/debug/mi/core/command/MIVarSetFormat.java +++ b/debug/org.eclipse.cdt.debug.mi.core/mi/org/eclipse/cdt/debug/mi/core/command/MIVarSetFormat.java @@ -25,19 +25,19 @@ public class MIVarSetFormat extends MICommand { public MIVarSetFormat(String name, int fmt) { super("-var-set-format"); //$NON-NLS-1$ - String format = "hexadecimal"; + String format = "hexadecimal"; //$NON-NLS-1$ switch (fmt) { case MIFormat.NATURAL: - format = "natural"; + format = "natural"; //$NON-NLS-1$ break; case MIFormat.DECIMAL: - format = "decimal"; + format = "decimal"; //$NON-NLS-1$ break; case MIFormat.BINARY: - format = "binary"; + format = "binary"; //$NON-NLS-1$ break; case MIFormat.OCTAL: - format = "octal"; + format = "octal"; //$NON-NLS-1$ break; /* case MIFormat.HEXADECIMAL: diff --git a/debug/org.eclipse.cdt.debug.mi.core/mi/org/eclipse/cdt/debug/mi/core/command/MIVarUpdate.java b/debug/org.eclipse.cdt.debug.mi.core/mi/org/eclipse/cdt/debug/mi/core/command/MIVarUpdate.java index 48daf152ead..7b50d189f74 100644 --- a/debug/org.eclipse.cdt.debug.mi.core/mi/org/eclipse/cdt/debug/mi/core/command/MIVarUpdate.java +++ b/debug/org.eclipse.cdt.debug.mi.core/mi/org/eclipse/cdt/debug/mi/core/command/MIVarUpdate.java @@ -27,7 +27,7 @@ public class MIVarUpdate extends MICommand { } public MIVarUpdate(String name) { - super("-var-update", new String[] { name }); + super("-var-update", new String[] { name }); //$NON-NLS-1$ } public MIVarUpdateInfo getMIVarUpdateInfo() throws MIException { diff --git a/debug/org.eclipse.cdt.debug.mi.core/mi/org/eclipse/cdt/debug/mi/core/event/MIBreakpointHitEvent.java b/debug/org.eclipse.cdt.debug.mi.core/mi/org/eclipse/cdt/debug/mi/core/event/MIBreakpointHitEvent.java index 5459cdf5452..fbf2de3b4a9 100644 --- a/debug/org.eclipse.cdt.debug.mi.core/mi/org/eclipse/cdt/debug/mi/core/event/MIBreakpointHitEvent.java +++ b/debug/org.eclipse.cdt.debug.mi.core/mi/org/eclipse/cdt/debug/mi/core/event/MIBreakpointHitEvent.java @@ -42,8 +42,8 @@ public class MIBreakpointHitEvent extends MIStoppedEvent { public String toString() { StringBuffer buffer = new StringBuffer(); - buffer.append("number=").append(bkptno).append('\n'); - buffer.append("thread-id=").append(getThreadId()).append('\n'); + buffer.append("number=").append(bkptno).append('\n'); //$NON-NLS-1$ + buffer.append("thread-id=").append(getThreadId()).append('\n'); //$NON-NLS-1$ buffer.append(frame.toString()); return buffer.toString(); } diff --git a/debug/org.eclipse.cdt.debug.mi.core/mi/org/eclipse/cdt/debug/mi/core/event/MIDetachedEvent.java b/debug/org.eclipse.cdt.debug.mi.core/mi/org/eclipse/cdt/debug/mi/core/event/MIDetachedEvent.java index 4de71c0fce0..d807960c8d8 100644 --- a/debug/org.eclipse.cdt.debug.mi.core/mi/org/eclipse/cdt/debug/mi/core/event/MIDetachedEvent.java +++ b/debug/org.eclipse.cdt.debug.mi.core/mi/org/eclipse/cdt/debug/mi/core/event/MIDetachedEvent.java @@ -18,6 +18,6 @@ public class MIDetachedEvent extends MIDestroyedEvent { } public String toString() { - return "Detached"; + return "Detached"; //$NON-NLS-1$ } } diff --git a/debug/org.eclipse.cdt.debug.mi.core/mi/org/eclipse/cdt/debug/mi/core/event/MIFunctionFinishedEvent.java b/debug/org.eclipse.cdt.debug.mi.core/mi/org/eclipse/cdt/debug/mi/core/event/MIFunctionFinishedEvent.java index 637dad4b415..42bc3da9682 100644 --- a/debug/org.eclipse.cdt.debug.mi.core/mi/org/eclipse/cdt/debug/mi/core/event/MIFunctionFinishedEvent.java +++ b/debug/org.eclipse.cdt.debug.mi.core/mi/org/eclipse/cdt/debug/mi/core/event/MIFunctionFinishedEvent.java @@ -41,9 +41,9 @@ public class MIFunctionFinishedEvent extends MIStoppedEvent { public String toString() { StringBuffer buffer = new StringBuffer(); - buffer.append("gdb-result-var=" + gdbResult + "\n"); //$NON-NLS-2$ - buffer.append("return-value=" + returnValue + "\n"); //$NON-NLS-2$ - buffer.append("thread-id=").append(getThreadId()).append('\n'); + buffer.append("gdb-result-var=" + gdbResult + "\n"); //$NON-NLS-1$//$NON-NLS-2$ + buffer.append("return-value=" + returnValue + "\n"); //$NON-NLS-1$//$NON-NLS-2$ + buffer.append("thread-id=").append(getThreadId()).append('\n'); //$NON-NLS-1$ MIFrame f = getFrame(); if (f != null) { buffer.append(f.toString()); diff --git a/debug/org.eclipse.cdt.debug.mi.core/mi/org/eclipse/cdt/debug/mi/core/event/MIInferiorSignalExitEvent.java b/debug/org.eclipse.cdt.debug.mi.core/mi/org/eclipse/cdt/debug/mi/core/event/MIInferiorSignalExitEvent.java index 08a143641e8..aa107f09962 100644 --- a/debug/org.eclipse.cdt.debug.mi.core/mi/org/eclipse/cdt/debug/mi/core/event/MIInferiorSignalExitEvent.java +++ b/debug/org.eclipse.cdt.debug.mi.core/mi/org/eclipse/cdt/debug/mi/core/event/MIInferiorSignalExitEvent.java @@ -47,8 +47,8 @@ public class MIInferiorSignalExitEvent extends MIDestroyedEvent { public String toString() { StringBuffer buffer = new StringBuffer(); - buffer.append("signal-name=" + sigName + "\n"); //$NON-NLS-2$ - buffer.append("signal-meaning=" + sigMeaning + "\n"); //$NON-NLS-2$ + buffer.append("signal-name=" + sigName + "\n"); //$NON-NLS-1$//$NON-NLS-2$ + buffer.append("signal-meaning=" + sigMeaning + "\n"); //$NON-NLS-1$//$NON-NLS-2$ return buffer.toString(); } diff --git a/debug/org.eclipse.cdt.debug.mi.core/mi/org/eclipse/cdt/debug/mi/core/event/MILocationReachedEvent.java b/debug/org.eclipse.cdt.debug.mi.core/mi/org/eclipse/cdt/debug/mi/core/event/MILocationReachedEvent.java index 6e17e59a1d8..33c5355944c 100644 --- a/debug/org.eclipse.cdt.debug.mi.core/mi/org/eclipse/cdt/debug/mi/core/event/MILocationReachedEvent.java +++ b/debug/org.eclipse.cdt.debug.mi.core/mi/org/eclipse/cdt/debug/mi/core/event/MILocationReachedEvent.java @@ -30,7 +30,7 @@ public class MILocationReachedEvent extends MIStoppedEvent { public String toString() { StringBuffer buffer = new StringBuffer(); - buffer.append("thread-id=").append(getThreadId()).append('\n'); + buffer.append("thread-id=").append(getThreadId()).append('\n'); //$NON-NLS-1$ MIFrame f = getFrame(); if (f != null) { buffer.append(f.toString()); diff --git a/debug/org.eclipse.cdt.debug.mi.core/mi/org/eclipse/cdt/debug/mi/core/event/MIRunningEvent.java b/debug/org.eclipse.cdt.debug.mi.core/mi/org/eclipse/cdt/debug/mi/core/event/MIRunningEvent.java index d5b5167d810..1931bdb8f23 100644 --- a/debug/org.eclipse.cdt.debug.mi.core/mi/org/eclipse/cdt/debug/mi/core/event/MIRunningEvent.java +++ b/debug/org.eclipse.cdt.debug.mi.core/mi/org/eclipse/cdt/debug/mi/core/event/MIRunningEvent.java @@ -34,6 +34,6 @@ public class MIRunningEvent extends MIEvent { } public String toString() { - return "Running"; + return "Running"; //$NON-NLS-1$ } } diff --git a/debug/org.eclipse.cdt.debug.mi.core/mi/org/eclipse/cdt/debug/mi/core/event/MISignalEvent.java b/debug/org.eclipse.cdt.debug.mi.core/mi/org/eclipse/cdt/debug/mi/core/event/MISignalEvent.java index 2732697f768..178cb9ef76d 100644 --- a/debug/org.eclipse.cdt.debug.mi.core/mi/org/eclipse/cdt/debug/mi/core/event/MISignalEvent.java +++ b/debug/org.eclipse.cdt.debug.mi.core/mi/org/eclipse/cdt/debug/mi/core/event/MISignalEvent.java @@ -42,9 +42,9 @@ public class MISignalEvent extends MIStoppedEvent { public String toString() { StringBuffer buffer = new StringBuffer(); - buffer.append("signal-name=" + sigName + "\n"); - buffer.append("signal-meaning=" + sigMeaning + "\n"); - buffer.append("thread-id=").append(getThreadId()).append('\n'); + buffer.append("signal-name=" + sigName + "\n"); //$NON-NLS-1$ //$NON-NLS-2$ + buffer.append("signal-meaning=" + sigMeaning + "\n"); //$NON-NLS-1$ //$NON-NLS-2$ + buffer.append("thread-id=").append(getThreadId()).append('\n'); //$NON-NLS-1$ MIFrame f = getFrame(); if (f != null) { buffer.append(f.toString()); diff --git a/debug/org.eclipse.cdt.debug.mi.core/mi/org/eclipse/cdt/debug/mi/core/event/MISteppingRangeEvent.java b/debug/org.eclipse.cdt.debug.mi.core/mi/org/eclipse/cdt/debug/mi/core/event/MISteppingRangeEvent.java index c0d7dcd0bba..c0d3d3dbd75 100644 --- a/debug/org.eclipse.cdt.debug.mi.core/mi/org/eclipse/cdt/debug/mi/core/event/MISteppingRangeEvent.java +++ b/debug/org.eclipse.cdt.debug.mi.core/mi/org/eclipse/cdt/debug/mi/core/event/MISteppingRangeEvent.java @@ -31,7 +31,7 @@ public class MISteppingRangeEvent extends MIStoppedEvent { public String toString() { StringBuffer buffer = new StringBuffer(); - buffer.append("thread-id=").append(getThreadId()).append('\n'); + buffer.append("thread-id=").append(getThreadId()).append('\n'); //$NON-NLS-1$ MIFrame f = getFrame(); if (f != null) { buffer.append(getFrame().toString()); diff --git a/debug/org.eclipse.cdt.debug.mi.core/mi/org/eclipse/cdt/debug/mi/core/event/MIWatchpointTriggerEvent.java b/debug/org.eclipse.cdt.debug.mi.core/mi/org/eclipse/cdt/debug/mi/core/event/MIWatchpointTriggerEvent.java index 9495f1c826b..7663f2d0acf 100644 --- a/debug/org.eclipse.cdt.debug.mi.core/mi/org/eclipse/cdt/debug/mi/core/event/MIWatchpointTriggerEvent.java +++ b/debug/org.eclipse.cdt.debug.mi.core/mi/org/eclipse/cdt/debug/mi/core/event/MIWatchpointTriggerEvent.java @@ -53,11 +53,11 @@ public class MIWatchpointTriggerEvent extends MIStoppedEvent { public String toString() { StringBuffer buffer = new StringBuffer(); - buffer.append("number=").append(number).append('\n'); - buffer.append("expression=" + exp + "\n"); //$NON-NLS-2$ - buffer.append("old=" + oldValue + "\n"); //$NON-NLS-2$ - buffer.append("new=" + newValue + "\n"); //$NON-NLS-2$ - buffer.append("thread-id=").append(getThreadId()).append('\n'); + buffer.append("number=").append(number).append('\n'); //$NON-NLS-1$ + buffer.append("expression=" + exp + "\n"); //$NON-NLS-1$//$NON-NLS-2$ + buffer.append("old=" + oldValue + "\n"); //$NON-NLS-1$//$NON-NLS-2$ + buffer.append("new=" + newValue + "\n"); //$NON-NLS-1$//$NON-NLS-2$ + buffer.append("thread-id=").append(getThreadId()).append('\n'); //$NON-NLS-1$ MIFrame f = getFrame(); if (f != null) { buffer.append(f.toString()); diff --git a/debug/org.eclipse.cdt.debug.mi.core/mi/org/eclipse/cdt/debug/mi/core/output/MIAsm.java b/debug/org.eclipse.cdt.debug.mi.core/mi/org/eclipse/cdt/debug/mi/core/output/MIAsm.java index dd5f8062b45..80894e6756e 100644 --- a/debug/org.eclipse.cdt.debug.mi.core/mi/org/eclipse/cdt/debug/mi/core/output/MIAsm.java +++ b/debug/org.eclipse.cdt.debug.mi.core/mi/org/eclipse/cdt/debug/mi/core/output/MIAsm.java @@ -38,10 +38,10 @@ public class MIAsm { public String toString() { StringBuffer buffer = new StringBuffer(); buffer.append('{'); - buffer.append("address=\"" + Long.toHexString(address) +"\""); //$NON-NLS-2$ - buffer.append(",func-name=\"" + function + "\""); //$NON-NLS-2$ - buffer.append(",offset=\"").append(offset).append('"'); - buffer.append(",inst=\"" + getInstruction() + "\""); //$NON-NLS-2$ + buffer.append("address=\"" + Long.toHexString(address) +"\""); //$NON-NLS-1$//$NON-NLS-2$ + buffer.append(",func-name=\"" + function + "\""); //$NON-NLS-1$//$NON-NLS-2$ + buffer.append(",offset=\"").append(offset).append('"'); //$NON-NLS-1$ + buffer.append(",inst=\"" + getInstruction() + "\""); //$NON-NLS-1$//$NON-NLS-2$ buffer.append('}'); return buffer.toString(); } @@ -57,19 +57,19 @@ public class MIAsm { str = ((MIConst)value).getCString(); } - if (var.equals("address")) { + if (var.equals("address")) { //$NON-NLS-1$ try { address = Long.decode(str.trim()).longValue(); } catch (NumberFormatException e) { } - } else if (var.equals("func-name")) { + } else if (var.equals("func-name")) { //$NON-NLS-1$ function = str; - } else if (var.equals("offset")) { + } else if (var.equals("offset")) { //$NON-NLS-1$ try { offset = Long.decode(str.trim()).longValue(); } catch (NumberFormatException e) { } - } else if (var.equals("inst")) { + } else if (var.equals("inst")) { //$NON-NLS-1$ /* for the instruction, we do not want the C string but the translated string since the only thing we are doing is displaying it. */ diff --git a/debug/org.eclipse.cdt.debug.mi.core/mi/org/eclipse/cdt/debug/mi/core/output/MIBreakpoint.java b/debug/org.eclipse.cdt.debug.mi.core/mi/org/eclipse/cdt/debug/mi/core/output/MIBreakpoint.java index ca2a3756aab..36c8c5508a6 100644 --- a/debug/org.eclipse.cdt.debug.mi.core/mi/org/eclipse/cdt/debug/mi/core/output/MIBreakpoint.java +++ b/debug/org.eclipse.cdt.debug.mi.core/mi/org/eclipse/cdt/debug/mi/core/output/MIBreakpoint.java @@ -81,7 +81,7 @@ public class MIBreakpoint { } public boolean isTemporary() { - return getDisposition().equals("del"); + return getDisposition().equals("del"); //$NON-NLS-1$ } public boolean isWatchpoint() { @@ -219,7 +219,7 @@ public class MIBreakpoint { } else if (var.equals("disp")) { //$NON-NLS-1$ disp = str; } else if (var.equals("enabled")) { //$NON-NLS-1$ - enabled = str.equals("y"); + enabled = str.equals("y"); //$NON-NLS-1$ } else if (var.equals("addr")) { //$NON-NLS-1$ try { address = Long.decode(str.trim()).longValue(); diff --git a/debug/org.eclipse.cdt.debug.mi.core/mi/org/eclipse/cdt/debug/mi/core/output/MIConst.java b/debug/org.eclipse.cdt.debug.mi.core/mi/org/eclipse/cdt/debug/mi/core/output/MIConst.java index 7eabad5f41a..a561f420581 100644 --- a/debug/org.eclipse.cdt.debug.mi.core/mi/org/eclipse/cdt/debug/mi/core/output/MIConst.java +++ b/debug/org.eclipse.cdt.debug.mi.core/mi/org/eclipse/cdt/debug/mi/core/output/MIConst.java @@ -80,7 +80,7 @@ public class MIConst extends MIValue { } else if (c == 'f') { s = "\f"; //$NON-NLS-1$ } else if (c == 'n') { - s = System.getProperty("line.separator", "\n"); //$NON-NLS-1$ $NON-NLS-2$ + s = System.getProperty("line.separator", "\n"); //$NON-NLS-1$ //$NON-NLS-2$ $NON-NLS-2$ } else if (c == 'r') { s = "\r"; //$NON-NLS-1$ } else if (c == 't') { diff --git a/debug/org.eclipse.cdt.debug.mi.core/mi/org/eclipse/cdt/debug/mi/core/output/MIDataDisassembleInfo.java b/debug/org.eclipse.cdt.debug.mi.core/mi/org/eclipse/cdt/debug/mi/core/output/MIDataDisassembleInfo.java index 7cc6426e3f6..8b56e136815 100644 --- a/debug/org.eclipse.cdt.debug.mi.core/mi/org/eclipse/cdt/debug/mi/core/output/MIDataDisassembleInfo.java +++ b/debug/org.eclipse.cdt.debug.mi.core/mi/org/eclipse/cdt/debug/mi/core/output/MIDataDisassembleInfo.java @@ -37,7 +37,7 @@ public class MIDataDisassembleInfo extends MIInfo { public String toString() { StringBuffer buffer = new StringBuffer(); - buffer.append("asm_insns=["); + buffer.append("asm_insns=["); //$NON-NLS-1$ if (isMixed()) { MISrcAsm[] array = getMISrcAsms(); diff --git a/debug/org.eclipse.cdt.debug.mi.core/mi/org/eclipse/cdt/debug/mi/core/output/MIEnvironmentPWDInfo.java b/debug/org.eclipse.cdt.debug.mi.core/mi/org/eclipse/cdt/debug/mi/core/output/MIEnvironmentPWDInfo.java index 4a37acb400c..08c001d48f7 100644 --- a/debug/org.eclipse.cdt.debug.mi.core/mi/org/eclipse/cdt/debug/mi/core/output/MIEnvironmentPWDInfo.java +++ b/debug/org.eclipse.cdt.debug.mi.core/mi/org/eclipse/cdt/debug/mi/core/output/MIEnvironmentPWDInfo.java @@ -32,8 +32,8 @@ public class MIEnvironmentPWDInfo extends MIInfo { if (oobs[i] instanceof MIConsoleStreamOutput) { MIStreamRecord cons = (MIStreamRecord)oobs[i]; String str = cons.getString(); - if (str.startsWith("Working directory")) { - int len = "Working directory".length(); + if (str.startsWith("Working directory")) { //$NON-NLS-1$ + int len = "Working directory".length(); //$NON-NLS-1$ str = str.substring(len).trim(); len = str.indexOf('.'); if (len != -1) { diff --git a/debug/org.eclipse.cdt.debug.mi.core/mi/org/eclipse/cdt/debug/mi/core/output/MIGDBShowDirectoriesInfo.java b/debug/org.eclipse.cdt.debug.mi.core/mi/org/eclipse/cdt/debug/mi/core/output/MIGDBShowDirectoriesInfo.java index 7f303d7250a..4f9c3c56299 100644 --- a/debug/org.eclipse.cdt.debug.mi.core/mi/org/eclipse/cdt/debug/mi/core/output/MIGDBShowDirectoriesInfo.java +++ b/debug/org.eclipse.cdt.debug.mi.core/mi/org/eclipse/cdt/debug/mi/core/output/MIGDBShowDirectoriesInfo.java @@ -35,7 +35,7 @@ public class MIGDBShowDirectoriesInfo extends MIInfo { if (oobs[i] instanceof MIConsoleStreamOutput) { MIStreamRecord cons = (MIStreamRecord)oobs[i]; String str = cons.getString(); - if (str.startsWith("Source directories searched:")) { + if (str.startsWith("Source directories searched:")) { //$NON-NLS-1$ int j = str.indexOf(':'); if (j != -1) { String sub = str.substring(j + 1).trim(); diff --git a/debug/org.eclipse.cdt.debug.mi.core/mi/org/eclipse/cdt/debug/mi/core/output/MIInfoSharedLibraryInfo.java b/debug/org.eclipse.cdt.debug.mi.core/mi/org/eclipse/cdt/debug/mi/core/output/MIInfoSharedLibraryInfo.java index 05b18a89c64..2e88929d26f 100644 --- a/debug/org.eclipse.cdt.debug.mi.core/mi/org/eclipse/cdt/debug/mi/core/output/MIInfoSharedLibraryInfo.java +++ b/debug/org.eclipse.cdt.debug.mi.core/mi/org/eclipse/cdt/debug/mi/core/output/MIInfoSharedLibraryInfo.java @@ -91,7 +91,7 @@ public class MIInfoSharedLibraryInfo extends MIInfo { name = sub; break; case 1 : - if (sub.equalsIgnoreCase("Yes")) { + if (sub.equalsIgnoreCase("Yes")) { //$NON-NLS-1$ syms = true; } break; diff --git a/debug/org.eclipse.cdt.debug.mi.core/mi/org/eclipse/cdt/debug/mi/core/output/MIInfoSignalsInfo.java b/debug/org.eclipse.cdt.debug.mi.core/mi/org/eclipse/cdt/debug/mi/core/output/MIInfoSignalsInfo.java index c169344f26d..74e2adb24f8 100644 --- a/debug/org.eclipse.cdt.debug.mi.core/mi/org/eclipse/cdt/debug/mi/core/output/MIInfoSignalsInfo.java +++ b/debug/org.eclipse.cdt.debug.mi.core/mi/org/eclipse/cdt/debug/mi/core/output/MIInfoSignalsInfo.java @@ -60,7 +60,7 @@ public class MIInfoSignalsInfo extends MIInfo { // Pass the header and th tailer. // ~"Signal Stop\tPrint\tPass to program\tDescription\n" // ~"Use the \"handle\" command to change these tables.\n" - if (!str.startsWith("Signal ") && !str.startsWith("Use ")) { + if (!str.startsWith("Signal ") && !str.startsWith("Use ")) { //$NON-NLS-1$ //$NON-NLS-2$ String signal = ""; //$NON-NLS-1$ boolean stop = false; boolean print = false; @@ -71,7 +71,7 @@ public class MIInfoSignalsInfo extends MIInfo { for (int i = 0; tokenizer.hasMoreTokens(); i++) { String sub = null; if (i == 4) { - sub = tokenizer.nextToken("\n"); + sub = tokenizer.nextToken("\n"); //$NON-NLS-1$ } else { sub = tokenizer.nextToken(); } @@ -100,7 +100,7 @@ public class MIInfoSignalsInfo extends MIInfo { } static boolean getBoolean(String value) { - if (value != null && value.equalsIgnoreCase("Yes")) { + if (value != null && value.equalsIgnoreCase("Yes")) { //$NON-NLS-1$ return true; } return false; diff --git a/debug/org.eclipse.cdt.debug.mi.core/mi/org/eclipse/cdt/debug/mi/core/output/MIPTypeInfo.java b/debug/org.eclipse.cdt.debug.mi.core/mi/org/eclipse/cdt/debug/mi/core/output/MIPTypeInfo.java index a21d91c68e3..affd96aabea 100644 --- a/debug/org.eclipse.cdt.debug.mi.core/mi/org/eclipse/cdt/debug/mi/core/output/MIPTypeInfo.java +++ b/debug/org.eclipse.cdt.debug.mi.core/mi/org/eclipse/cdt/debug/mi/core/output/MIPTypeInfo.java @@ -32,7 +32,7 @@ public class MIPTypeInfo extends MIInfo { // We are interested in the shared info if (str != null) { str = str.trim(); - if (str.startsWith ("type")) { + if (str.startsWith ("type")) { //$NON-NLS-1$ int equal = str.indexOf('='); if (equal > 0) { str = str.substring(equal + 1); diff --git a/debug/org.eclipse.cdt.debug.mi.core/mi/org/eclipse/cdt/debug/mi/core/output/MIRegisterValue.java b/debug/org.eclipse.cdt.debug.mi.core/mi/org/eclipse/cdt/debug/mi/core/output/MIRegisterValue.java index d061c3df1f8..d4564d3aaa6 100644 --- a/debug/org.eclipse.cdt.debug.mi.core/mi/org/eclipse/cdt/debug/mi/core/output/MIRegisterValue.java +++ b/debug/org.eclipse.cdt.debug.mi.core/mi/org/eclipse/cdt/debug/mi/core/output/MIRegisterValue.java @@ -31,8 +31,8 @@ public class MIRegisterValue { public String toString() { StringBuffer buffer = new StringBuffer(); - buffer.append("number=\"").append(number).append('"'); - buffer.append(',').append("value=\"" + value + "\""); + buffer.append("number=\"").append(number).append('"'); //$NON-NLS-1$ + buffer.append(',').append("value=\"" + value + "\""); //$NON-NLS-1$ //$NON-NLS-2$ return buffer.toString(); } diff --git a/debug/org.eclipse.cdt.debug.mi.core/mi/org/eclipse/cdt/debug/mi/core/output/MIStreamRecord.java b/debug/org.eclipse.cdt.debug.mi.core/mi/org/eclipse/cdt/debug/mi/core/output/MIStreamRecord.java index 395083fe160..e972c43042d 100644 --- a/debug/org.eclipse.cdt.debug.mi.core/mi/org/eclipse/cdt/debug/mi/core/output/MIStreamRecord.java +++ b/debug/org.eclipse.cdt.debug.mi.core/mi/org/eclipse/cdt/debug/mi/core/output/MIStreamRecord.java @@ -25,12 +25,12 @@ public abstract class MIStreamRecord extends MIOOBRecord { public String toString() { if (this instanceof MIConsoleStreamOutput) { - return "~\"" + cstring + "\"\n"; //$NON-NLS-1$ + return "~\"" + cstring + "\"\n"; //$NON-NLS-1$ //$NON-NLS-2$ } else if (this instanceof MITargetStreamOutput) { - return "@\"" + cstring + "\"\n"; //$NON-NLS-1$ + return "@\"" + cstring + "\"\n"; //$NON-NLS-1$ //$NON-NLS-2$ } else if (this instanceof MILogStreamOutput) { - return "&\"" + cstring + "\"\n"; //$NON-NLS-1$ + return "&\"" + cstring + "\"\n"; //$NON-NLS-1$ //$NON-NLS-2$ } - return "\"" + cstring + "\"\n"; //$NON-NLS-1$ + return "\"" + cstring + "\"\n"; //$NON-NLS-1$ //$NON-NLS-2$ } } diff --git a/debug/org.eclipse.cdt.debug.mi.core/mi/org/eclipse/cdt/debug/mi/core/output/MIVarShowFormatInfo.java b/debug/org.eclipse.cdt.debug.mi.core/mi/org/eclipse/cdt/debug/mi/core/output/MIVarShowFormatInfo.java index 050899d43c1..96bae4a813b 100644 --- a/debug/org.eclipse.cdt.debug.mi.core/mi/org/eclipse/cdt/debug/mi/core/output/MIVarShowFormatInfo.java +++ b/debug/org.eclipse.cdt.debug.mi.core/mi/org/eclipse/cdt/debug/mi/core/output/MIVarShowFormatInfo.java @@ -34,15 +34,15 @@ public class MIVarShowFormatInfo extends MIInfo { MIValue value = results[i].getMIValue(); if (value instanceof MIConst) { String str = ((MIConst)value).getString(); - if ("binary".equals(str)) { + if ("binary".equals(str)) { //$NON-NLS-1$ format = MIFormat.BINARY; - } else if ("decimal".equals(str)) { + } else if ("decimal".equals(str)) { //$NON-NLS-1$ format = MIFormat.DECIMAL; - } else if ("hexadecimal".equals(str)) { + } else if ("hexadecimal".equals(str)) { //$NON-NLS-1$ format = MIFormat.HEXADECIMAL; - } else if ("octal".equals(str)) { + } else if ("octal".equals(str)) { //$NON-NLS-1$ format = MIFormat.OCTAL; - } else if ("natural".equals(str)) { + } else if ("natural".equals(str)) { //$NON-NLS-1$ format = MIFormat.NATURAL; } } diff --git a/debug/org.eclipse.cdt.debug.mi.core/mi/org/eclipse/cdt/debug/mi/core/output/MIWhatisInfo.java b/debug/org.eclipse.cdt.debug.mi.core/mi/org/eclipse/cdt/debug/mi/core/output/MIWhatisInfo.java index 404100e1252..41b12fbec4b 100644 --- a/debug/org.eclipse.cdt.debug.mi.core/mi/org/eclipse/cdt/debug/mi/core/output/MIWhatisInfo.java +++ b/debug/org.eclipse.cdt.debug.mi.core/mi/org/eclipse/cdt/debug/mi/core/output/MIWhatisInfo.java @@ -32,7 +32,7 @@ public class MIWhatisInfo extends MIInfo { // We are interested in the shared info if (str != null) { str = str.trim(); - if (str.startsWith ("type")) { + if (str.startsWith ("type")) { //$NON-NLS-1$ int equal = str.indexOf('='); if (equal > 0) { str = str.substring(equal + 1); diff --git a/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/CLIProcessor.java b/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/CLIProcessor.java index c3bca48b164..c006fc6cc8c 100644 --- a/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/CLIProcessor.java +++ b/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/CLIProcessor.java @@ -55,7 +55,7 @@ public class CLIProcessor { session.fireEvent(new MIBreakpointChangedEvent(0)); } else if (isSettingSignal(operation)) { // We do no know which signal let the upper layer find it. - session.fireEvent(new MISignalChangedEvent("")); + session.fireEvent(new MISignalChangedEvent("")); //$NON-NLS-1$ } else if (isDetach(operation)) { // if it was a "detach" command change the state. session.getMIInferior().setDisconnected(); @@ -68,27 +68,27 @@ public class CLIProcessor { int type = -1; /* execution commands: n, next, s, step, si, stepi, u, until, finish, c, continue, fg */ - if (operation.equals("n") || operation.equals("next")) { + if (operation.equals("n") || operation.equals("next")) { //$NON-NLS-1$ //$NON-NLS-2$ type = MIRunningEvent.NEXT; - } else if (operation.equals("ni") || operation.equals("nexti")) { + } else if (operation.equals("ni") || operation.equals("nexti")) { //$NON-NLS-1$ //$NON-NLS-2$ type = MIRunningEvent.NEXTI; - } else if (operation.equals("s") || operation.equals("step")) { + } else if (operation.equals("s") || operation.equals("step")) { //$NON-NLS-1$ //$NON-NLS-2$ type = MIRunningEvent.STEP; - } else if (operation.equals("si") || operation.equals("stepi")) { + } else if (operation.equals("si") || operation.equals("stepi")) { //$NON-NLS-1$ //$NON-NLS-2$ type = MIRunningEvent.STEPI; - } else if (operation.equals("u") || - (operation.startsWith("unt") && "until".indexOf(operation) != -1)) { + } else if (operation.equals("u") || //$NON-NLS-1$ + (operation.startsWith("unt") && "until".indexOf(operation) != -1)) { //$NON-NLS-1$ //$NON-NLS-2$ type = MIRunningEvent.UNTIL; - } else if (operation.startsWith("fin") && "finish".indexOf(operation) != -1) { + } else if (operation.startsWith("fin") && "finish".indexOf(operation) != -1) { //$NON-NLS-1$ //$NON-NLS-2$ type = MIRunningEvent.FINISH; - } else if (operation.equals("c") || operation.equals("fg") || - (operation.startsWith("cont") && "continue".indexOf(operation) != -1)) { + } else if (operation.equals("c") || operation.equals("fg") || //$NON-NLS-1$ //$NON-NLS-2$ + (operation.startsWith("cont") && "continue".indexOf(operation) != -1)) { //$NON-NLS-1$ //$NON-NLS-2$ type = MIRunningEvent.CONTINUE; - } else if (operation.startsWith("sig") && "signal".indexOf(operation) != -1) { + } else if (operation.startsWith("sig") && "signal".indexOf(operation) != -1) { //$NON-NLS-1$ //$NON-NLS-2$ type = MIRunningEvent.CONTINUE; - } else if (operation.startsWith("j") && "jump".indexOf(operation) != -1) { + } else if (operation.startsWith("j") && "jump".indexOf(operation) != -1) { //$NON-NLS-1$ //$NON-NLS-2$ type = MIRunningEvent.CONTINUE; - } else if (operation.equals("r") || operation.equals("run")) { + } else if (operation.equals("r") || operation.equals("run")) { //$NON-NLS-1$ //$NON-NLS-2$ type = MIRunningEvent.CONTINUE; } return type; @@ -98,11 +98,11 @@ public class CLIProcessor { boolean isbreak = false; /* breakpoints: b, break, hbreak, tbreak, rbreak, thbreak */ /* watchpoints: watch, rwatch, awatch, tbreak, rbreak, thbreak */ - if ((operation.startsWith("b") && "break".indexOf(operation) != -1) || - (operation.startsWith("tb") && "tbreak".indexOf(operation) != -1) || - (operation.startsWith("hb") && "hbreak".indexOf(operation) != -1) || - (operation.startsWith("thb") && "thbreak".indexOf(operation) != -1) || - (operation.startsWith("rb") && "rbreak".indexOf(operation) != -1)) { + if ((operation.startsWith("b") && "break".indexOf(operation) != -1) || //$NON-NLS-1$ //$NON-NLS-2$ + (operation.startsWith("tb") && "tbreak".indexOf(operation) != -1) || //$NON-NLS-1$ //$NON-NLS-2$ + (operation.startsWith("hb") && "hbreak".indexOf(operation) != -1) || //$NON-NLS-1$ //$NON-NLS-2$ + (operation.startsWith("thb") && "thbreak".indexOf(operation) != -1) || //$NON-NLS-1$ //$NON-NLS-2$ + (operation.startsWith("rb") && "rbreak".indexOf(operation) != -1)) { //$NON-NLS-1$ //$NON-NLS-2$ isbreak = true; } return isbreak; @@ -111,9 +111,9 @@ public class CLIProcessor { boolean isSettingWatchpoint(String operation) { boolean isWatch = false; /* watchpoints: watch, rwatch, awatch, tbreak, rbreak, thbreak */ - if ((operation.startsWith("wa") && "watch".indexOf(operation) != -1) || - (operation.startsWith("rw") && "rwatch".indexOf(operation) != -1) || - (operation.startsWith("aw") && "awatch".indexOf(operation) != -1)) { + if ((operation.startsWith("wa") && "watch".indexOf(operation) != -1) || //$NON-NLS-1$ //$NON-NLS-2$ + (operation.startsWith("rw") && "rwatch".indexOf(operation) != -1) || //$NON-NLS-1$ //$NON-NLS-2$ + (operation.startsWith("aw") && "awatch".indexOf(operation) != -1)) { //$NON-NLS-1$ //$NON-NLS-2$ isWatch = true; } return isWatch; @@ -122,8 +122,8 @@ public class CLIProcessor { boolean isDeletingBreakpoint(String operation) { boolean isDelete = false; /* deleting breaks: clear, delete */ - if ((operation.startsWith("cl") && "clear".indexOf(operation) != -1) || - (operation.equals("d") || (operation.startsWith("del") && "delete".indexOf(operation) != -1))) { + if ((operation.startsWith("cl") && "clear".indexOf(operation) != -1) || //$NON-NLS-1$ //$NON-NLS-2$ + (operation.equals("d") || (operation.startsWith("del") && "delete".indexOf(operation) != -1))) { //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ isDelete = true; } return isDelete; @@ -132,11 +132,11 @@ public class CLIProcessor { boolean isChangeBreakpoint(String operation) { boolean isChange = false; /* changing breaks: enable, disable */ - if ((operation.equals("dis") || operation.equals("disa") || - (operation.startsWith("disa") && "disable".indexOf(operation) != -1)) || - (operation.equals("en") || (operation.startsWith("en") && "enable".indexOf(operation) != -1)) || - (operation.startsWith("ig") && "ignore".indexOf(operation) != -1) || - (operation.startsWith("cond") && "condition".indexOf(operation) != -1)) { + if ((operation.equals("dis") || operation.equals("disa") || //$NON-NLS-1$ //$NON-NLS-2$ + (operation.startsWith("disa") && "disable".indexOf(operation) != -1)) || //$NON-NLS-1$ //$NON-NLS-2$ + (operation.equals("en") || (operation.startsWith("en") && "enable".indexOf(operation) != -1)) || //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ + (operation.startsWith("ig") && "ignore".indexOf(operation) != -1) || //$NON-NLS-1$ //$NON-NLS-2$ + (operation.startsWith("cond") && "condition".indexOf(operation) != -1)) { //$NON-NLS-1$ //$NON-NLS-2$ isChange = true; } return isChange; @@ -145,7 +145,7 @@ public class CLIProcessor { boolean isSettingSignal(String operation) { boolean isChange = false; /* changing signal: handle, signal */ - if (operation.startsWith("ha") && "handle".indexOf(operation) != -1) { + if (operation.startsWith("ha") && "handle".indexOf(operation) != -1) { //$NON-NLS-1$ //$NON-NLS-2$ isChange = true; } return isChange; @@ -156,7 +156,7 @@ public class CLIProcessor { * @return */ boolean isDetach(String operation) { - return (operation.startsWith("det") && "detach".indexOf(operation) != -1); + return (operation.startsWith("det") && "detach".indexOf(operation) != -1); //$NON-NLS-1$ //$NON-NLS-2$ } diff --git a/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/CygwinGDBDebugger.java b/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/CygwinGDBDebugger.java index 7a10c7f9dd3..582ebe863c8 100644 --- a/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/CygwinGDBDebugger.java +++ b/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/CygwinGDBDebugger.java @@ -61,7 +61,7 @@ public class CygwinGDBDebugger extends GDBDebugger { manager.setSharedLibraryPaths(paths); } } catch (CoreException e) { - throw new CDIException("Error initializing shared library options: " + e.getMessage()); + throw new CDIException(MIPlugin.getResourceString("src.CygwinGDBDebugger.Error_init_shared_lib_options") + e.getMessage()); //$NON-NLS-1$ } } @@ -76,11 +76,11 @@ public class CygwinGDBDebugger extends GDBDebugger { MISession mi = session.getMISession(); try { CommandFactory factory = mi.getCommandFactory(); - MIGDBSet set = factory.createMIGDBSet(new String[] { "new-console" }); + MIGDBSet set = factory.createMIGDBSet(new String[] { "new-console" }); //$NON-NLS-1$ mi.postCommand(set); MIInfo info = set.getMIInfo(); if (info == null) { - throw new MIException("No answer"); + throw new MIException(MIPlugin.getResourceString("src.common.No_answer")); //$NON-NLS-1$ } } catch (MIException e) { // We ignore this exception, for example diff --git a/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/EventThread.java b/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/EventThread.java index 10e88e81b84..9d226828942 100644 --- a/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/EventThread.java +++ b/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/EventThread.java @@ -17,7 +17,7 @@ public class EventThread extends Thread { MISession session; public EventThread(MISession s) { - super("MI Event Thread"); + super("MI Event Thread"); //$NON-NLS-1$ session = s; } diff --git a/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/GDBDebugger.java b/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/GDBDebugger.java index 3bd7630f30c..1e589440c98 100644 --- a/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/GDBDebugger.java +++ b/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/GDBDebugger.java @@ -56,7 +56,7 @@ public class GDBDebugger implements ICDebugger { manager.setSharedLibraryPaths(paths); } } catch (CoreException e) { - throw new CDIException("Error initializing shared library options: " + e.getMessage()); + throw new CDIException(MIPlugin.getResourceString("src.GDBDebugger.Error_initializing_shared_lib_options") + e.getMessage()); //$NON-NLS-1$ } } @@ -64,21 +64,21 @@ public class GDBDebugger implements ICDebugger { Session session = null; boolean failed = false; try { - String gdb = config.getAttribute(IMILaunchConfigurationConstants.ATTR_DEBUG_NAME, "gdb"); + String gdb = config.getAttribute(IMILaunchConfigurationConstants.ATTR_DEBUG_NAME, "gdb"); //$NON-NLS-1$ File cwd = exe.getProject().getLocation().toFile(); - String gdbinit = config.getAttribute(IMILaunchConfigurationConstants.ATTR_GDB_INIT, ".gdbinit"); + String gdbinit = config.getAttribute(IMILaunchConfigurationConstants.ATTR_GDB_INIT, ".gdbinit"); //$NON-NLS-1$ session = (Session)MIPlugin.getDefault().createCSession(gdb, exe.getLocation().toFile(), cwd, gdbinit); initializeLibraries(config, session); return session; } catch (IOException e) { failed = true; - throw new CDIException("Error creating session: " + e.getMessage()); + throw new CDIException(MIPlugin.getResourceString("src.GDBDebugger.Error_creating_session") + e.getMessage()); //$NON-NLS-1$ } catch (MIException e) { failed = true; - throw new CDIException("Error creating session: " + e.getMessage()); + throw new CDIException(MIPlugin.getResourceString("src.GDBDebugger.Error_creating_session") + e.getMessage()); //$NON-NLS-1$ } catch (CoreException e) { failed = true; - throw new CDIException("Error creating session: " + e.getMessage()); + throw new CDIException(MIPlugin.getResourceString("src.GDBDebugger.Error_creating_session") + e.getMessage()); //$NON-NLS-1$ } finally { if (failed) { if (session != null) { @@ -96,21 +96,21 @@ public class GDBDebugger implements ICDebugger { Session session = null; boolean failed = false; try { - String gdb = config.getAttribute(IMILaunchConfigurationConstants.ATTR_DEBUG_NAME, "gdb"); + String gdb = config.getAttribute(IMILaunchConfigurationConstants.ATTR_DEBUG_NAME, "gdb"); //$NON-NLS-1$ File cwd = exe.getProject().getLocation().toFile(); - String gdbinit = config.getAttribute(IMILaunchConfigurationConstants.ATTR_GDB_INIT, ".gdbinit"); + String gdbinit = config.getAttribute(IMILaunchConfigurationConstants.ATTR_GDB_INIT, ".gdbinit"); //$NON-NLS-1$ session = (Session)MIPlugin.getDefault().createCSession(gdb, exe.getLocation().toFile(), pid, null, cwd, gdbinit); initializeLibraries(config, session); return session; } catch (IOException e) { failed = true; - throw new CDIException("Error creating session: " + e.getMessage()); + throw new CDIException(MIPlugin.getResourceString("src.GDBDebugger.Error_creating_session") + e.getMessage()); //$NON-NLS-1$ } catch (MIException e) { failed = true; - throw new CDIException("Error creating session: " + e.getMessage()); + throw new CDIException(MIPlugin.getResourceString("src.GDBDebugger.Error_creating_session") + e.getMessage()); //$NON-NLS-1$ } catch (CoreException e) { failed = true; - throw new CDIException("Error creating session: " + e.getMessage()); + throw new CDIException(MIPlugin.getResourceString("src.GDBDebugger.Error_creating_session") + e.getMessage()); //$NON-NLS-1$ } finally { if (failed) { if (session != null) { @@ -128,21 +128,21 @@ public class GDBDebugger implements ICDebugger { Session session = null; boolean failed = false; try { - String gdb = config.getAttribute(IMILaunchConfigurationConstants.ATTR_DEBUG_NAME, "gdb"); + String gdb = config.getAttribute(IMILaunchConfigurationConstants.ATTR_DEBUG_NAME, "gdb"); //$NON-NLS-1$ File cwd = exe.getProject().getLocation().toFile(); - String gdbinit = config.getAttribute(IMILaunchConfigurationConstants.ATTR_GDB_INIT, ".gdbinit"); + String gdbinit = config.getAttribute(IMILaunchConfigurationConstants.ATTR_GDB_INIT, ".gdbinit"); //$NON-NLS-1$ session = (Session)MIPlugin.getDefault().createCSession(gdb, exe.getLocation().toFile(), corefile.toFile(), cwd, gdbinit); initializeLibraries(config, session); return session; } catch (IOException e) { failed = true; - throw new CDIException("Error creating session: " + e.getMessage()); + throw new CDIException(MIPlugin.getResourceString("src.GDBDebugger.Error_creating_session") + e.getMessage()); //$NON-NLS-1$ } catch (MIException e) { failed = true; - throw new CDIException("Error creating session: " + e.getMessage()); + throw new CDIException(MIPlugin.getResourceString("src.GDBDebugger.Error_creating_session") + e.getMessage()); //$NON-NLS-1$ } catch (CoreException e) { failed = true; - throw new CDIException("Error creating session: " + e.getMessage()); + throw new CDIException(MIPlugin.getResourceString("src.GDBDebugger.Error_creating_session") + e.getMessage()); //$NON-NLS-1$ } finally { if (failed) { if (session != null) { diff --git a/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/GDBServerDebugger.java b/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/GDBServerDebugger.java index 826b975b652..aab64c6bcbb 100644 --- a/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/GDBServerDebugger.java +++ b/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/GDBServerDebugger.java @@ -51,7 +51,7 @@ public class GDBServerDebugger implements ICDebugger { mgr.setSharedLibraryPaths(paths); } } catch (CoreException e) { - throw new CDIException("Error initializing: " + e.getMessage()); + throw new CDIException(MIPlugin.getResourceString("src.GDBServerDebugger.Error_initializing") + e.getMessage()); //$NON-NLS-1$ } } @@ -59,12 +59,12 @@ public class GDBServerDebugger implements ICDebugger { Session session = null; boolean failed = false; try { - String gdb = config.getAttribute(IMILaunchConfigurationConstants.ATTR_DEBUG_NAME, "gdb"); + String gdb = config.getAttribute(IMILaunchConfigurationConstants.ATTR_DEBUG_NAME, "gdb"); //$NON-NLS-1$ File cwd = exe.getProject().getLocation().toFile(); - String gdbinit = config.getAttribute(IMILaunchConfigurationConstants.ATTR_GDB_INIT, ".gdbinit"); + String gdbinit = config.getAttribute(IMILaunchConfigurationConstants.ATTR_GDB_INIT, ".gdbinit"); //$NON-NLS-1$ if (config.getAttribute(IGDBServerMILaunchConfigurationConstants.ATTR_REMOTE_TCP, false)) { String remote = config.getAttribute(IGDBServerMILaunchConfigurationConstants.ATTR_HOST, "invalid"); - remote += ":"; + remote += ":"; //$NON-NLS-1$ remote += config.getAttribute(IGDBServerMILaunchConfigurationConstants.ATTR_PORT, "invalid"); String[] args = new String[] {"remote", remote}; session = (Session)MIPlugin.getDefault().createCSession(gdb, exe.getLocation().toFile(), 0, args, cwd, gdbinit); @@ -78,31 +78,31 @@ public class GDBServerDebugger implements ICDebugger { session = (Session)MIPlugin.getDefault().createCSession(gdb, exe.getLocation().toFile(), -1, null, cwd, gdbinit); MISession miSession = session.getMISession(); CommandFactory factory = miSession.getCommandFactory(); - MIGDBSet setRemoteBaud = factory.createMIGDBSet(new String[]{"remotebaud", remoteBaud}); + MIGDBSet setRemoteBaud = factory.createMIGDBSet(new String[]{"remotebaud", remoteBaud}); //$NON-NLS-1$ // Set serial line parameters miSession.postCommand(setRemoteBaud, launchTimeout); MIInfo info = setRemoteBaud.getMIInfo(); if (info == null) { - throw new MIException ("Can not set Baud"); + throw new MIException (MIPlugin.getResourceString("src.GDBServerDebugger.Can_not_set_Baud")); //$NON-NLS-1$ } MITargetSelect select = factory.createMITargetSelect(new String[] {"remote", remote}); miSession.postCommand(select, launchTimeout); select.getMIInfo(); if (info == null) { - throw new MIException ("No answer"); + throw new MIException (MIPlugin.getResourceString("src.common.No_answer")); //$NON-NLS-1$ } } initializeLibraries(config, session); return session; } catch (IOException e) { failed = true; - throw new CDIException("Error initializing: " + e.getMessage()); + throw new CDIException(MIPlugin.getResourceString("src.GDBServerDebugger.Error_initializing") + e.getMessage()); //$NON-NLS-1$ } catch (MIException e) { failed = true; - throw new CDIException("Error initializing: " + e.getMessage()); + throw new CDIException(MIPlugin.getResourceString("src.GDBServerDebugger.Error_initializing") + e.getMessage()); //$NON-NLS-1$ } catch (CoreException e) { failed = true; - throw new CDIException("Error initializing: " + e.getMessage()); + throw new CDIException(MIPlugin.getResourceString("src.GDBServerDebugger.Error_initializing") + e.getMessage()); //$NON-NLS-1$ } finally { if (failed) { if (session != null) { @@ -117,10 +117,10 @@ public class GDBServerDebugger implements ICDebugger { } public ICDISession createAttachSession(ILaunchConfiguration config, IFile exe, int pid) throws CDIException { - throw new CDIException("GDBServer does not support attaching"); + throw new CDIException(MIPlugin.getResourceString("src.GDBServerDebugger.GDBServer_attaching_unsupported")); //$NON-NLS-1$ } public ICDISession createCoreSession(ILaunchConfiguration config, IFile exe, IPath corefile) throws CDIException { - throw new CDIException("GDBServer does not support core files"); + throw new CDIException(MIPlugin.getResourceString("src.GDBServerDebugger.GDBServer_corefiles_unsupported")); //$NON-NLS-1$ } } diff --git a/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/GDBTypeParser.java b/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/GDBTypeParser.java index aeee5419509..bc5ac407eff 100644 --- a/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/GDBTypeParser.java +++ b/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/GDBTypeParser.java @@ -58,14 +58,14 @@ public class GDBTypeParser { // Initialize. line = s; index = 0; - token = ""; - dataType = ""; - name = ""; + token = ""; //$NON-NLS-1$ + dataType = ""; //$NON-NLS-1$ + name = ""; //$NON-NLS-1$ gdbDerivedType = null; // Fetch the datatype. while (getToken() == NAME) { - dataType += " " + token; + dataType += " " + token; //$NON-NLS-1$ } // Hack for GDB, the typename can be something like @@ -97,7 +97,7 @@ public class GDBTypeParser { } public GDBType(int t) { - this("", t); + this("", t); //$NON-NLS-1$ } GDBType(String n, int t) { @@ -151,23 +151,23 @@ public class GDBTypeParser { public String toString() { StringBuffer sb = new StringBuffer(); - String childTypeName = (hasChild() ? child.toString() : ""); + String childTypeName = (hasChild() ? child.toString() : ""); //$NON-NLS-1$ sb.append(childTypeName); switch (getType()) { case FUNCTION : - sb.append("()"); + sb.append("()"); //$NON-NLS-1$ //sb.append(" function returning " + (hasChild() ? child.toString() : "")); break; case ARRAY : - sb.append("[" + dimension + "]"); + sb.append("[" + dimension + "]"); //$NON-NLS-1$ //$NON-NLS-2$ //sb.append(" array[" + dimension + "]" + " of " + (hasChild() ? child.toString() : "")); break; case REFERENCE : - sb.append("&"); + sb.append("&"); //$NON-NLS-1$ //sb.append(" reference to " + (hasChild() ? child.toString() : "")); break; case POINTER : - sb.append("*"); + sb.append("*"); //$NON-NLS-1$ //sb.append(" pointer to " + (hasChild() ? child.toString() : "")); break; } @@ -178,16 +178,16 @@ public class GDBTypeParser { StringBuffer sb = new StringBuffer(); switch (getType()) { case FUNCTION : - sb.append(" function returning " + (hasChild() ? child.verbose() : "")); + sb.append(" function returning " + (hasChild() ? child.verbose() : "")); //$NON-NLS-2$ break; case ARRAY : - sb.append(" array[" + dimension + "]" + " of " + (hasChild() ? child.verbose() : "")); + sb.append(" array[" + dimension + "]" + " of " + (hasChild() ? child.verbose() : "")); //$NON-NLS-2$ //$NON-NLS-4$ break; case REFERENCE : - sb.append(" reference to " + (hasChild() ? child.verbose() : "")); + sb.append(" reference to " + (hasChild() ? child.verbose() : "")); //$NON-NLS-2$ break; case POINTER : - sb.append(" pointer to " + (hasChild() ? child.verbose() : "")); + sb.append(" pointer to " + (hasChild() ? child.verbose() : "")); //$NON-NLS-2$ break; } return sb.toString(); @@ -247,7 +247,7 @@ public class GDBTypeParser { // method returns the next token int getToken() { - token = ""; + token = ""; //$NON-NLS-1$ int c = getch(); @@ -260,7 +260,7 @@ public class GDBTypeParser { if (c == '(') { if ((c = getch()) == ')') { - token = "()"; + token = "()"; //$NON-NLS-1$ tokenType = PARENS; } else { ungetch(); @@ -272,7 +272,7 @@ public class GDBTypeParser { } tokenType = BRACKETS; } else if (isCIdentifierStart(c)) { - token = "" + (char) c; + token = "" + (char) c; //$NON-NLS-1$ while (isCIdentifierPart((c = getch())) && c != EOF) { token += (char) c; } @@ -336,7 +336,7 @@ public class GDBTypeParser { } } else if (tokenType == NAME) { // Useless we do not need the name of the variable - name = " " + token; + name = " " + token; //$NON-NLS-1$ } else if (tokenType == PARENS) { prependChild(GDBType.FUNCTION); } else if (tokenType == BRACKETS) { @@ -376,40 +376,40 @@ public class GDBTypeParser { GDBTypeParser parser = new GDBTypeParser(); - System.out.println("struct link { int i; int j; struct link * next} *"); - parser.parse("struct link { int i; int j; struct link * next} *"); + System.out.println("struct link { int i; int j; struct link * next} *"); //$NON-NLS-1$ + parser.parse("struct link { int i; int j; struct link * next} *"); //$NON-NLS-1$ System.out.println(parser.getGDBType().verbose()); - System.out.println("char **argv"); - parser.parse("unsigned long long int **argv"); + System.out.println("char **argv"); //$NON-NLS-1$ + parser.parse("unsigned long long int **argv"); //$NON-NLS-1$ System.out.println(parser.getGDBType().verbose()); - System.out.println("int (*daytab)[13]"); - parser.parse("int (*daytab)[13]"); + System.out.println("int (*daytab)[13]"); //$NON-NLS-1$ + parser.parse("int (*daytab)[13]"); //$NON-NLS-1$ System.out.println(parser.getGDBType().verbose()); - System.out.println("int *daytab[13]"); - parser.parse("int *daytab[13]"); + System.out.println("int *daytab[13]"); //$NON-NLS-1$ + parser.parse("int *daytab[13]"); //$NON-NLS-1$ System.out.println(parser.getGDBType().verbose()); - System.out.println("void *comp()"); - parser.parse("void *comp()"); + System.out.println("void *comp()"); //$NON-NLS-1$ + parser.parse("void *comp()"); //$NON-NLS-1$ System.out.println(parser.getGDBType().verbose()); - System.out.println("void (*comp)()"); - parser.parse("void (*comp)()"); + System.out.println("void (*comp)()"); //$NON-NLS-1$ + parser.parse("void (*comp)()"); //$NON-NLS-1$ System.out.println(parser.getGDBType().verbose()); - System.out.println("int (*func[15])()"); - parser.parse("int (*func[15])()"); + System.out.println("int (*func[15])()"); //$NON-NLS-1$ + parser.parse("int (*func[15])()"); //$NON-NLS-1$ System.out.println(parser.getGDBType().verbose()); - System.out.println("char (*(*x())[])()"); - parser.parse("char (*(*x())[])()"); + System.out.println("char (*(*x())[])()"); //$NON-NLS-1$ + parser.parse("char (*(*x())[])()"); //$NON-NLS-1$ System.out.println(parser.getGDBType().verbose()); - System.out.println("char (*(*x[3])())[5]"); - parser.parse("char (*(*x[3])())[5]"); + System.out.println("char (*(*x[3])())[5]"); //$NON-NLS-1$ + parser.parse("char (*(*x[3])())[5]"); //$NON-NLS-1$ System.out.println(parser.getGDBType().verbose()); } } diff --git a/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/MIException.java b/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/MIException.java index 8a4557b4944..a96df59e7c5 100644 --- a/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/MIException.java +++ b/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/MIException.java @@ -12,7 +12,7 @@ package org.eclipse.cdt.debug.mi.core; * */ public class MIException extends Exception { - String log = ""; + String log = ""; //$NON-NLS-1$ public MIException(String s) { super(s); diff --git a/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/MIInferior.java b/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/MIInferior.java index 6dc56e5ad36..34d2b84edf8 100644 --- a/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/MIInferior.java +++ b/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/MIInferior.java @@ -66,11 +66,11 @@ public class MIInferior extends Process { StringBuffer buf = new StringBuffer(); public void write(int b) throws IOException { if (!isRunning()) { - throw new IOException("target is suspended"); + throw new IOException(MIPlugin.getResourceString("src.MIInferior.target_is_suspended")); //$NON-NLS-1$ } OutputStream channel = session.getChannelOutputStream(); if (channel == null) { - throw new IOException("No MI Session"); + throw new IOException(MIPlugin.getResourceString("src.MIInferior.No_session")); //$NON-NLS-1$ } channel.write(b); } @@ -214,7 +214,7 @@ public class MIInferior extends Process { // If we've failed throw an exception up. if (state == RUNNING) { - throw new MIException("Failed to interrupt"); + throw new MIException(MIPlugin.getResourceString("src.MIInferior.Failed_to_interrupt")); //$NON-NLS-1$ } } diff --git a/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/MIPlugin.java b/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/MIPlugin.java index e7290437d50..586d6812c9f 100644 --- a/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/MIPlugin.java +++ b/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/MIPlugin.java @@ -12,6 +12,8 @@ import java.io.InputStreamReader; import java.io.OutputStream; import java.io.Reader; import java.text.MessageFormat; +import java.util.MissingResourceException; +import java.util.ResourceBundle; import org.eclipse.cdt.debug.core.cdi.ICDISession; import org.eclipse.cdt.debug.mi.core.cdi.Session; @@ -42,11 +44,19 @@ public class MIPlugin extends Plugin { private static MIPlugin plugin; // GDB init command file - private static final String GDBINIT = ".gdbinit"; + private static final String GDBINIT = ".gdbinit"; //$NON-NLS-1$ // GDB command - private static final String GDB = "gdb"; + private static final String GDB = "gdb"; //$NON-NLS-1$ + private static ResourceBundle fgResourceBundle; + static { + try { + fgResourceBundle = ResourceBundle.getBundle("org.eclipse.cdt.debug.mi.core.MIPluginResources"); //$NON-NLS-1$ + } catch (MissingResourceException x) { + fgResourceBundle = null; + } + } /** * The constructor * @see org.eclipse.core.runtime.Plugin#Plugin(IPluginDescriptor) @@ -153,15 +163,15 @@ public class MIPlugin extends Plugin { String[] args; if (pty != null) { if (program == null) { - args = new String[] {gdb, "--cd="+cwd.getAbsolutePath(), "--command="+gdbinit, "-q", "-nw", "-tty", pty.getSlaveName(), "-i", "mi1"}; + args = new String[] {gdb, "--cd="+cwd.getAbsolutePath(), "--command="+gdbinit, "-q", "-nw", "-tty", pty.getSlaveName(), "-i", "mi1"}; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$ } else { - args = new String[] {gdb, "--cd="+cwd.getAbsolutePath(), "--command="+gdbinit, "-q", "-nw", "-tty", pty.getSlaveName(), "-i", "mi1", program.getAbsolutePath()}; + args = new String[] {gdb, "--cd="+cwd.getAbsolutePath(), "--command="+gdbinit, "-q", "-nw", "-tty", pty.getSlaveName(), "-i", "mi1", program.getAbsolutePath()}; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$ } } else { if (program == null) { - args = new String[] {gdb, "--cd="+cwd.getAbsolutePath(), "--command="+gdbinit, "-q", "-nw", "-i", "mi1"}; + args = new String[] {gdb, "--cd="+cwd.getAbsolutePath(), "--command="+gdbinit, "-q", "-nw", "-i", "mi1"}; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ } else { - args = new String[] {gdb, "--cd="+cwd.getAbsolutePath(), "--command="+gdbinit, "-q", "-nw", "-i", "mi1", program.getAbsolutePath()}; + args = new String[] {gdb, "--cd="+cwd.getAbsolutePath(), "--command="+gdbinit, "-q", "-nw", "-i", "mi1", program.getAbsolutePath()}; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ } } @@ -177,12 +187,12 @@ public class MIPlugin extends Plugin { // Try to detect if we have been attach via "target remote localhost:port" // and set the state to be suspended. try { - CLICommand cmd = new CLICommand("info remote-process"); + CLICommand cmd = new CLICommand("info remote-process"); //$NON-NLS-1$ session.postCommand(cmd); MIInfo info = cmd.getMIInfo(); if (info == null) { pgdb.destroy(); - throw new MIException("No answer"); + throw new MIException(getResourceString("src.common.No_answer")); //$NON-NLS-1$ } //@@@ We have to manually set the suspended state when we attach session.getMIInferior().setSuspended(); @@ -212,9 +222,9 @@ public class MIPlugin extends Plugin { String[] args; if (program == null) { - args = new String[] {gdb, "--cd="+cwd.getAbsolutePath(), "--command="+gdbinit, "--quiet", "-nw", "-i", "mi1", "-c", core.getAbsolutePath()}; + args = new String[] {gdb, "--cd="+cwd.getAbsolutePath(), "--command="+gdbinit, "--quiet", "-nw", "-i", "mi1", "-c", core.getAbsolutePath()}; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$ } else { - args = new String[] {gdb, "--cd="+cwd.getAbsolutePath(), "--command="+gdbinit, "--quiet", "-nw", "-i", "mi1", "-c", core.getAbsolutePath(), program.getAbsolutePath()}; + args = new String[] {gdb, "--cd="+cwd.getAbsolutePath(), "--command="+gdbinit, "--quiet", "-nw", "-i", "mi1", "-c", core.getAbsolutePath(), program.getAbsolutePath()}; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$ } Process pgdb = getGDBProcess(args); MISession session; @@ -245,9 +255,9 @@ public class MIPlugin extends Plugin { String[] args; if (program == null) { - args = new String[] {gdb, "--cd="+cwd.getAbsolutePath(), "--command="+gdbinit, "--quiet", "-nw", "-i", "mi1"}; + args = new String[] {gdb, "--cd="+cwd.getAbsolutePath(), "--command="+gdbinit, "--quiet", "-nw", "-i", "mi1"}; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ } else { - args = new String[] {gdb, "--cd="+cwd.getAbsolutePath(), "--command="+gdbinit, "--quiet", "-nw", "-i", "mi1", program.getAbsolutePath()}; + args = new String[] {gdb, "--cd="+cwd.getAbsolutePath(), "--command="+gdbinit, "--quiet", "-nw", "-i", "mi1", program.getAbsolutePath()}; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ } Process pgdb = getGDBProcess(args); MISession session; @@ -264,7 +274,7 @@ public class MIPlugin extends Plugin { session.postCommand(target); MIInfo info = target.getMIInfo(); if (info == null) { - throw new MIException("No answer"); + throw new MIException(getResourceString("src.common.No_answer")); //$NON-NLS-1$ } } if (pid > 0) { @@ -272,7 +282,7 @@ public class MIPlugin extends Plugin { session.postCommand(attach); MIInfo info = attach.getMIInfo(); if (info == null) { - throw new MIException("No answer"); + throw new MIException(getResourceString("src.common.No_answer")); //$NON-NLS-1$ } session.getMIInferior().setInferiorPID(pid); } @@ -302,7 +312,7 @@ public class MIPlugin extends Plugin { public void debugLog(String message) { if (getDefault().isDebugging()) { // Time stamp - message = MessageFormat.format( "[{0}] {1}", new Object[] { new Long( System.currentTimeMillis() ), message } ); + message = MessageFormat.format( "[{0}] {1}", new Object[] { new Long( System.currentTimeMillis() ), message } ); //$NON-NLS-1$ // This is to verbose for a log file, better use the console. // getDefault().getLog().log(StatusUtil.newStatus(Status.ERROR, message, null)); // ALERT:FIXME: For example for big buffers say 4k length, @@ -312,16 +322,24 @@ public class MIPlugin extends Plugin { while (message.length() > 100) { String partial = message.substring(0, 100); message = message.substring(100); - System.err.println(partial + "\\"); + System.err.println(partial + "\\"); //$NON-NLS-1$ } - if (message.endsWith("\n")) { + if (message.endsWith("\n")) { //$NON-NLS-1$ System.err.print(message); } else { System.err.println(message); } } } - + public static String getResourceString(String key) { + try { + return fgResourceBundle.getString(key); + } catch (MissingResourceException e) { + return '!' + key + '!'; + } catch (NullPointerException e) { + return '#' + key + '#'; + } + } /** * Do some basic synchronisation, gdb may take some time to load * for whatever reasons. @@ -341,7 +359,7 @@ public class MIPlugin extends Plugin { getDefault().debugLog( sb.toString() ); } final Process pgdb = ProcessFactory.getFactory().exec(args); - Thread syncStartup = new Thread("GDB Start") { + Thread syncStartup = new Thread("GDB Start") { //$NON-NLS-1$ public void run() { try { String line; @@ -351,7 +369,7 @@ public class MIPlugin extends Plugin { while ((line = reader.readLine()) != null) { line = line.trim(); //System.out.println("GDB " + line); - if (line.endsWith("(gdb)")) { + if (line.endsWith("(gdb)")) { //$NON-NLS-1$ break; } } diff --git a/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/MIPluginResources.properties b/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/MIPluginResources.properties new file mode 100644 index 00000000000..4dd9eaebee0 --- /dev/null +++ b/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/MIPluginResources.properties @@ -0,0 +1,7 @@ +src.common.No_answer=No answer +src.GDBServerDebugger.Error_initializing=Error initializing: +src.GDBServerDebugger.Can_not_set_Baud=Can not set Baud +src.GDBServerDebugger.GDBServer_attaching_unsupported=GDBServer does not support attaching +src.GDBServerDebugger.GDBServer_corefiles_unsupported=GDBServer does not support core files +src.GDBDebugger.Error_initializing_shared_lib_options=Error initializing shared library options: +src.GDBDebugger.Error_creating_session=Error creating session: diff --git a/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/MISession.java b/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/MISession.java index 74db4e4c33e..9ba5a9660d9 100644 --- a/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/MISession.java +++ b/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/MISession.java @@ -119,7 +119,7 @@ public class MISession extends Observable { // the reader may throw a NPE. } if (line == null) { - line = "Process Terminated"; + line = MIPlugin.getResourceString("src.MISession.Process_Terminated"); //$NON-NLS-1$ } throw new MIException(line); } catch (IllegalThreadStateException e) { @@ -138,15 +138,15 @@ public class MISession extends Observable { // Like confirmation and screen size. try { - MIGDBSet confirm = new MIGDBSet(new String[]{"confirm", "off"}); + MIGDBSet confirm = new MIGDBSet(new String[]{"confirm", "off"}); //$NON-NLS-1$ //$NON-NLS-2$ postCommand(confirm, launchTimeout); confirm.getMIInfo(); - MIGDBSet width = new MIGDBSet(new String[]{"width", "0"}); + MIGDBSet width = new MIGDBSet(new String[]{"width", "0"}); //$NON-NLS-1$ //$NON-NLS-2$ postCommand(width, launchTimeout); confirm.getMIInfo(); - MIGDBSet height = new MIGDBSet(new String[]{"height", "0"}); + MIGDBSet height = new MIGDBSet(new String[]{"height", "0"}); //$NON-NLS-1$ //$NON-NLS-2$ postCommand(height, launchTimeout); confirm.getMIInfo(); @@ -291,7 +291,7 @@ public class MISession extends Observable { // Test if we are in a sane state. if (!txThread.isAlive() || !rxThread.isAlive()) { - throw new MIException("{R,T}xThread terminated"); + throw new MIException(MIPlugin.getResourceString("src.MISession.Thread_Terminated")); //$NON-NLS-1$ } // Test if we are in the right state? @@ -299,12 +299,12 @@ public class MISession extends Observable { // REMINDER: if we support -exec-interrupt // Let it throught: if (!(cmd instanceof MIExecInterrupt)) { - throw new MIException("Target is not suspended"); + throw new MIException(MIPlugin.getResourceString("src.MISession.Target_not_suspended")); //$NON-NLS-1$ } } if (isTerminated()) { - throw new MIException("Session terminated"); + throw new MIException(MIPlugin.getResourceString("src.MISession.Session_terminated")); //$NON-NLS-1$ } // TRACING: print the command; @@ -320,7 +320,7 @@ public class MISession extends Observable { try { cmd.wait(timeout); if (cmd.getMIOutput() == null) { - throw new MIException("Target is not responding (timed out)"); + throw new MIException(MIPlugin.getResourceString("src.MISession.Target_not_responding")); //$NON-NLS-1$ } } catch (InterruptedException e) { } diff --git a/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/RxThread.java b/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/RxThread.java index 93bac3fb00f..9f6c4ac480a 100644 --- a/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/RxThread.java +++ b/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/RxThread.java @@ -58,7 +58,7 @@ public class RxThread extends Thread { List oobList; public RxThread(MISession s) { - super("MI RX Thread"); + super("MI RX Thread"); //$NON-NLS-1$ session = s; oobList = new ArrayList(); } @@ -74,7 +74,7 @@ public class RxThread extends Thread { while ((line = reader.readLine()) != null) { // TRACING: print the output. MIPlugin.getDefault().debugLog(line); - processMIOutput(line + "\n"); + processMIOutput(line + "\n"); //$NON-NLS-1$ } } catch (IOException e) { //e.printStackTrace(); @@ -91,7 +91,7 @@ public class RxThread extends Thread { session.terminate(); } }; - Thread clean = new Thread(cleanup, "GDB Died"); + Thread clean = new Thread(cleanup, "GDB Died"); //$NON-NLS-1$ clean.setDaemon(true); clean.start(); } @@ -132,7 +132,7 @@ public class RxThread extends Thread { // Check if the state changed. String state = rr.getResultClass(); - if ("running".equals(state)) { + if ("running".equals(state)) { //$NON-NLS-1$ int type = 0; // Check the type of command // if it was a step instruction set state stepping @@ -158,12 +158,12 @@ public class RxThread extends Thread { session.getMIInferior().setRunning(); MIEvent event = new MIRunningEvent(id, type); session.fireEvent(event); - } else if ("exit".equals(state)) { + } else if ("exit".equals(state)) { //$NON-NLS-1$ // No need to do anything, terminate() will. session.getMIInferior().setTerminated(); - } else if ("connected".equals(state)) { + } else if ("connected".equals(state)) { //$NON-NLS-1$ session.getMIInferior().setConnected(); - } else if ("error".equals(state)) { + } else if ("error".equals(state)) { //$NON-NLS-1$ if (session.getMIInferior().isRunning()) { session.getMIInferior().setSuspended(); MIEvent event = new MIErrorEvent(rr, oobRecords); @@ -216,13 +216,13 @@ public class RxThread extends Thread { MIExecAsyncOutput exec = (MIExecAsyncOutput) async; // Change of state. String state = exec.getAsyncClass(); - if ("stopped".equals(state)) { + if ("stopped".equals(state)) { //$NON-NLS-1$ MIEvent e = null; MIResult[] results = exec.getMIResults(); for (int i = 0; i < results.length; i++) { String var = results[i].getVariable(); MIValue val = results[i].getMIValue(); - if (var.equals("reason")) { + if (var.equals("reason")) { //$NON-NLS-1$ if (val instanceof MIConst) { String reason = ((MIConst) val).getString(); e = createEvent(reason, exec); @@ -323,7 +323,7 @@ public class RxThread extends Thread { MIResult[] results = rr.getMIResults(); for (int i = 0; i < results.length; i++) { String var = results[i].getVariable(); - if (var.equals("reason")) { + if (var.equals("reason")) { //$NON-NLS-1$ MIValue value = results[i].getMIValue(); if (value instanceof MIConst) { String reason = ((MIConst) value).getString(); @@ -346,7 +346,7 @@ public class RxThread extends Thread { MIEvent createEvent(String reason, MIResultRecord rr, MIExecAsyncOutput exec) { MIEvent event = null; - if ("breakpoint-hit".equals(reason)) { + if ("breakpoint-hit".equals(reason)) { //$NON-NLS-1$ if (exec != null) { event = new MIBreakpointHitEvent(exec); } else if (rr != null) { @@ -354,58 +354,58 @@ public class RxThread extends Thread { } session.getMIInferior().setSuspended(); } else if ( - "watchpoint-trigger".equals(reason) - || "read-watchpoint-trigger".equals(reason) - || "access-watchpoint-trigger".equals(reason)) { + "watchpoint-trigger".equals(reason) //$NON-NLS-1$ + || "read-watchpoint-trigger".equals(reason) //$NON-NLS-1$ + || "access-watchpoint-trigger".equals(reason)) { //$NON-NLS-1$ if (exec != null) { event = new MIWatchpointTriggerEvent(exec); } else if (rr != null) { event = new MIWatchpointTriggerEvent(rr); } session.getMIInferior().setSuspended(); - } else if ("watchpoint-scope".equals(reason)) { + } else if ("watchpoint-scope".equals(reason)) { //$NON-NLS-1$ if (exec != null) { event = new MIWatchpointScopeEvent(exec); } else if (rr != null) { event = new MIWatchpointScopeEvent(rr); } session.getMIInferior().setSuspended(); - } else if ("end-stepping-range".equals(reason)) { + } else if ("end-stepping-range".equals(reason)) { //$NON-NLS-1$ if (exec != null) { event = new MISteppingRangeEvent(exec); } else if (rr != null) { event = new MISteppingRangeEvent(rr); } session.getMIInferior().setSuspended(); - } else if ("signal-received".equals(reason)) { + } else if ("signal-received".equals(reason)) { //$NON-NLS-1$ if (exec != null) { event = new MISignalEvent(exec); } else if (rr != null) { event = new MISignalEvent(rr); } session.getMIInferior().setSuspended(); - } else if ("location-reached".equals(reason)) { + } else if ("location-reached".equals(reason)) { //$NON-NLS-1$ if (exec != null) { event = new MILocationReachedEvent(exec); } else if (rr != null) { event = new MILocationReachedEvent(rr); } session.getMIInferior().setSuspended(); - } else if ("function-finished".equals(reason)) { + } else if ("function-finished".equals(reason)) { //$NON-NLS-1$ if (exec != null) { event = new MIFunctionFinishedEvent(exec); } else if (rr != null) { event = new MIFunctionFinishedEvent(rr); } session.getMIInferior().setSuspended(); - } else if ("exited-normally".equals(reason) || "exited".equals(reason)) { + } else if ("exited-normally".equals(reason) || "exited".equals(reason)) { //$NON-NLS-1$ //$NON-NLS-2$ if (exec != null) { event = new MIInferiorExitEvent(exec); } else if (rr != null) { event = new MIInferiorExitEvent(rr); } session.getMIInferior().setTerminated(); - } else if ("exited-signalled".equals(reason)) { + } else if ("exited-signalled".equals(reason)) { //$NON-NLS-1$ if (exec != null) { event = new MIInferiorSignalExitEvent(exec); } else if (rr != null) { diff --git a/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/TxThread.java b/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/TxThread.java index 97a4beb776d..15406bf6678 100644 --- a/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/TxThread.java +++ b/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/TxThread.java @@ -21,7 +21,7 @@ public class TxThread extends Thread { CLIProcessor cli; public TxThread(MISession s) { - super("MI TX Thread"); + super("MI TX Thread"); //$NON-NLS-1$ session = s; cli = new CLIProcessor(session); }