Documentation Index
Fetch the complete documentation index at: https://mintlify.com/SMGCommunity/Petari/llms.txt
Use this file to discover all available pages before exploring further.
symbols.txt provides decomp-toolkit with a complete inventory of every symbol in a module. Each line associates a name — which for C++ code is the mangled identifier — with its section, address, and optional metadata. This metadata drives disassembly formatting, object generation, and linker script production. The file is updated automatically when decomp-toolkit analyzes the binary, but individual entries can be hand-edited or annotated to guide the tooling.
Format
symbol_name— The symbol’s identifier. For C++ symbols this is the mangled name (for example,__dt__13mDoExt_bckAnmFvis the destructor ofmDoExt_bckAnm).section— The ELF section the symbol lives in (for example,.text,.data,.bss).address— The symbol’s address. For DOL splits this is an absolute address; for REL splits it is section-relative. Numbers may be decimal or hexadecimal; hexadecimal values must be prefixed with0x.
// or # are permitted but are not preserved when decomp-toolkit rewrites the file.
Examples from Petari
Attributes
All attributes are optional and space-separated inside the// … comment.
type:
type:
The kind of symbol. Affects how decomp-toolkit generates disassembly and object files.
| Value | Meaning |
|---|---|
function | Executable code. Disassembled as PowerPC instructions. |
object | Data. Disassembled according to the data: attribute. |
label | An address marker with no associated size. |
size:
size:
The size of the symbol in bytes. Required for
object symbols to produce correct disassembly. Accepts decimal or 0x-prefixed hexadecimal.scope:
scope:
The symbol’s visibility in the generated object file.
| Value | Meaning |
|---|---|
global | Exported; visible to the linker from other objects. This is the default. |
local | File-scoped; not exported. Corresponds to static in C/C++. |
weak | Exported but may be overridden by a strong definition elsewhere. |
align:
align:
The alignment of the symbol in bytes. When specified, decomp-toolkit uses this value instead of inferring alignment from the surrounding data.
data:
data:
Controls how an
object symbol’s bytes are formatted in the disassembly output. Only meaningful when type:object is also set.| Value | Description |
|---|---|
byte | 8-bit unsigned integers |
2byte | 16-bit unsigned integers |
4byte | 32-bit unsigned integers |
8byte | 64-bit unsigned integers |
float | 32-bit IEEE 754 floats |
double | 64-bit IEEE 754 doubles |
int | Signed 32-bit integers |
short | Signed 16-bit integers |
string | Null-terminated ASCII string |
wstring | Null-terminated wide (UTF-16) string |
string_table | Array of null-terminated ASCII strings |
wstring_table | Array of null-terminated wide strings |
hidden
hidden
force_active
force_active
Marks the symbol as “exported” in the generated object and adds it to
FORCEACTIVE in the generated ldscript.lcf. This prevents the linker from dead-stripping the symbol even if it appears unreferenced.See Comment section for how the export flag interacts with .comment section generation.noreloc
noreloc
Prevents the contents of the symbol from being interpreted as addresses during relocation analysis. Use this for data objects whose byte patterns happen to look like pointers but are not.
noexport
noexport
When the
export_all option is enabled in the project configuration, this flag excludes the symbol from being exported. Use it for symbols that are affected by the linker’s -code_merging optimization and should not be forced active.stripped
stripped
Indicates that this symbol was removed by the linker from the final binary. Stripped symbols are still recorded because they can influence the common BSS inflation bug even though they do not appear in the output.