当前位置:网站首页>Introduction to program debugging and its use
Introduction to program debugging and its use
2022-08-10 15:21:00 【Seven, seven.】
Article table of contents
Debug
First, the concept of program debugging
Program debugging is the process of testing
, correcting syntax errors and logic errors by hand or compiling the program before putting it into actual operation.
Second, program debugging steps
1. Find the existence of program errors.
2. Locate the found error
3. Find out the cause of the error
4. Correct the error
5. Re-test the corrected program
Third, debugging in Windows environment
We use VS to debug in the Windows environment, and gdb in the linux environment.Debugging on VS is divided into two versions: Debug version and release version.
Debug version contains program debugging information without optimization.
The release version has carried out various optimizations to the program, so that the size and speed of the program code have been improved.Mainly for user use.
You can compare the running size of the two versions, as shown in the figure: 


Obviously debug is much bigger than release.Normal debugging can only be performed under the debug version.
Fourth, debugging shortcuts
F5: Start debugging, often used to jump directly to the next breakpoint.
F9: The important role of creating breakpoints and canceling breakpoints. Breakpoints can be set anywhere in the program.In this way, the program can be stopped at the desired position at will, and then executed step by step.
F10: by procedure, used to process a procedure can be a function call, or a statement.
F11: statement by statement, execute a statement each time, this shortcut key can make our execution logic enter the function.
5. What debugging can do
1. View the value of the temporary variable
Enter debugging, initialize the a array to 0 in the code as shown in the figure, and enter a in the monitor, and the values from 0 to 9 will be initialized to 0 as shown in the figure:

2. View memory information
Enter a in the memory to display the addresses of these 10 numbers:
Of course, you can also see &a in the monitor, for example, enter &a[1], &a[9].As shown: 
3. View the call stack


From the picture, we can see that the program only calls one main function.
4. View assembly information


5. View register information


6. Common compilation errors
(1), compilation error
Look directly at the error message in the box below, or solve it with your own experience
(2), link error
Look at the error message and find the identifier in the error message in the code. Generally, the identifier name does not exist or is misspelled. For example, main is written as mian or a non-existent function name is written.
(3), runtime error
This is relatively hard to find and requires debugging to gradually locate the error.
边栏推荐
- Mysql statement analysis, storage engine, index optimization, etc.
- MySQL Principle and Optimization: Update Optimization
- QOS function introduction
- 易基因|深度综述:m6A RNA甲基化在大脑发育和疾病中的表观转录调控作用
- 2022-08-10 Daily: Swin Transformer author Cao Yue joins Zhiyuan to carry out research on basic vision models
- Redis -- Nosql
- 解题-->在线OJ(十九)
- 使用Uiautomator2进行APP自动化测试
- [Semantic Segmentation] DeepLab Series
- Pytest framework optimization
猜你喜欢
随机推荐
LeetCode_2598_剑指Offer Ⅱ 091.粉刷房子
关于async\await 的理解和思考
fatal error C1083 无法打开包括文件'io.h' No such file
Understanding_Data_Types_in_Go
It is reported that the original Meitu executive joined Weilai mobile phone, the top product may exceed 7,000 yuan
Unfinished mathematics test paper ----- test paper generator (Qt includes source code)
High-paid programmers & interview questions series 135 How do you understand distributed?Do you know CAP theory?
Understanding_Data_Types_in_Go
E. Cross Swapping (and check out deformation/good questions)
【数仓设计】企业数仓为什么要进行分层?(六大好处)
消息称原美图高管加盟蔚来手机 顶配产品或超7000元
MySQL 原理与优化:Update 优化
常见SQL、API接口等常见约定
Redis -- Nosql
SWIG tutorial "two"
NFT digital collection development issue - digital collection platform
快速了解大端模式和小端模式
pytest框架优化
Azure IoT 合作伙伴技术赋能工作坊:IoT Dev Hack
[Semantic Segmentation] DeepLab Series









