首页 > 其他分享 >开发之调试-debug

开发之调试-debug

时间:2024-02-27 16:15:54浏览次数:27  
标签:python 代码 -- step 开发 debug 调试

流程

需求或创意--开发--调试--测试--部署-上线

debug

c++    有 gdb
java   有 jdb
python 有 pdb
调试器会附加到应用进程 打断点 

python 调试

print assert pdb

## assert的异常参数,其实就是在断言表达式后添加字符串信息,
   用来解释断言并更好的知道是哪里出了问题。格式如下:
   assert expression [, arguments]
   assert 表达式 [, 参数]
	
import pdb	

Debug 工具

Debug Python File in Terminal
    Variables   侧边栏查看变量的当前状态、监视表达式的值,甚至在控制台中运行代码片段以检查程序状态。
	Watch
	call stack
	breakpoints
	debug console     旁边Terminal
debug -步过 (Step Over)、步入 (Step Into)、步出 (Step Out)、重新开始和停止调试会话
   continue  
   step into  单步执行 (F11)	运行下一行代码,并进入被调用的函数。
   step over  单步执行 (F10)	运行下一行代码,但不进入被调用的函数。
   step out   单步跳出 (Shift+F11)	运行当前函数的其余部分,并在调用代码中暂停。
   stop
   restart 

c++

Linux 
   gcc g++ gdb 
Linux Cmake 
  注意设置程序为debug模式,这样才能够进行代码调试

 在 Linux 下开发,可以用 gdb 进行调试,
    在linux环境下通过设置编译选项 CXXFLAGS 或者 CFLAGS 使程序可以支持GDB调试,
	      CFLAGS 表示用于 C 编译器的选项, 
          CXXFLAGS 表示用于 C++ 编译器的选项 
	在CMake构建的工程中也可以方便的实现
     coredump 进程奔溃时,系统会把奔溃前的信息转储在一个叫做 core 的文件。
 但是如果工程是用 CMake 构建的,那么需要在 CMakeLists.txt 中加入如下代码: CMake 配置
    SET(CMAKE_BUILD_TYPE "Debug")  
    SET(CMAKE_CXX_FLAGS_DEBUG "$ENV{CXXFLAGS} -O0 -Wall -g2 -ggdb")  
    SET(CMAKE_CXX_FLAGS_RELEASE "$ENV{CXXFLAGS} -O3 -Wall")  

参考

了解如何使用 Visual Studio 调试 C++ 代码
https://learn.microsoft.com/zh-cn/visualstudio/debugger/getting-started-with-the-debugger-cpp?view=vs-2022
https://learn.microsoft.com/zh-cn/visualstudio/python/tutorial-working-with-python-in-visual-studio-step-04-debugging?view=vs-2022

标签:python,代码,--,step,开发,debug,调试
From: https://www.cnblogs.com/ytwang/p/18037061

相关文章

  • 测温方案开发——红外额温枪芯片方案
    红外额温枪作为测温设备,可以实现非接触近距离测量人体的体温,在特殊情况下,为了避免直接接触人体,防止交叉感染,在很多地方都需要用到红外额温枪。红外额温枪采用的红外传感器均为热电堆式,基本物理原理是塞贝克效应。其测量距离为3~8CM,太远距离将会导致数据有偏差,测量模式下额头测......
  • Hybird App开发,一种快速实现纯血鸿蒙App开发的理念
    2024年1月18日的开发者(HDC)大会上,就官宣了“纯血鸿蒙”操作系统即将于2024年3季度正式投产。与此同时,支付宝、京东、小红书、微博、高德地图、中国移动等在内的超百个头部应用都启动了鸿蒙原生应用开发,鸿蒙开发者日新增注册量已过万,同时众多985、211高校接连开设HarmonyOS相关课程......
  • Rust开发日记
    Gettingstarted-RustProgrammingLanguage(rust-lang.org)  安装好配置环境变量Path:%CARGO_HOME%和%RUSTUP_HOME% 建立config文件,不要扩展名。[source.crates-io]registry="https://github.com/rust-lang/crates.io-index"#替换成你偏好的镜像源replace-......
  • 项目开发中 Redis 缓存和数据库一致性问题及解决方案
    引入Redis缓存提高性能如果公司的项目业务处于起步阶段,流量非常小,那无论是读请求还是写请求,直接操作数据库即可,这时架构模型是这样的:但随着业务量的增长,你的项目业务请求量越来越大,这时如果每次都从数据库中读数据,那肯定会有性能问题。这个阶段通常的做法是,引入缓存来提高读性......
  • Taurus.MVC WebMVC 入门开发教程3:数据绑定Model
    前言:在这篇Taurus.MVCWebMVC入门开发教程的第三篇文章中,我们将重点介绍如何进行数据绑定操作,还会学习如何使用${属性名称} CMS语法来绑定页面上的元素与Model中的属性。步骤1:创建Model首先,我们需要创建一个Model类来存储数据。在VisualStudio中,右键单击项目文......
  • vue3开发
    主界面的模板<template><divclass="login-back"><divclass="login-container"><h2>人口信息管理系统</h2><el-formref="loginFormRef":model="loginForm":rules="l......
  • VSCode+Vim 开发
    VSCode+Vim开发一、安装及配置vim插件0.安装vim拓展1.拷贝配置到settings.json中settings.json在"文件"->"首选项"->"设置"->"文本编辑器"{"vim.easymotion":true,"vim.incsearch":true,"vim.useSystemCl......
  • ## 进行开发5
    在完成的数据库操作后,自己看到别人的app都有图表,于是自己也尝试学了下安卓中的图表。刚开始学习过程有些坎坷,但学习后发现并没有自己想象的那么难,因为图表是使用第三方库进行创建的,所以自己不用再创建相关的方法,想要实现某种样式,只需要自己调用第三方库中方法,修改相关的设置属性......
  • 如何做到对扩展开发,修改关闭
    这条原则,难以理解,那是因为,”怎么样的带啊吗改动才被定义为扩展“,怎么样的代码才被定义为”修改“,怎么样才算妈祖开闭原则?修改代码就一定意味着违背开闭原则吗?等等这些问题都比较难以理解。 这条原则最有用,那是因为,扩展性是代码质量的重要的衡量标准之一。在23中经典的设计模......
  • delphi 提高unigui开发效率的两个方法
    1、编译时自己退出运行的程序。在做unigui开发时,每次编译运行时,unigui的应用都会在后台运行,每次重新编译时都必须手工在任务栏里将应用退出才行,非常麻烦,可以在项目编译的参数里加上杀进程的命令,这样每次重新编译时就会自动将旧的进程杀掉。命令参数如下:taskkill/f/im$(OUTPUT......