Error Codes

kevindawson edited this page Nov 1, 2012 · 26 revisions

Error Codes

1. Bullwinkle Server Error Response < DBGp 6.5 debugger engine errors >

Is this an error number or code (string) why have a range 0-999 when a 2 digit code will do. hence following

Suggest we complete as we progress

We will use error codes in < DBGp 6.5 > as a guide only, see below in full.


zero - this is silly, you only get an error code when something went wrong, (hence no error corresponds to zero) which you will never see, hence reserved.

  • 00 - zero, no error ( 0, 00 )

10s Command parsing errors

20s File related errors

  • 20 - can not open file (as a reply to a "source" command if the requested source file can't be opened)

30s Breakpoint

40s Code flow errors

50s Data errors

  • 55 - Failed to set max-depth

60s to be defined

70s to be defined

80s to be defined

90s Protocol errors

  • 90 - Encoding not supported, Bullwinkle only talks in JSON
  • 99 - Unknown error, suggest it makes sense to have a catch all (even though I would find 42 more fitting)

< DBGp 6.5 debugger engine errors >

A debugger engine may need to relay error information back to the IDE in response to any command. The debugger engine may add an error element as a child of the response element. Note that this is not the same as getting language error messages, such as exception data. This is specifically a debugger engine error in response to a IDE command. IDEs and debugger engines may elect to support additional child elements in the error element, but should namespace the elements to avoid conflicts with other implementations.

UI Usable Message

6.5.1 Error Codes

The following are predefined error codes for the response to commands:

  • 000 Command parsing errors

0 - no error

1 - parse error in command

2 - duplicate arguments in command

3 - invalid options (ie, missing a required option, invalid value for a passed option) 4 - Unimplemented command

5 - Command not available (Is used for async commands. For instance if the engine is in state "run" then only "break" and "status" are available).

  • 100 File related errors

100 - can not open file (as a reply to a "source" command if the requested source file can't be opened)

101 - stream redirect failed

  • 200 Breakpoint, or code flow errors

200 - breakpoint could not be set (for some reason the breakpoint could not be set due to problems registering it)

201 - breakpoint type not supported (for example I don't support 'watch' yet and thus return this error)

202 - invalid breakpoint (the IDE tried to set a breakpoint on a line that does not exist in the file (ie "line 0" or lines past the end of the file)

203 - no code on breakpoint line (the IDE tried to set a breakpoint on a line which does not have any executable code. The debugger engine is NOT required to return this type if it is impossible to determine if there is code on a given location. (For example, in the PHP debugger backend this will only be returned in some special cases where the current scope falls into the scope of the breakpoint to be set)).

204 - Invalid breakpoint state (using an unsupported breakpoint state was attempted)

205 - No such breakpoint (used in breakpoint_get etc. to show that there is no breakpoint with the given ID)

206 - Error evaluating code (use from eval() (or perhaps property_get for a full name get))

207 - Invalid expression (the expression used for a non-eval() was invalid)

  • 300 Data errors

300 - Can not get property (when the requested property to get did not exist, this is NOT used for an existing but uninitialized property, which just gets the type "uninitialised" (See: PreferredTypeNames)).

301 - Stack depth invalid (the -d stack depth parameter did not exist (ie, there were less stack elements than the number requested) or the parameter was < 0)

302 - Context invalid (an non existing context was requested)

  • 900 Protocol errors

900 - Encoding not supported

998 - An internal exception in the debugger occurred

999 - Unknown error