Hi,
I'm using tcc as a back-end code generator for a custom scripting
language and have some questions about in-memory compilation.
I was compiling to a memory block that I was allocating and keeping
after deleting the compiler but was later getting crashes. Debugging it
I came to realize this was because the read/write/execute protection on
the code segments was left intact, causing exceptions later when that
memory was re-used by someone else. Also, on Windows it seems the
function table needs to be deleted (RtlDeleteFunctionTable).
My fix for the moment at least is to not call tcc_delete until I'm
finished with the in-memory code.
Questions:
1. Is it possible to keep, use and then release the compiled code after
the initial compiler instance has been deleted (ie: after tcc_delete).
I couldn't see anything in the header file for this.
2. Assuming that I need to not tcc_delete until after the in-memory code
has been released how much of the original compilation state is being
held in memory? eg: symbol tables, #defines, AST etc... ie: would it
be worth providing a way to disconnect the in-memory code from the
compiler state in a way that all that cleanup can be done without the
original compiler instance?
(sorry if my terminology is off-base, I'm very new to tcc)
Any help much appreciated.
Brad
_______________________________________________
Tinycc-devel mailing list
Tinycc-devel@nongnu.org
https://lists.nongnu.org/mailman/listinfo/tinycc-devel