diff --git a/contributing.md b/contributing.md index 1ae218f..3257217 100644 --- a/contributing.md +++ b/contributing.md @@ -201,14 +201,20 @@ regenerating the table, however, make sure that you have all of it symbols already in your project so that you don't end up deleting any. One option is to import `symboltable.tsv` into your project with the `ImportSymbolsScript.py` script as mentioned under "Creating a JSRF Ghidra Project," but be aware that -this will overwrite any names you've assigned to the same symbols. +this will overwrite any names you've assigned to the same symbols. You will +also have to ensure that no two symbols share the same name. This can be +avoided by using namespaces if need be (i.e. `X::symbol` and `Y::symbol` may +coexist), but function overloading must be avoided (you may not have one +function with the signature `void X::f(int)` and another with the signature +`void X::f(float)`), else errors can arise when delinking, as the delinker +extension does not mangle symbol names. Once you're ready to export your symbols, open the symbol table (`Window > Symbol Table`). Open the symbol filter window (cog button near the top right), and uncheck everything but "User Defined" under "Symbol Source," "Data Labels" and "Function Labels" under "Symbol Types," "Use Advanced Filters," and "Non-Externals" under "Non-Externals." This ensures that you -only export symbols that you've defined and are useful for delinking. +only export symbols that you've defined and that are useful for delinking. Now we need to configure the columns that we want to export. Right-click on one of the colum headers, click "Add/Remove Columns..." to open the "Select