断点

idea 调试工具的使用

早过忘川 提交于 2019-11-28 02:54:00
idea 调试工具的使用 原文: https://blog.csdn.net/hao_hl1314/article/details/53120918 Intellij IDEA Debug调试区工具的使用方法 快捷键 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.开启调试会话 点击红色方框的小虫子,开始进入调试。 IDE下方出现Debug视图,红色的方框是现在调试程序停留的代码行,方法f2()中,程序的第14行。右下方是方法调用栈区。在这个区域中显示了程序执行到断点处所调用过的所用方法,越下面的方法被调用的越早。

MyEclipse启动Tomcat缓慢的原因及解决办法

烂漫一生 提交于 2019-11-27 20:07:43
Mr.Johness 阿何的程序人生 MyEclipse启动Tomcat缓慢的原因及解决办法   不知道朋友们是否有一种烦恼:有时候使用MyEclipse启动Tomcat十 分缓慢,可能在几分钟前20秒以内,但现在却需要200秒开外;其间内存和CPU都被占用地厉害,而控制台的输出似乎有重复的迹象;而当好不容易启动完成 后,发现响应请求的速度也比平时慢数倍。这一切在另一台机器或另一个MyEclipse/Eclipse中却不会发生。   这时你可能会很烦躁:不应该是代码的问题。   其实这可以算是MyEclipse的Bug。不出意外,上述情况会出现在你新增断点之后!   我们通过图解来看:        上图红色框内本不应该出现断点,如果你在那里双击,正常情况下断点会出现在方法的第一条可执行语句(如上图蓝色框,从上往下第三处断点)。   正常情况下我们只可以在方法签名(如上图第二处断点)和方法体上设置断点,注释是不可能设置断点的。但是,如果MyEclipse卖了个萌,很 脑抽地让我们把断点设置到了注释上,那么我很负责任地告诉你:上述情况就会出现!(值得一提的是如果没有大幅改动代码,比如从其他地方复制粘贴,上述情况 一般不会出现)   那解决之道就很明了了:去除这些个本不应该存在的断点!   不过你很快就会发现:请神容易送神难,你再次双击却无法取消断点!(大部分情况下是如此)  

Linux学习——Gdb基本调试方法&&多线程调试

放肆的年华 提交于 2019-11-27 18:33:11
1.Gdb的基本调试 示例代码 //e.c #include <stdio.h> void debug(char *str) { printf("debug info :%s\n",str ); } int main(int argc,char *argv[]){ int i,j; j=0; for(i=0;i<10;i++){ j+=5; printf("now a=%d\n", j); } } 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 gcc -g -o e e.c 调试gdb e 或者输入gdb 然后 file e 1. list 命令用法 list命令显示多行源代码,从上次的位置开始显示,默认情况下,一次显示10行,第一次使用时,从代码其实位置显示。 list n显示已第n行未中心的10行代码 list functionname显示以functionname的函数为中心的10行代码 1 2 2. 断点命令break break location:在location位置设置断点,改位置可以为某一行,某函数名或者其它结构的地址。gdb会在执行该位置的代码之前停下来. 使用delete breakpoints 断点号 删除断点 这里的断点号表示的是第几个断点,刚才执行break 10返回 reakpoint 1 at 0x40050a: file e

fiddler---Fiddler修改数据信息

不羁的心 提交于 2019-11-27 15:35:49
  在测试的过程中,可能我们会遇到需要修改一些数据查看请求返回内容是如何的,刚好Fiddler也可以满足我们的要求,Fiddler不仅可以抓包还可以修改包的内容 Fiddler修改数据原理 Fiddler设置断点,拦截HTTP请求数据,修改HTTP请求数据,然后再请求给服务器端 Fiddler可以修改什么数据 Fiddler打完断点后可以修改HTTP请求的任何信息,包括Host,Cookie等 Fiddler如何打断点 打开全局断点 1、打开菜单栏Rules---Automatic BreakPoints Before Requests勾选(或者快捷键F11) 2、点击Fiddler下方阻止图标位置2次 设置完成后访问网页会请求不成功,session会话列表会出现下图情况 最下图也会出现阻止请求图标 取消全局断点 1、打开菜单栏Rules---Automatic BreakPoints Before Requests勾选(或者快捷键F11) 2、点击2次Fiddler下方阻止图标 打开单个断点 已知URL地址时,这个时候只需对这个URL进行断点调试,其他的请求不拦截 在命令行中输入命令:bpu URL地址 如:bpu www.baidu.com 访问百度和其他网站对比发现其他网站可以请求成功,百度网站无法请求成功 取消单个断点 直接在命令航中输入bpu 修改HTTP请求

Linux环境下的GDB调试【转】

心不动则不痛 提交于 2019-11-27 13:16:19
1、GDB简介   GDB(GNU Debugger)是GCC的调试工具。其功能强大,现描述如下:      GDB主要帮忙你完成下面四个方面的功能: 1.启动你的程序,可以按照你的自定义的要求随心所欲的运行程序。 2.可让被调试的程序在你所指定的调置的断点处停住。(断点可以是条件表达式) 3.当程序被停住时,可以检查此时你的程序中所发生的事。 4.动态的改变你程序的执行环境。 2、GDB基本调试命令 2.1 准备   通过 gcc 的 -g 选项,将调试信息加到可执行文件中。 $ gcc -g hello.c -o hello 1   如果使用 Makefile 构建,一般要在 CFLAGS 中指定 -g 选项。 CFLAGS := -Wall -O2 -g 1   注意,给 GCC 编译器加上优化选项后,实际的执行顺序可能由于优化而与源代码顺序不同,因此利用调试器跟踪运行时,有时会执行到莫名奇妙的地方,从而造成混乱。 2.2 启动   使用命令 gdb 程序名 启动。 2.3 设置断点   可以在函数名和行号等上设置断点。程序到达断点就会自动暂停运行。此时可以查看该时刻的变量值,显示栈帧、重新设置断点或重新运行等。断点命令 break 可以简写为 b ,命令为 break <断点> 。      断点可以通过函数名、当前文件内的行号来设置,也可以先指定文件名再指定行号

使用gdb添加断点的几种方式

↘锁芯ラ 提交于 2019-11-27 12:07:14
1. 普通断点 根据代码行数设置断点是最常见的一种方式,在debug程序运行前就可以进行断点的配置。如: (gdb) b src/main.cpp:127 当程序执行到 main.cpp 文件的第127行时就会出发断点。 2. 条件断点 顾名思义,这种断点是当满足一定条件时才会触发,比较适合进行异常排查。设置方式 (gdb)break line-or-function if (condition) , 如: (gdb) b src/main.cpp:127 if cnt==10 3. 数据断点 就是根据地址来进行设置断点,只能是在debug程序运行之后设置,因为只有运行后,你才能很方便地获知变量的地址。当该地址上的内容发生改变时就会触发断点。 设置数据断点有两种方式,一种是直接指出地址值,如: (gdb) b *0x400522 注意必须加*号。而获取地址值的方法是,先设置普通断点,在断点处 print &变量名 就能获取该变量的地址。 另一种当然就是直接设置变量名了,如: (gdb) b &变量名 4. 函数断点 这种断点是当程序执行到某个程序时就会触发断点。设置方式如: (gdb) b funcName 但是函数断点并不是对所有函数都有效,比如优化后的静态函数和inline函数等,可能就无法触发断点。 5. 监视 设置监视也必须是在程序运行后才行。如: (gdb) watch

【转】GDB用法详解

一曲冷凌霜 提交于 2019-11-27 11:21:10
介绍的比较详细 GDB 用法详解 GDB是一个强大的命令行调试工具。虽然X Window提供了GDB的图形版DDD,但是我仍然更钟爱在命令行模式下使用GDB。大家知道命令行的强大就是在于,其可以形成执行序列,形成脚本。UNIX下的软件全是命令行的,这给程序开发提代供了极大的便利,命令行软件的优势在于,它们可以非常容易的集成在一起,使用几个简单的已有工具的命令,就可以做出一个非常强大的功能。 于是UNIX下的软件比Windows下的软件更能有机地结合,各自发挥各自的长处,组合成更为强劲的功能。而Windows下的图形软件基本上是各自为营,互相不能调用,很不利于各种软件的相互集成。在这里并不是要和Windows做个什么比较,所谓“寸有所长,尺有所短”,图形化工具还是有不如命令行的地方。 1 GDB 概述 GDB是GNU开源组织发布的一个强大的UNIX下的程序调试工具。或许,各位比较喜欢那种图形界面方式的,像VC、BCB等IDE的调试,但如果你是在 UNIX平台下做软件,你会发现GDB这个调试工具有比VC、BCB的图形化调试器更强大的功能。所谓“寸有所长,尺有所短”就是这个道理。 一般来说,GDB主要帮忙你完成下面四个方面的功能: 1、启动你的程序,可以按照你的自定义的要求随心所欲的运行程序。 2、可让被调试的程序在你所指定的调置的断点处停住。(断点可以是条件表达式) 3、当程序被停住时

【转】GDB调试精粹及使用实例

▼魔方 西西 提交于 2019-11-27 11:21:06
一:列文件清单 1. List (gdb) list line1,line2 二:执行程序 要想运行准备调试的程序,可使用run命令,在它后面可以跟随发给该程序的任何参数,包括标准输入和标准输出说明符(<和>)和外壳通配符(*、?、[、])在内。 如果你使用不带参数的run命令,gdb就再次使用你给予前一条run命令的参数,这是很有用的。 利用set args 命令就可以修改发送给程序的参数,而使用show args 命令就可以查看其缺省参数的列表。 (gdb)set args –b –x (gdb) show args backtrace命令为堆栈提供向后跟踪功能。 Backtrace 命令产生一张列表,包含着从最近的过程开始的所以有效过程和调用这些过程的参数。 三:显示数据 利用print 命令可以检查各个变量的值。 (gdb) print p (p为变量名) whatis 命令可以显示某个变量的类型 (gdb) whatis p type = int * print 是gdb的一个功能很强的命令,利用它可以显示被调试的语言中任何有效的表达式。表达式除了包含你程序中的变量外,还可以包含以下内容: l 对程序中函数的调用 (gdb) print find_entry(1,0) l 数据结构和其他复杂对象 (gdb) print *table_start $8={e

Fiddler工具使用介绍二

限于喜欢 提交于 2019-11-27 11:16:48
在上一篇中介绍了Fiddler的基本使用方法。通过上一篇的操作我们可以直接抓取浏览器的数据包。但在APP测试中,我们需要抓取手机APP上的数据包,应该怎么操作呢? Andriod配置方法: 1)确保手机和Fiddler所在主机在同一个局域网中 2)获取Fiddler所在主机的ip地址,通过cmd命令进入命令编辑器,输入ipconfig -all,找到IPv4地址,记下该地址 3)对手机所连接的无线网络进行设置,点击WLAN,长按与Fiddler所在主机在同一个局域网的wifi,长按点击【修改网络】,选中【显示高级选项】,代理设置为手动,输入代理服务器的主机名和端口后保存。代理服务器的主机名即2)中的IPv4地址,端口为Fiddler上配置的端口(默认为8888),可以到Fiddler菜单栏中【Tool】-【Fiddler Option】的【Connections】中查看。 4)在手机浏览器上输入:http://IPv4地址:端口(例如:http://192.168.11.29:8888),点击【FiddlerRoot certificate】下载安装Fiddler证书。 5)若在浏览器上无法打开该地址,需要做两项检查:一、确保在浏览器、wifi中配置的代理与Fiddler所在主机地址和Fiddler中配置的端口,三者保持一致;二、确保在Fiddler-【Tools】-

细谈程序调试---我的启示录

核能气质少年 提交于 2019-11-27 08:06:46
调试是一个程序员最基本的技能,其重要性甚至超过学习一门语言。不会调试的程序员就意味着他即使会一门语言,却不能编制出任何好的软件。当然调试工具有很多。 先谈VC程序如何调试 图略 在选择菜单时,通过/表示分级菜单,例如File/Open表示顶级菜单File的子菜单Open。 一、设置 为了调试一个程序,首先必须使程序中包含调试信息。一般情况下,一个从AppWizard创建的工程中包含的Debug Configuration自动包含调试信息,但是是不是Debug版本并不是程序包含调试信息的决定因素,程序设计者可以在任意的Configuration中增加调试信息,包括Release版本。 为了增加调试信息,可以按照下述步骤进行: ◆打开Project settings对话框(可以通过快捷键ALT+F7打开,也可以通过IDE菜单Project/Settings打开) ◆选择C/C++页,Category中选择general ,则出现一个Debug Info下拉列表框,可供选择的调试信息方式包括:   命令行 Project settings 说明 无 None 没有调试信息 /Zd Line Numbers Only 目标文件或者可执行文件中只包含全局和导出符号以及代码行信息,不包含符号调试信息 /Z7 C 7.0- Compatible 目标文件或者可执行文件中包含行号和所有符号调试信息