国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【C++航海王:追尋羅杰的編程之路】探尋實用的調(diào)試技巧

這篇具有很好參考價值的文章主要介紹了【C++航海王:追尋羅杰的編程之路】探尋實用的調(diào)試技巧。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

目錄

1 -> 什么是bug?

2 -> 調(diào)試是什么?有多重要?

2.1 -> 調(diào)試是什么?

2.2 -> 調(diào)試的基本步驟

2.3 -> Debug和Release的介紹

3 -> Windows環(huán)境調(diào)試介紹

3.1 -> 調(diào)試環(huán)境的準備

3.2 -> 學會快捷鍵

3.3 -> 調(diào)試的時候查看程序當前信息

3.3.1 -> 查看臨時變量的值

3.3.2 -> 查看內(nèi)存信息

3.3.3 -> 查看調(diào)用堆棧

3.3.4 -> 查看匯編信息

3.3.5 -> 查看寄存器信息

4 -> 如何寫出好(易于調(diào)試)的代碼

4.1 -> 優(yōu)秀的代碼

5 -> 編程常見的錯誤

5.1 -> 編譯型錯誤

5.2 -> 鏈接型錯誤

5.3 -> 運行時錯誤


【C++航海王:追尋羅杰的編程之路】探尋實用的調(diào)試技巧,C++,c++,開發(fā)語言,c語言,visualstudio,后端

1 -> 什么是bug?

【C++航海王:追尋羅杰的編程之路】探尋實用的調(diào)試技巧,C++,c++,開發(fā)語言,c語言,visualstudio,后端

第一次被發(fā)現(xiàn)的導致計算機錯誤的飛蛾,也是第一個計算機程序錯誤。

2 -> 調(diào)試是什么?有多重要?

所有發(fā)生的事情都一定有跡可循,如果問心無愧,就不需要遮蓋也就沒有跡象了,如果問心有愧,就必然需要遮蓋,那就一定有跡象,跡象越多就越容易順藤而上,這就是推理的途徑。

順著這條途徑順流而下就是犯罪,逆流而上,就是真相。

【C++航海王:追尋羅杰的編程之路】探尋實用的調(diào)試技巧,C++,c++,開發(fā)語言,c語言,visualstudio,后端

2.1 -> 調(diào)試是什么?

調(diào)試(Debugging / Debug),又稱除錯,是發(fā)現(xiàn)和減少計算機程序或電子儀器設備中程序錯誤的一個過程。

2.2 -> 調(diào)試的基本步驟

  • 發(fā)現(xiàn)程序錯誤的存在

  • 以隔離、消除等方式對錯誤進行定位

  • 確定錯誤產(chǎn)生的原因
  • 提出糾正錯誤的解決方法
  • 對程序錯誤予以改正,重新測試

2.3 -> Debug和Release的介紹

Debug通常稱為調(diào)試版本,它包含調(diào)試信息,并且不作任何優(yōu)化,便于程序員調(diào)試程序。

Release稱為發(fā)布版本,它往往是進行各種優(yōu)化,使得程序在代碼大小和運行速度上都是最優(yōu)的,以便用戶很好地使用。

#define  _CRT_SECURE_NO_WARNINGS 1

#include <stdio.h>

int main()
{
	char* p = "hello world";

	printf("%s\n", p);

	return 0;
}

Debug環(huán)境的結(jié)果展示:?

【C++航海王:追尋羅杰的編程之路】探尋實用的調(diào)試技巧,C++,c++,開發(fā)語言,c語言,visualstudio,后端

Release環(huán)境的結(jié)果展示:

【C++航海王:追尋羅杰的編程之路】探尋實用的調(diào)試技巧,C++,c++,開發(fā)語言,c語言,visualstudio,后端

所以我們說調(diào)試就是在Debug版本的環(huán)境中,找代碼中潛伏的問題的一個過程。

看如下代碼:

#define  _CRT_SECURE_NO_WARNINGS 1

#include <stdio.h>

int main()
{
	int i = 0;
	int arr[10] = { 0 };
	for (i = 0; i <= 12; i++)
	{
		arr[i] = 0;
		printf("haha\n");
	}

	return 0;
}

如果是Debug模式去編譯,程序的結(jié)果是死循環(huán)。

如果是Release模式去編譯,程序沒有死循環(huán)。

3 -> Windows環(huán)境調(diào)試介紹

3.1 -> 調(diào)試環(huán)境的準備

【C++航海王:追尋羅杰的編程之路】探尋實用的調(diào)試技巧,C++,c++,開發(fā)語言,c語言,visualstudio,后端

環(huán)境中選擇Debug選項,才能使代碼正常調(diào)試。

3.2 -> 學會快捷鍵

【C++航海王:追尋羅杰的編程之路】探尋實用的調(diào)試技巧,C++,c++,開發(fā)語言,c語言,visualstudio,后端

最常使用的快捷鍵:

F5
啟動調(diào)試,經(jīng)常用來直接跳到下一個斷點處。
F9
創(chuàng)建斷點和取消斷點
斷點的重要作用,可以在程序的任意位置設置斷點。
這樣就可以使得程序在想要的位置隨意停止執(zhí)行,繼而一步步執(zhí)行下去。
F10
逐過程,通常用來處理一個過程,一個過程可以是一次函數(shù)調(diào)用,或者是一條語句。
F11
逐語句,就是每次都執(zhí)行一條語句,但是這個快捷鍵可以使我們的執(zhí)行邏輯進入函數(shù)內(nèi)部(這是最常用的)。
Ctrl?+ F5
開始執(zhí)行不調(diào)試,如果你想讓程序直接運行起來而不調(diào)試就可以直接使用。

3.3 -> 調(diào)試的時候查看程序當前信息

3.3.1 -> 查看臨時變量的值

【C++航海王:追尋羅杰的編程之路】探尋實用的調(diào)試技巧,C++,c++,開發(fā)語言,c語言,visualstudio,后端

3.3.2 -> 查看內(nèi)存信息

【C++航海王:追尋羅杰的編程之路】探尋實用的調(diào)試技巧,C++,c++,開發(fā)語言,c語言,visualstudio,后端

3.3.3 -> 查看調(diào)用堆棧

【C++航海王:追尋羅杰的編程之路】探尋實用的調(diào)試技巧,C++,c++,開發(fā)語言,c語言,visualstudio,后端

通過調(diào)用堆棧,可以清晰的反映函數(shù)的調(diào)用關系以及當前調(diào)用所處的位置。

3.3.4 -> 查看匯編信息

【C++航海王:追尋羅杰的編程之路】探尋實用的調(diào)試技巧,C++,c++,開發(fā)語言,c語言,visualstudio,后端

3.3.5 -> 查看寄存器信息

【C++航海王:追尋羅杰的編程之路】探尋實用的調(diào)試技巧,C++,c++,開發(fā)語言,c語言,visualstudio,后端

4 -> 如何寫出好(易于調(diào)試)的代碼

4.1 -> 優(yōu)秀的代碼

  1. 代碼運行正常
  2. bug很少
  3. 效率高
  4. 可讀性高
  5. 可維護性高
  6. 注釋清晰
  7. 文檔齊全

常見的coding技巧:

  1. 使用assert
  2. 盡量使用const
  3. 養(yǎng)成良好的編碼風格
  4. 添加必要的注釋
  5. 避免編碼的陷阱

5 -> 編程常見的錯誤

5.1 -> 編譯型錯誤

直接看錯誤提示信息(雙擊),解決問題?;蛘邞{借經(jīng)驗就可以搞定。

5.2 -> 鏈接型錯誤

看錯誤提示信息,主要在代碼中找到錯誤信息中的標識符,然后定位問題所在。一般是標識符名不
存在或者拼寫錯誤。

5.3 -> 運行時錯誤

借助調(diào)試,逐步定位問題。


感謝各位大佬支持?。?!

互三啦?。。?/strong>文章來源地址http://www.zghlxwxcb.cn/news/detail-848451.html

到了這里,關于【C++航海王:追尋羅杰的編程之路】探尋實用的調(diào)試技巧的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權(quán),不承擔相關法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • 【C++航海王:追尋羅杰的編程之路】C++11(中)

    【C++航海王:追尋羅杰的編程之路】C++11(中)

    目錄 C++11(上) 1 - STL中的一些變化 2 - 右值引用和移動語義 2.1 - 左值引用和右值引用 2.2 - 左值引用與右值引用比較 2.3 - 右值引用使用場景與意義 ?2.4 - 右值引用引用左值及其更深入的使用場景分析 2.5 - 完美轉(zhuǎn)發(fā) 新容器 圈起來的是C++11中的一些幾個新容器,但是實際最有用的

    2024年04月24日
    瀏覽(21)
  • 【C++航海王:追尋羅杰的編程之路】C++11(上)

    【C++航海王:追尋羅杰的編程之路】C++11(上)

    目錄 1 - C++11簡介 2 - 統(tǒng)一的列表初始化 2.1 - {}初始化 2.2 - std::initializer_list 3 - 聲明 3.1 - auto 3.2 - decltype 3.3 - nullptr 在2003年C++標準委員會曾經(jīng)提交了一份技術勘誤表(簡稱TC1),使得C++03這個名字已經(jīng)取代了 C++98稱為C++11之前的最新C++標準名稱。不過由于C++03(TC1)主要是對C++98標準中

    2024年04月23日
    瀏覽(31)
  • 【C++航海王:追尋羅杰的編程之路】關于模板,你知道哪些?

    【C++航海王:追尋羅杰的編程之路】關于模板,你知道哪些?

    目錄 1 - 泛型編程 2 - 函數(shù)模板 2.1 - 函數(shù)模板概念 2.2 - 函數(shù)模板格式 2.3 - 函數(shù)模板的原理 2.4 - 函數(shù)模板的實例化 2.5 - 函數(shù)參數(shù)的匹配原則 3 - 類模板 3.1 - 類模板的定義格式 3.2 - 類模板的實例化 怎樣實現(xiàn)一個通用的交換函數(shù)? 使用函數(shù)重載雖然可以實現(xiàn),但是有幾個不好的

    2024年02月20日
    瀏覽(25)
  • 【C++航海王:追尋羅杰的編程之路】關于模板,你知道哪些?

    【C++航海王:追尋羅杰的編程之路】關于模板,你知道哪些?

    目錄 1 - 非類型模板參數(shù) 2 - 模板的特化 2.1 - 概念 2.2 - 函數(shù)模板的特化 2.3 - 類模板的特化 2.3.1 - 全特化 2.3.2 - 偏特化 2.3.3 - 類模板特化應用實例 3 - 模板分離編譯 3.1 - 什么是分離編譯 3.2 - 模板的分離編譯 3.3 - 解決方法 4 - 模板總結(jié) 模板參數(shù)分為類型形參與非類型形參。 類型

    2024年04月11日
    瀏覽(23)
  • 【C++航海王:追尋羅杰的編程之路】繼承你學會了么?

    【C++航海王:追尋羅杰的編程之路】繼承你學會了么?

    目錄 1 - 繼承的概念及定義 1.1 - 繼承的概念 1.2 - 繼承的定義 1.2.1 - 定義格式 1.2.2 - 繼承關系和訪問限定符 1.2.3 - 繼承基類成員訪問方式的變化 2 - 基類和派生類對象賦值轉(zhuǎn)換 3 - 繼承中的作用域 4 - 派生類的默認成員函數(shù) 5 - 繼承與友元 6 - 繼承與靜態(tài)成員 7 - 復雜的菱形繼承及

    2024年04月16日
    瀏覽(30)
  • 【C++航海王:追尋羅杰的編程之路】priority_queue(優(yōu)先隊列) | 容器適配器你知道哪些?

    【C++航海王:追尋羅杰的編程之路】priority_queue(優(yōu)先隊列) | 容器適配器你知道哪些?

    目錄 1 -?priority_queue的介紹和使用 1.1 -?priority_queue的介紹 1.2 -?priority_queue的使用 1.3 -?priority_queue的模擬實現(xiàn) 2 - 容器適配器 2.1 - 什么是適配器 2.2 - STL標準庫中stack和queue的底層結(jié)構(gòu) 2.3 - deque的介紹 2.3.1 - deque的原理介紹 2.3.2 - deque的缺陷 2.4 - 為什么選擇deque作為stack和queue的底

    2024年04月10日
    瀏覽(46)
  • 漸進式編程之旅:探尋PHP函數(shù)的奇妙世界

    漸進式編程之旅:探尋PHP函數(shù)的奇妙世界

    目錄 前言 一、函數(shù)的定義和調(diào)用 1.1?初識函數(shù) 1.1.1?函數(shù)分類 1.1.2 自定義函數(shù) 1.1.3?return 1.2 參數(shù)設置 1.2.1 無參函數(shù) 1.2.2?按值傳遞參數(shù) 1.2.3?引用傳參 1.2.4?設置參數(shù)默認值 1.2.5?指定參數(shù)類型(弱) 1.3 變量的作用域 1.3.1 變量分類 1.3.2?全局變量的使用 1.3.3?global關鍵

    2024年02月08日
    瀏覽(21)
  • 【C++圖解專欄】手撕數(shù)據(jù)結(jié)構(gòu)與算法,探尋算法的魅力

    【C++圖解專欄】手撕數(shù)據(jù)結(jié)構(gòu)與算法,探尋算法的魅力

    ?個人博客:https://blog.csdn.net/Newin2020?spm=1011.2415.3001.5343 ??專欄定位:為 0 基礎剛?cè)腴T數(shù)據(jù)結(jié)構(gòu)與算法的小伙伴提供詳細的講解,也歡迎大佬們一起交流~ ??專欄簡介:在這個專欄,我將帶著大家一起用 C++ 手撕基礎的數(shù)據(jù)結(jié)構(gòu)與算法,每一講都有詳細的講解,29 篇文章共

    2024年02月09日
    瀏覽(27)
  • C語言—實用調(diào)試技巧

    C語言—實用調(diào)試技巧

    第一次被發(fā)現(xiàn)的導致計算機錯誤的飛蛾,也是第一個計算機程序錯誤。 計算機程序或者硬件里面存在的這種缺陷—bug(程序錯誤或程序缺陷) 找bug的過程—調(diào)試 所有發(fā)生的事情都一定有跡可循,如果問心無愧,就不需要掩蓋也就沒有跡象了,如果問心有愧,就必然需要掩蓋

    2024年02月04日
    瀏覽(20)
  • 實用調(diào)試技巧【上篇】

    實用調(diào)試技巧【上篇】

    ?? 本文章是在 Visual Studio 2022(VS2022)編譯環(huán)境下進行操作講解 Bug一詞的原意是臭蟲或蟲子。第一代計算機是由許多龐大的真空管組成,并利用大量的電力來使真空管發(fā)光。引得一只小蟲子Bug鉆進了一支真空管內(nèi),導致整個計算機無法工作。研究人員費了半天時間,總算發(fā)現(xiàn)

    2023年04月09日
    瀏覽(44)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包