遇到一個問題,莫名其妙的出現coredump。指望返回的是指針值,可是返回值有截斷的效果。markdown
(gdb) p hash_table
$1 = (sf_ht_t ) 0xffffffffe0d66e00 -------->截斷值,高32位爲F,低32位正確。
(gdb) p ht_table
$2 = (struct sf_ht ) 0x7f82e0d66e00 --------->正確值ide
aaa.c:1130:38: warning: initialization of ‘sf_ht_t ’ {aka ‘struct sf_ht ’} from ‘int’ makes pointer from integer without a cast [-Wint-conversion]
因爲沒有及時處理代碼中的告警。將返回值的指針值系統優化爲int。致使程序coredump。函數
問題緣由是:
函數調用時,找不到函數定義。沒有引用頭文件致使的。
總結:正確對待,程序編譯過程當中的每個warning。優化