I'm afraid the build is still broken and it looks like addresses
calculates in wrong way. Here is some details of crash.
roman:firebird$ gdb --args
/home/roman/prj/firebird/gen/Debug/firebird/bin/isql -q -i
/home/roman/prj/firebird/src/dbs/metadata.sql
GNU gdb (GDB) 7.5.1
Copyright (C) 2012 Free
I did more investigations and here is what I found. Note that manually
calculated alligned address is correct. Also note that the rest of
invalid address looks like correct one has. It seems assignment
right part of expression cut 8 bytes pointers to 4 bytes. But I have
explanation of this.
Sorry my hurry. I tried to rewrite it without FB_ALLIGN and
understand. cuts 4 bytes.
(gdb) print (char*) ((0x71e93040 + (FB_SIZE_T)4096 - 1)
~((FB_SIZE_T)4096 - 1))
$14 = 0xf1e94000 Address 0xf1e94000 out of bounds
(gdb) print sizeof(FB_SIZE_T)
$15 = 4
So the root of problem is that
On 19-7-2014 11:52, Mark Rotteveel wrote:
Are there any design notes on protocol version 11, 12 and 13. With
version 11 I am running into problems with hanging connections after
executing DDL which seems to indicate that I expect more responses than
I receive. I haven't been able to find the
19.07.2014 14:14, Roman Simakov wrote:
IMO FB must use system size_t.
We were using system size_t until Nickolay had committed FB_SIZE_T a few
days ago in attempt to avoid warnings. The bad thing is that it wasnt't
discussed.
Dmitry