GCC 除錯/草稿
外觀
< GCC 除錯
新內容\想法測試頁面
關於本書\什麼是“GCC 除錯”
- 目標
- 詳細、易於理解的手冊
- 涵蓋使用 GCC 進行故障排除
- 使消除錯誤的過程不那麼痛苦\費時
- 目標受眾
- 具有程式語言經驗的新 GCC 使用者
- 風格
- 通用語言(不過於技術性)
- 書籍範圍
- gcc
- g++
- gdb
- 其他編譯器?
錯誤和警告頁面應包括
- 詳細解釋錯誤資訊
- GCC 版本(s) 發現於
- 早期版本的錯誤資訊?
- 會導致顯示訊息的示例程式碼
- 消除故障資訊的修復方法(取決於原因)
底部有備註,錯誤原因是級別 2 標題下的級別 3 標題,“原因”
Page Title...
==Causes==
===<Possible Error Cause>===
<syntaxhighlight lang="cpp">
// source code producing error
</syntaxhighlight>
''' Solutions'''
What to change...
<syntaxhighlight lang="cpp">
// source code fixing error
</syntaxhighlight>
==Notes==
*Message found in gcc versions x.x.x to x.x.x
<noinclude>{{displaytitle|title=Full Error Message}}</noinclude>
{{BookCat}}
例子
頁面標題...
例如,一個函式“foo”從 main 內部呼叫,它使用一個引數,該引數與任何當前存在的“foo”實現都不完全匹配。
void foo(int x);
void foo(double x);
int main () {
long x = 5000;
foo(x);
...
解決方案
將引數強制轉換為匹配宣告
int main () {
long x = 5000;
foo((int)x);
建立一個新的、過載版本的被呼叫函式以匹配引數
void foo(int x);
void foo(double x);
void foo(long x);
int main () {
long x = 5000;
foo(x);
- 查詢拼寫錯誤或重複的函式定義/宣告
- 在 gcc 版本 4.5.1 中發現該訊息
頂部有備註,原因是級別 2 標題而不是級別 3 標題
Page Title...
example of error message
<!-- Make below an info box? -->
'''Found in:''' gcc versions x.x.x to x.x.x
'''Past Versions:''' <!-- If there are any -->
example of error message
'''Found in:''' gcc versions x.x.x to x.x.x
'''See Also:'''
similar error messages?
'''Causes:'''
==<Possible Error Cause>==
<syntaxhighlight lang="cpp">
// source code producing error
</syntaxhighlight>
'''Solutions'''
What to change...
<syntaxhighlight lang="cpp">
// source code fixing error
</syntaxhighlight>
<noinclude>{{displaytitle|title=Full Error Message}}</noinclude>
{{BookCat}}
例子
頁面標題...
foo.cpp:23:12 call of overloaded 'foo' is ambiguous
- 發現於:gcc 版本 x.x.x 到 4.5.1
- 原因
例如,一個函式“foo”從 main 內部呼叫,它使用一個引數,該引數與任何當前存在的“foo”實現都不完全匹配。
void foo(int x);
void foo(double x);
int main () {
long x = 5000;
foo(x);
...
解決方案
將引數強制轉換為匹配宣告
int main () {
long x = 5000;
foo((int)x);
建立一個新的、過載版本的被呼叫函式以匹配引數
void foo(int x);
void foo(double x);
void foo(long x);
int main () {
long x = 5000;
foo(x);
- 查詢拼寫錯誤或重複的函式定義/宣告