調試技巧(vs2022 C語言)

調試之前首先要保證我們的腦袋是清晰的,我們調試的過程主要是看代碼有沒有按照我們的想法去運行

調試最常使用的幾個快捷鍵

F5

啟動調試,經常用來直接跳到下一個斷點處(F5通常和F9配合使用,打了斷點按F5程序可以直接運行到斷點處,這樣提高了調試效率)

F9

創建斷點和取消斷點(可以在程序的任意位置設置斷點,這樣可以讓程序在隨意的位置停止執行,繼而一步步執行下去)

按F5后直接運行到17行(這樣就不用手動讓for循環一次次走完了)

(可以在調試框監視你想看的變量)

中間帶加號的是條件斷點,可以右擊鼠標進行設置條件,只有滿足條件才運行到這個斷點

F10

逐過程,通常用來處理一個過程,這個過程可以是一次函數調用或者是一條語句。

F11

逐語句,即每次執行一條語句,但是這個快捷鍵可以使我們的執行邏輯進入函數的內部(這是最常用的)

F10和F11有區別,F11可以進到Add函數內部(但是現在的編譯器一般不支持調試庫函數),F10不會,所以F11更加細致

Ctrl+F5

直接執行不調試

自動窗口會自動把程序的變量信息顯示

監視窗口可以打開多個

a,4可以看到4個元素

a,10可以看見10個元素

還可以查看內存

調試可以看函數堆棧,反匯編,寄存器等

調試練習:

這段代碼是死循環,通過調試的方法發現問題

已經越界訪問了,但是可以改arr[10]的值,hehe也正常打印

但是改完arr[12]后,i又會變回0,這樣子循環往復,變成死循環

i在變的時候arr[12]也在變,并且值變化相同,說明他們在同一塊空間上

vs arr和i之間是兩個空間,但是不同的編譯器可能不同

用assert要包含頭文件

實例理解:

要學會寫優秀的代碼

str只是提供元素的內容,不需要被改變,用const修飾能讓代碼更加健壯

避免傳過來的是空指針可以加上assert進行判斷

鏈接性錯誤可以通過查找(Ctrl+F)發現錯誤

運行時錯誤是編譯和鏈接都沒問題,但是結果有問題或者其他情況,這個要通過調試解決問題

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/93635.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/93635.shtml
英文地址,請注明出處:http://en.pswp.cn/web/93635.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

MySQL深度理解-Innodb底層原理

1.MySQL的內部組件結構大體來說,MySQL可以分為Server層和存儲引擎層兩部分。2.Server層Server層主要包括連接器、查詢緩存、分析器、優化器和執行器等,涵蓋MySQL的大多數核心服務功能,以及所有的內置函數(如日期、時間、數據和加密…

QFtp在切換目錄、上傳文件、下載文件、刪除文件等一系列操作時,如何按照預期操作指令順序執行

FTP服務初始化時,考慮到重連、以及commandFinished信號信號執行完成置m_bCmdFinished 為true; void ICore::connectFtpServer() {if(g_pFile nullptr){g_pFile new QFile;}if(g_pFtp){g_pFtp->state();g_pFtp->abort();g_pFtp->deleteLater();g_pFtp n…

JavaSE高級-02

文章目錄1. 多線程1.1 創建線程的三種方式多線程的創建方式一:繼承Thread類多線程的創建方式二:實現Runnable接口多線程的創建方式三:實現Callable接口三種線程的創建方式對比Thread的常用方法1.2 線程安全線程同步方式一:同步代碼…

從舒適度提升到能耗降低再到安全保障,樓宇自控作用關鍵

在現代建筑的發展歷程中,樓宇自動化控制系統(BAS)已從單純的設備管理工具演變為集舒適度優化、能耗控制與安全保障于一體的核心技術。隨著物聯網和人工智能的深度應用,樓宇自控系統正以數據為紐帶,重構人與建筑的關系。…

圖像分類精度評價的方法——誤差矩陣、總體精度、用戶精度、生產者精度、Kappa 系數

本文詳細介紹 “圖像分類精度評價的方法”。 圖像分類后,需要評估分類結果的準確性,以判斷分類器的性能和結果的可靠性。 常涉及到下面幾個概念(指標) 誤差矩陣、總體精度、用戶精度、生產者精度和 Kappa 系數。1. 誤差矩陣&#…

【科普向-第一篇】數字鑰匙生態全景:手機廠商、車廠與協議之爭

目錄 一、協議標準之爭:誰制定規則,誰掌控入口 1.1 ICCE:中國車企主導的自主防線 1.2 ICCOA:手機廠商的生態突圍 1.3 CCC:國際巨頭的高端壁壘 1.4 協議對比 二、底層技術路線:成本與安全的博弈 2.1B…

dockerfile及docker常用操作

1: docker 編寫 Dockerfile 是用于構建 Docker 鏡像的文本文件,包含一系列指令和參數,用于定義鏡像的構建過程 以下是關鍵要點: 一、基本結構 ?FROM?:必須作為第一條指令,指定基礎鏡像(如 FROM python:3.…

[vibe coding-lovable]lovable是不是ai界的復制忍者卡卡西?

在火影忍者的世界里,卡卡西也被稱為復制忍者,因為大部分忍術都可以被其Copy! 截圖提示:實現這個效果 -> 發給Lovalbe -> 生成的的效果如下,雖然不是1比1還原,但是這個效果也很驚艷。 這個交互設計,這個UI效果&am…

技術賦能安全:智慧工地構建城市建設新防線

城市建設的熱潮中,工地安全始終是關乎生命與發展的核心議題。江西新余火災等事故的沉痛教訓,暴露了傳統工地監管的諸多短板——流動焊機“行蹤難覓”,無證動火作業屢禁不止,每一次監管缺位都可能引發災難性后果。如今,…

Sublime Text 代碼編輯器(Mac中文)

原文地址:Sublime Text Mac 代碼編輯器 sublime text Mac一款輕量級的文本編輯器,擁有豐富的功能和插件。 它支持多種編程語言,包括C、Java、Python、Ruby等,可以幫助程序員快速編寫代碼。 Sublime Text的界面簡潔、美觀&#…

如何制定項目時間線,合理預計?

制定一份現實可行且行之有效的項目時間線,是一個系統性的分解、估算與排序過程,而非簡單的日期羅列。核心步驟包括:明確項目范圍與可交付成果、利用工作分解結構(WBS)進行任務拆解、科學估算各項任務的持續時間、識別并…

RSA詳解

一、RSA 簡介RSA 是一種公鑰密碼體制,由羅納德?李維斯特(Ron Rivest)、阿迪?薩莫爾(Adi Shamir)和倫納德?阿德曼(Leonard Adleman)于 1977 年提出,算法名稱由他們三人姓氏的首字母…

Linux獲取物理硬盤總容量

獲取物理硬盤總容量: 1.查看單個硬盤: 使用 lsblk 或 fdisk -l (需要 sudo) 命令。它們會直接列出物理硬盤 (sda, nvme0n1 等) 和它們的分區,并顯示硬盤的總物理容量。 abcd四塊物理盤,只掛載使用3塊,留一塊未使用 最常見的原因通常是配置了熱備盤(RAID 1/5/6/10 等冗余…

STM32學習筆記14-I2C硬件控制

I2C外設簡介STM32內部集成了硬件I2C收發電路(硬件收發器:自動生產波形,自動翻轉電平等),可以由硬件自動執行時鐘生成、起始終止條件生成、應答位收發、數據收發等功能,減輕CPU的負擔——軟件只需要寫入控制…

電子電氣架構 --- 軟件開發數字化轉型

我是穿拖鞋的漢子,魔都中堅持長期主義的汽車電子工程師。 老規矩,分享一段喜歡的文字,避免自己成為高知識低文化的工程師: 簡單,單純,喜歡獨處,獨來獨往,不易合同頻過著接地氣的生活,除了生存溫飽問題之外,沒有什么過多的欲望,表面看起來很高冷,內心熱情,如果你身…

我國空間站首次應用專業領域 AI大模型

據中國載人航天工程辦公室消息,北京時間2025年8月15日22時47分,經過約6.5小時的出艙活動,神舟二十號乘組航天員陳冬、陳中瑞、王杰密切協同,在空間站機械臂和地面科研人員的配合支持下,圓滿完成既定任務,出…

WPF真入門教程35--手搓WPF出真汁【蜀味正道CS版】

1、項目介紹 本項目采用多層架構設計,使用wpf,Panuon.UI.Silver控件庫,AduSkin皮膚,MVVM等技術開發具有復雜交互和視覺效果的CS應用程序。WPF適用于企業級桌面應用:如ERP、CRM系統,需復雜表單和報表。WPF適…

JMeter與大模型融合應用之構建AI智能體:評審性能測試腳本

JMeter與大模型融合應用之構建AI智能體:評審性能測試腳本 一、引言 隨著DevOps和持續測試的普及,性能測試已成為軟件開發生命周期中不可或缺的環節。Apache JMeter作為最流行的開源性能測試工具之一,被廣泛應用于各種性能測試場景。然而&…

K8s 和 Docker的區別

一、各自誕生背景——為什么需要兩個東西Docker(2013,Docker Inc.) ? 目的:解決“我的代碼在你機器跑不起來”的經典環境問題。 ? 做法:用 Linux 內核的 cgroup/namespace 做輕量隔離,把“應用 依賴”打…

10.0 UML的介紹以及VisualStudio中查看類圖

本文介紹UML圖的含義、以及如何在VisualStudio中查看類圖。 一、UML圖介紹 UML(Unified Modeling Language,統一建模語言)是一種標準化的建模語言,用于可視化、規范、構建和記錄軟件系統的各個方面的圖表工具。 UML圖分為結構圖和行為圖兩大類: 結構圖?…