GDB 抱怨我的源文件比可执行文件更新,并且似乎调试信息确实与源文件的旧版本有关,因为 gdb 在空白行上停止:
Program received signal SIGSEGV, Segmentation fault.
0x0000000000000000 in ?? ()
(gdb) up
#1 0x00007ffff7ba2d88 in CBKeyPairGenerate (keyPair=0x602010) at library/src/CBHDKeys.c:246
warning: Source file is more recent than executable.
246
(gdb) list
241 if (versionBytes == CB_HD_KEY_VERSION_TEST_PUBLIC
242 || versionBytes == CB_HD_KEY_VERSION_TEST_PRIVATE)
243 return CB_NETWORK_TEST;
244
245 return CB_NETWORK_UNKNOWN;
246
247 }
248
249 uint8_t * CBHDKeyGetPrivateKey(CBHDKey * key) {
250
但可执行文件比源文件更新,请参见此处:
$ ls -l library/src/CBHDKeys.c
-rw-r--r-- 1 matt matt 9249 Apr 29 22:40 library/src/CBHDKeys.c
$ ls -l bin/noLowerAddressGenerator
-rwxr-xr-x 1 matt matt 17845 Apr 30 15:52 bin/noLowerAddressGenerator
之后我尝试重建make clean
,ccache -C
但出现了同样的问题。当我更新源文件时,我只添加了空格,所以程序逻辑保持不变。我觉得这与它有关,但是由于我清除了 ccache 并清理了 build 和 bin 目录,make clean
我不确定发生了什么上。
版本:
- GNU Make 3.81
- gcc (Debian 4.8.2-16) 4.8.2
- GNU gdb (GDB) 7.6.2 (Debian 7.6.2-1)
- ccache 版本 3.1.9
- SolydXK - SMP Debian 3.13.5-1 (2014-03-04)