Q
調試用gcc
-3
A
回答
1
gcc
將打印出的(近似)線和位置發生錯誤的位置,並在其中的文件。
但是,沒有,gcc
不重複的代碼;您必須打開該文件,然後轉到該行。
通常情況下,你的集成開發環境,但是,將讓你點擊在gcc
輸出錯誤引用,並直接帶您到該行。 (至少)Eclipse,Anjuta和Emacs都是如此。
(並始終使用-Wextra
)
+0
+1'-Wextra'。但是如果你正在處理遺留代碼,你可能需要通過'-Wno-sign-compare'來壓制一些警告。另外,添加'-Wshadow'已經讓我擺脫了許多愚蠢的錯誤。 – 2011-12-29 02:09:46
2
的gcc
診斷的格式是一個線路號和一個診斷消息。不顯示有問題的代碼。
如果你想要更多的表現診斷,你可以嘗試clang
編譯器。的clang
診斷格式是行號,列數,所述診斷消息,並且以某些標記違規代碼的糊以示出其中的問題是。
例如,給定此代碼與printf語句後丟失分號:
#include <stdio.h>
int main(void)
{
int a = 42;
printf("%d\n", a)
return 0;
}
這裏是診斷消息的gcc
和clang
之間的差:
$ gcc -Wall tst.c
tst.c: In function ‘main’:
tst.c:9: error: expected ‘;’ before ‘return’
$ clang -Wall tst.c
tst.c:7:22: error: expected ';' after expression
printf("%d\n", a)
^
;
1 diagnostic generated.
$
相關問題
- 1. GCC調試信息
- 2. 調試堆/ STL調試相當於GCC?
- 3. 用gcc編譯和用greenhills調試調試器
- 4. gcc gdb無調試信息
- 5. 如何使用cmake調試gcc代碼
- 6. 以編程方式在GCC中調用調試器
- 7. GNU GCC編譯器優化和調試
- 8. gcc添加了哪些調試信息?
- 9. gcc不生成調試文件
- 10. GCC LTO似乎剝奪調試符號
- 11. 如何編譯GCC的調試版本?
- 12. gcc在Windows上調試日誌文件?
- 13. Eclipse/GCC是否有調試標誌
- 14. 錯誤嘗試用gcc
- 15. GCC cdecl調用約定
- 16. GCC函數調用錯誤
- 17. 使用GCC管理調試和發佈版本
- 18. 使用GDB的GCC中的調試特定傳遞
- 19. 如何使用Makefile項目進行GCC調試轉儲?
- 20. 如何在vim中使用cmake/gcc編譯/跳轉調試
- 21. 如何使用gcc 4.8使「Locals and Expressions」調試窗口運行?
- 22. 如何在VS中調試用gcc編譯的項目?
- 23. 使用GCC進行調試時END enum的問題ARM
- 24. 與CLANG編譯時,是否有相當於GCC的GCC進行調試?
- 25. 當從C程序調用GCC時抑制GCC錯誤輸出
- 26. 試圖用gcc工具鏈建立Boost
- 27. 嘗試編譯模塊Linux上用gcc
- 28. cmake如果測試GCC
- 29. Cygwin - 安裝gcc-java,但不能調用
- 30. 後遞增,函數調用,在GCC
可以,如果你有一個語法錯誤,你的代碼不會編譯(如果你嘗試過,你會發現這個!)。當然,有很多方法可以產生不會導致語法錯誤的錯誤。 – 2011-12-28 22:38:00
我如何解釋你的問題:你想編譯一個有可能錯誤的C程序。爲什麼不編譯它,看看會發生什麼?編輯:只是讓你知道,gcc給出錯誤所在的行。 – itdoesntwork 2011-12-28 22:39:18
我解釋的問題不同@itdoesntwork ......隨着越來越多的,「我可以看到有問題的代碼......」 – BRFennPocock 2011-12-28 22:40:39