首页 > 编程语言 >调试程序

调试程序

时间:2024-09-13 10:35:40浏览次数:5  
标签:正确 程序 gdb 调试程序 小样 断点

调试程序

一、通读查看

通读代码,检查各部分的实现是否与自己的算法相同,检查各部分的逻辑是否正确,即这么做是否能得到正确答案。

  • 条件:通用

二、输出过程变量

即看与自己的期望结果是否一致,如果不一致,则逆向追根溯源,找到第一个出现问题的地方。

  • 条件:有小样例

三、对拍

即不断地与有正确性的程序运行相同的输入,看他们给的输出是否一致,同时也可以为【输出过程变量】的调试方法提供小样例

  • 条件:容易造数据,有唯一解,或很简单就可以写spj

  • 注意:data.cpp不能写错了,另一个程序一定是正确的。

四、构造数据

构造一些特殊的数据、意想不到的情况,使得程序很有可能是错误的,并让程序可能是错误的。自己卡自己,而不是让出题人卡自己。

  • 条件:只能是小样例

五、断言过程

不仅要保证答案正确,还要保证整个过程都在掌控之中,结合assert,使得过程的条件与你的预期一致。

  • 好处:可以避免本质错误但小样例、随机数据下正确的情况(拍不出来)。

  • 条件:通用

六、gdb查RE

借助 MinGW 工具 gdb 进行程序运行过程的跟踪。首先需要在 C++ 编译环境中打开产生调试信息。

路径:"C:\Program Files (x86)\Dev-Cpp\MinGW64\bin\gdb.exe"

常用命令:

  • run/r 运行程序 kill 结束程序

  • backtrace 跟踪程序

  • b 行号/函数名 在相应位置加上断点。

  • print/p 变量 输出变量的值

  • c/conti/continue 跳过断点,继续运行

  • d 要删除的断点编号 直接 delete 删除所有断点。

参考:GDB调试指南

标签:正确,程序,gdb,调试程序,小样,断点
From: https://www.cnblogs.com/lupengheyyds/p/18411779

相关文章

  • [oeasy]python0026_调试程序_pdb3_帮助_help_求助_文档
    调试程序_debug_next_下一步_list_pdb3......
  • 0184-QEMU 调试程序
    环境Time2022-11-13WSL-Ubuntu22.04QEMU6.2.0Rust1.67.0-nightly前言说明参考:https://os.phil-opp.com/minimal-rust-kernel目标将上一节编写的可执行文件制作成QEMU可以启动的镜像,并使用QEMU调试。main.rs#![no_std]#![no_main]staticHELLO:&[u8]=b"......
  • java编辑器中如何调试程序?
    目录如何调试java程序?待续、更新中如何调试java程序?1看错误信息2相应位置输入输出信息:System.out.println("测试信息1");以此查看哪条语句未进行输入待续、更新中1顿号、:先使用ctrl+.,再使用一遍切回2下标:21==2~1~3上标:......
  • C++实现memcpy和memmove(含调试程序)
    #include<iostream>#include<string>usingstd::cout;usingstd::endl;void*mymencpy(void*dest,void*src,size_tnum){ char*d=(char*)dest; char*s=(char*)src; while(num--){ *(d++)=*(s++); } returnd;}void*mymenmove(vo......
  • C++实现直接插入排序、冒泡排序、快速排序、选择排序(含调试程序)
    #include<iostream>#include<fstream>#include<string>#include<vector>#include<algorithm>usingnamespace::std;classSolution{public: //直接插入排序 voidinsertsort(vector<int>&num){ for(inti=1;i<num......
  • GDB调试程序 [补档-2023-07-19]
    gdb调试​它是gcc的调试工具,调试工具都能干什么就不多说了。7-1生成调试信息​在使用gcc编译c/c++的程序时,需要在编译命令中加入-g这一参数,它可以为你显示函数名,变量名等待。例如:gcc-gtest.c-otest​7-2启动gdb调试信息​启动指令:gdb可执行程序......
  • windbg preview调试程序卡死
    程序是winform.net4.0,从机台环境那下程序,和dump。因为程序是32位,故dump要用32位任务管理器转储。windbgpreview是最新的windbg工具,操作简单多了。1、直接打开Dump文件2、设置好符号地址为程序目录(D:\dump20231129\jtexe)和服务器地址(srv*d:\symbols*http://msdl.microsoft.co......
  • VS 在 Release 模式下使用断点调试程序
      修改方法:项目属性--》c/c++--》常规--》调试信息格式选择程序数据库(默认:无)项目属性--》c/c++--》优化--》优化选择已禁用(默认:优化)项目属性--》链接器--》调试--》生成调试信息选择优化以便于调试(默认:......
  • Visual Studio 启动调试程序 以管理员运行的设置(相比右键管理员运行生成好的exe文件优
    在解决方案文件上,选择添加=>新项目=>应用程序清单文件然后在C#上打开它。在应用程序清单文件上,将“asInvoker”重命名为“requireAdministrator”。生成解决方案。可以管理员权限打开所有应用程序。......
  • 使用 dependency walker 调试程序依赖项
    一般有两种使用方式,一种是运行可执行文件或命令,根据输出日志动态查看缺失的依赖项;一种是打开.dll等文件,查看静态文件依赖项。1.可执行文件,比如.exe,file->open打开后,再选择profile->startprofiling...输入启动参数,即可以开始调试输出。  比如要调试动态注册.dll......