You will generally need a debug build to conveniently debug code at the source level. But that is unlikely to be of much help because this is what you will find: The SQLite library is suffering an address fault because it has been given a trashed heap and is susceptible to [the GIGO principle](https://en.wikipedia.org/wiki/Garbage_in,_garbage_out). The heap is almost certainly being taken from its pristine (not-garbage) initial condition to a trashed condition by effects flowing from your code or possibly other portions of the application using the SQLite library. I suggest you get your callback scheme working with some simple data type that does not require heap allocation (such as floats or integers), and only once you have that working make the transition to passing strings or blobs through your native-mode / coddled-execution interface. There is far less opportunity to be using bad pointers with the simple data types.