断点

Debug

左心房为你撑大大i 提交于 2019-12-20 07:12:26
逐行执行代码、查看变量的变化、手动修改变量的值,这一调试技能对于理解代码是如何执行的非常有用。 如果Python console处于激活状态,通过Debug > Debug菜单选项或者Ctrl + F5开始Python调试器,如果IPython console处于激活状态则开启了IPython调试器。之后,Editor窗口将会高亮将要执行的代码行,Variable Explorer窗口将显示当前执行代码中的变量。(它只显示变量的数值和数组类型,不会显示函数或者类对象)。 1.进入调试模式之后,使用调试工具栏中的Step可以逐行执行代码,或者在console命令窗中输入n。 2.使用Step into可以查看某一个具体的函数是如何执行的,或者在console命令窗中输入s。 3.使用Step return可以从某一函数中跳出并执行下一行程序,或者在console命令窗中输入r。 4.关于断点: 如果你希望在某一具体位置检查你的程序,则需要在该行插入breakpoint,按下F12即可,这一行左侧会出现红点。取消该断点也是按下F12。可以同时设置多个断点。 进入Debug状态后,会一步执行到第一个断点处,接下来可以用Step逐行执行,或者用Continue一步执行到第二个断点处。 如果断点是循环语句,用Step是一步步输出一个循环内的逐行结果

利用GDB进行多线程调试

牧云@^-^@ 提交于 2019-12-19 21:02:43
一、多线程调试 多线程调试重要就是下面几个命令: info thread 查看当前进程的线程。 thread <ID> 切换调试的线程为指定ID的线程。 break file.c:100 thread all 在file.c文件第100行处为所有经过这里的线程设置断点。 set scheduler-locking off|on|step,这个是问得最多的。在使用step或者continue命令调试当前被调试线程的时候,其他线程也是同时执行的,怎么只让被调试程序执行呢?通过这个命令就可以实现这个需求。 off 不锁定任何线程,也就是所有线程都执行,这是默认值。 on 只有当前被调试程序会执行。 step 在单步的时候,除了next过一个函数的情况(熟悉情况的人可能知道,这其实是一个设置断点然后continue的行为)以外,只有当前线程会执行。 二、调试宏 这个问题超多。在GDB下,我们无法print宏定义,因为宏是预编译的。但是我们还是有办法来调试宏,这个需要GCC的配合。 在GCC编译程序的时候,加上 -ggdb3 参数,这样,你就可以调试宏了。 另外,你可以使用下述的GDB的宏调试命令 来查看相关的宏。 info macro – 你可以查看这个宏在哪些文件里被引用了,以及宏定义是什么样的。 macro – 你可以查看宏展开的样子。 三、源文件 这个问题问的也是很多的

Intellij IDEA debug断点操作总结

我怕爱的太早我们不能终老 提交于 2019-12-19 05:35:27
Intellij IDEA debug 断点总结 1. Rerun . 这个就是结束 debug 模式,直接以 run 的方式重新跑某个程序。 2. 直接跑完 . 到下一个断点停下 . 没有就直接跑完程序。 3. 停止项目或者程序。要是自己的 main 呢 . 点一下就停下了 . 要是 Java web 项目 . 则点 2 下 . 就把服务器给停了。 4. 查看所有的断点设置情况。具体详情 . 下面有示意图 . 再细细解释。 5. 直接取消所有断点 . 让所有断点无效。 6. 要是你一不小心把这个下面的布局给弄乱了 . 你点这个 . 就把下面的布局给还原咯。 7. 跳转到当前代码所执行的地方 . 也就是说你在看代码的时候 . 点到其他地方 . 一点这个按钮 . 就到了程序执行到当前哪行的代码的地方。 8. 下一步 . 如果是方法 . 他是不会跳进去的。就是一行行的往下走。 9. 跳转到详情 . 如果下一行调试代码是可执行方法 . 就可以 f8 进去 . 查看这个方法的运行详细情况。重点就是点进去执行 10. 从详情跳出去 . 和上面的 9 相反。 11. 看字面意思就是跳转到那个光标所在的地方 . 前提是他能路上没断点拦着 ( 这个也很好用的 . 可以直接跳到下一个断点处 ) 。 12. 这个点开之后 . 可以计算你想要看的代码段的值 . 后面详细上图。 13. 看意思 . 同

学习:消息断点

与世无争的帅哥 提交于 2019-12-18 19:00:05
消息断点: 个人理解OD是来捕获windows消息处理过程的,比如一个按钮按下之后的处理之类的,好像又和上面自己记录的API断点类似 消息断点的实现: 1、直接运行程序,来到注册的界面,再点击图中所指向的箭头的图标,里面包含了当前的控件句柄(如果没有的话 需要右键进行刷新) 2、然后进行设置左键按钮上抬(L)的消息处理过程的断点 3、最后我们可以随意输出相关的数据 然后点击按钮OK,发现同样成功的下了断点 4、接着可以快速回到程序的领空区 快捷键 ALT+F9 来源: https://www.cnblogs.com/zpchcbd/p/12061395.html

学习:硬件断点

百般思念 提交于 2019-12-18 14:45:41
硬件断点: 指由硬件提供给我们的调试寄存器组,我们可以对这些硬件寄存器设置相应的值,然后让硬件帮我们断在需要下断点的地址。硬件断点是CPU提供的功能,所以要怎么做就得听CPU的硬件寄存器的了。 来源: https://www.cnblogs.com/zpchcbd/p/12059742.html

【IntelliJ IDEA】Debug调试的使用记录

筅森魡賤 提交于 2019-12-17 22:17:12
Debug调试是否能行云流水的使用,是鉴定你会不会使用一个IDE的最基本的标准。 今天再这里把Idea的debug使用流程走一遍。 ============================================================================================== 1。设置断点 【在你想要设置断点的代码行左端 鼠标左键点击一下即可设置成功】 2.用Debug模式启动调试模式 启动成功后,发送请求进入设置断点的方法中 3.单点调试 1》Step Over 【快捷键:F8】相当于eclipse的F6 点击红色箭头指向的按钮,程序向下执行一行(如果当前行有方法调用,这个方法将被执行完毕返回, 不会进入被调用的方法中 ,然后到下一行) 效果如下图 2》Step Into【快捷键:F7】相当于eclipse的F5 点击之后,进入本行中的代码中,也就是会进入调用的方法中 3》Force Step Into 【快捷键:Alt+Shift+F7】 强制进入代码,在大部分情况和F7效果相同,都是要进入调用的方法中,每点击一次,都会往下执行一行,走完被调用的程序自动返回到被调用的代码原始点 4》Step Out【快捷键:Shift+F8】相当于eclipse的F7跳出函数 点击之后,会跳出本方法到调用本方法处的下一行,也就是跳过本方法 5

IntelliJ IDEA的调试方法

自作多情 提交于 2019-12-17 21:40:15
快捷键 F9 resume programe 恢复程序 Alt+F10 show execution point 显示执行断点 F8 Step Over 相当于eclipse的f6 跳到下一步 F7 Step Into 相当于eclipse的f5就是 进入到代码 Alt+shift+F7 Force Step Into 这个是强制进入代码 Shift+F8 Step Out 相当于Eclipse中,f8跳到下一个断点/f7跳出函数 Atl+F9 Run To Cursor 运行到光标处 ctrl+shift+F9 Debug运行java类 ctrl+shift+F10 正常运行java类 alt+F8 Debug时选中查看值 1.设置断点 选定要设置断点的代码行,在行号的区域后面单击鼠标左键即可。 2.开启调试会话 3.单步调试 step over:程序向下执行一行(如果当前行有方法调用,这个方法将被执行完毕返回,然后到下一行); step into:程序向下执行一行。如果该行有自定义方法,则运行进入自定义方法(不会进入官方类库的方法); Force step into:该按钮在调试的时候能进入任何方法; step out:如果在调试的时候你进入了一个方法(如test()),并觉得该方法没有问题,你就可以使用stepout跳出该方法,返回到该方法被调用处的下一行语句。值得注意的是

Linux基础(03)gdb调试

萝らか妹 提交于 2019-12-17 18:10:30
1. 安装GDB增强工具 (gef)   * GDB的版本大于7.7   * wget -q -O- https://github.com/hugsy/gef/raw/master/scripts/gef.sh | sh   * 确保网络连通 并且成功更新ubuntu (更新source.list 使用apt-get update) 2. GDB安装插件(在root权限安装,用户权限使用不了需要在用户权限下安装)   git clone https://github.com/gatieme/GdbPlugins.git ~/GdbPlugins  (安装gdb的Python脚本插件)   切换gdb模式 :   echo "source ~/GdbPlugins/peda/peda.py" > ~/.gdbinit    (默认打开gdb插件是pada)  倾向于破解和逆向   echo "source ~/GdbPlugins/gef/gef.py" > ~/.gdbinit      倾向于debug 逆向   echo "source ~/GdbPlugins/gdbinit/gdbinit" > ~/.gdbinit    个人定制 3.Linux程序发布流程   * 确定程序是否存在符号表     readelf -s test-1   * 生成符号表    

Pycharm debuge调试如何参数输入+命令行调试器 之pdb

ぃ、小莉子 提交于 2019-12-17 09:03:23
今天在GAN代码调试过程中发现一个问题,一直以来运行都在可视化情况下运行调试,今天突然想用命令行调试。由于需要输入文件导入参数。下面记录一下 首先在Run->Edit Configurations-->找到下面一行 parameters;里面输入你需要运行的命令 注意:这里我运行的是一个kdd99.txt的 文本格式的,在 parameters中最后不要加上格式.txt 因为系统会自动识别这个文件的类型。如果加上了 在运行的时候就会报错 因为系统会将文件识别为 kdd99.txt.txt导致出错 使用PDB的方式有两种: 1. 单步执行代码,通过命令 python -m pdb xxx.py 启动脚本,进入单步执行模式 2. pdb单步执行太麻烦了,所以第二种方法是import pdb 之后,直接在代码里需要调试的地方放一个pdb.set_trace(),就可以设置一个断点, 程序会在pdb.set_trace()暂停并进入pdb调试环境,可以用pdb 变量名查看变量,或者c继续运行 注意: 1:直接输入Enter,会执行上一条命令(这里我尝试了似乎并没有效果 我的pycharm 版本是11.04); 2:输入PDB不认识的命令,PDB会把他当做Python语句在当前环境下执行; 如果想查看参数,一定要运行完以后才可以看参数值。 例如这里我运行完以后 输出settings

iOS——调试工具LLDB学习

送分小仙女□ 提交于 2019-12-17 01:17:23
一、前言   LLDB是个开源的内置于XCode的具有REPL(read-eval-print-loop)特征的Debugger,其可以安装C++或者Python插件。在日常的开发和调试过程中给开发人员带来了非常多的帮助。了解并熟练掌握LLDB的使用是非常有必要的。这篇文章将会带着大家一起了解在iOS开发中LLDB调试器的使用。 二、LLDB基础 2.1 LLDB基本语法   LLDB的基本语法如下 <command> [<subcommand> [<subcommand>...]] <action> [-options [option-value]] [argument [argument...]] <command>(命令)和<subcommand>(子命令):LLDB调试命令的名称。命令和子命令按层级结构来排列:一个命令对象为跟随其的子命令对象创建一个上下文,子命令又为其子命令创建一个上下文,依此类推。 <action>:执行命令的操作 <options>:命令选项 <arguement>:命令的参数 []:表示命令是可选的,可以有也可以没有    举个例子,假设我们给main方法设置一个断点,我们使用下面的命令:   这个命令对应到上面的语法就是: 1. command: breakpoint 表示断点命令 2. action: set 表示设置断点 3. option: