On 5-6-2010 10:47, Michael Van Canneyt wrote: > On Sat, 5 Jun 2010, Jim wrote: <snip> >> Finally, the question: >> What I really want is to get a Firebird SQLCODE error code or some other >> details that allow me to figure out whether one of my custom exceptions >> get called. Also, it seems something is wrong after the error; although >> the objects still seem to exist, the database obviously won't insert >> anymore. >> >> How do I get proper error codes and/or fix this code? (Of course, >> suggestions on code improvement etc are also welcome) > > It might be worth putting all parameters in a record definition and pass > the > record to your function. That makes the procedure declaration somewhat more > manageable and understandable. (and definitely more efficent as well). > > Then, there is an access violation in your code: > Try to get a stack trace, we can then tell where the access violation > occured, maybe it will tell us a little more.
I've not yet looked into converting the procedure call parameters into a record. However, using gdb I got the following backtrace: gdb flocate break fpc_raiseexception =>gives Cannot access memory at address 0xc800 run c:\windows\system32 => passing the directory for flocate to search in. ... snip a lot of my program's debug output... Debug: 5-6-2010 11:54:30: SaveDirectoryEntry: going to add parameters for insert query (nmwcdclsx64.dll) Debug: 5-6-2010 11:54:30: SaveDirectoryEntry: insert query code done. (nmwcdclsx64.dll) Debug: 5-6-2010 11:54:30: SaveDirectoryEntry: going to add parameters for insert query (NOISE.CHS) Program received signal SIGSEGV, Segmentation fault. 0x000000010000ad7d in FINALIZE$_DATEUTILS () (gdb) backtrace #0 0x000000010000ad7d in FINALIZE$_DATEUTILS () #1 0x0000000005d73f80 in ?? () #2 0x00000000012baf10 in ?? () #3 0x00000000012baf10 in ?? () #4 0x000000010000715c in FINALIZE$_DATEUTILS () #5 0x0000000000010a70 in ?? () #6 0x0000000077c38f15 in ?? () #7 0x0000000000010000 in ?? () #8 0x0000000005d73f80 in ?? () #9 0x000000000102ef00 in ?? () #10 0x00000001000531b0 in FINALIZE$_DATEUTILS () #11 0x0000000000000000 in ?? () Hope this is what you're looking for... regards, jb _______________________________________________ fpc-pascal maillist - fpc-pascal@lists.freepascal.org http://lists.freepascal.org/mailman/listinfo/fpc-pascal