4
我在Linux上使用ADDR2LINE並有產生分割故障特意測試ADDR2LINE報告1號碼的行號?
79 free(var1);
80
81 printf("Thread end...\n");
82 free(var1);
83 }
82線以下代碼上面是一個沒有「雙自由」和引起轉儲一個.. ...但是,當我在命令行上使用ADDR2LINE時,它會報告導致錯誤的行號爲83而不是82?
我在這裏錯過了什麼嗎? ADDR2Line是否提到了下一行?
感謝直升機
林頓
可能您的文本編輯器在0處開始行? –
或者該地址可能不是調用指令的地址,而是捕獲錯誤時棧中的返回地址。 – Dipstick
嘗試在第二個空閒()後添加另一個語句(行)。當從函數中返回*而不是在運行free()(這將解釋行號)時,程序可能會崩潰。另一個猜測可能是編譯後編輯了文件。 – nimrodm