Skip to content

Instantly share code, notes, and snippets.

@jdiez17
Created May 11, 2012 12:08
Show Gist options
  • Save jdiez17/2659247 to your computer and use it in GitHub Desktop.
Save jdiez17/2659247 to your computer and use it in GitHub Desktop.
DCPU Debugging Symbols Standard
===============================
Version 1.0, by the DCPU Toolchain team.
Definitions
-----------
[uint8_t] -> An unsigned 8-bit word
[uint16_t] -> " " 16-bit word.
[uint32_t] -> " " 32-bit word.
[char] -> A signed 8-bit word.
[T*] -> An array of type T elements. T can be any type.
[string] -> char*, terminated by a NULL char.
File format
-----------
Byte ordering is LITTLE ENDIAN.
Header:
struct dbg_sym_file_header {
uint32_t magic;
uint32_t num_symbols;
};
The selected magic number for the debugging symbol format is ```0xc0debeaf```.
Debugging symbol:
struct dbg_sym {
uint16_t length;
uint8_t type;
uint8_t* payload
};
The length field represents the number of bytes in ```payload```.
Symbol types:
[0x0] -> Basic symbol.
[0x1-0xff] -> Reserved for future expansion.
Payload per type:
[0x0]
struct dbg_sym_basic_payload {
string path;
uint16_t lineno:
uint16_t address;
};
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment