断点

Pycharm的debug单步调试

…衆ロ難τιáo~ 提交于 2019-11-29 00:37:33
首先设置断点,点击行号显示的一侧,在指定行设置断点。比如这里,我们设断点在创建对象时: .如果这时我们直接右键run这个代码。他还是会直接运行,不会理会断点 结果 所以要右键选择run下面的debug 3. 这几个红框的意思依次是: 有绿点表示程序运行中,还没有结束 Debuger窗口表示现在在debug 调试界面。 Console表示这是控制台,也就是看打印的界面。 右下的箭头是执行下一步 右上的箭头表示跳出当前步骤 此时紫色高亮表示,在这之前停住了,点击下一步,则执行这一句 如果在执行期间打开了系统的库或第三方库,只需单击跳出次步就行了,再点击下一步则继续往下执行。直到执行完毕为止。 来源: https://www.cnblogs.com/wangshicheng/p/11436573.html

浅谈弱网测试

纵然是瞬间 提交于 2019-11-28 22:14:08
【背景】 弱网测试,属于健壮性测试的内容。随着国内移动端迅猛发展,大大增加用户碎片化使用移动端的概率。想象一下,用户在地铁里,巴士上,甚至是电梯,车库等场景使用APP,我们就需要针对这些场景的弱网环境下,验证出现丢包、延时软件的处理机制,避免因用户体验不友好造成用户的流失。 1.用户体验 APP使用过程中,弱网的高延迟和高丢包,在实时性要求非常高的场景,容易伤害用户体验 2.非正常情况下,出现bug概率会增加 在解决日常的支持需求中,经常会遇到一些用户反馈一些无法简单复现的bug,有很大一部分的bug是由于用户自身的网络环境波动,或者是本身网络环境就较为恶劣,而服务在面对这种恶劣的网络环境的健壮性不够,导致会出现一些意想不到的bug 【原理】 使用代理捕获网络信号进行环境部署来分析APP的延迟(加载)时间、内容,提出HTTP优化建议,让开发者能够在APP上线前提前预知app在较差网络环境下的表现,以便提前发现问题,进行有针对性优化。让APP在任何网络情况下,都能表现自如,出类拔萃 核心流程 网络请求—》代理proxy—》进行目标操作(修改返回值&延迟&丢包等)—》返回给移动端(见下图) 网络代理原理图 【模拟方法】 当前模拟恶劣网络环境主要可以通过以下这些手段实现: 通过应用层或者传输层的代理服务器,通过在代理服务器上设置一些模拟恶劣网络环境的参数

Eclipse 的 Debug 介绍与技巧

橙三吉。 提交于 2019-11-28 20:34:20
没有任何程序员能够一气呵成的写出没有任何 Bug 的代码,所以很多程序员有相当一部分时间是花费在 Debug 上的,程序调试是每个程序员必须面对的工作。如何使用 Eclipse 进行有效的、尤其是高效地调试代码是一个值得学习的技巧。 一、Eclipse调试介绍 二、Eclipse中和Debug相关的视图 2.1 Debug View 2.2 Variables View 2.3 Breakpoints View 2.4 Expressions View 2.5 Display View 三、Debug 3.1 设置断点 3.2 调试程序 3.2.1 调试本地 Java 语言程序 3.3.2 远程调试 一、Eclipse调试介绍 使用过Eclipse的人都知道,Eclipse都是自带Java调试器的,可以提供很多基本的调试功能。 Eclipse 平台工作台及其工具是围绕 JDT 组件构建的,该组件为 Eclipse 提供了下列特性: 项目管理工具 透视图和视图 构造器、编辑器、搜索和构建功能 调试器 二、Eclipse中和Debug相关的视图 图 1. Eclipse Debug 透视图的一般视图(该视图可以在Eclipse界面的右上角位置点击Debug按钮进入) Debug View: Debug视图允许您在工作台上管理正在调试和运行的程序

fiddler笔记:状态面板

浪子不回头ぞ 提交于 2019-11-28 20:29:57
Capturing 指示Fiddler是否开启抓包。 Process-based Filter 显示Fiddler当前正在捕获的流量进程类型点击面板可以显示进程类型的过滤选项菜单 Automatic Breakpoints 断点 Session Counter Web Session列表的条目数,选中一个或多个Session,显示的是选中的Session数以及总Session数,如:"2/5" Status Information 默认情况下,显示选中的第一个Session的URL QUICKEXEC命令: ?search 搜索Web Session中的URL ?example.com/pathchars select type 选择响应头的Content-type中包含有type的Session select image/jp >size 选中响应大小超过size字节的Session >4000 <size 选中响应大小小于size字节的Session <5k @host 选中请求头host中包含了指定host的Session @163.com =ResponseCode 选中响应状态码等于给定值的Session =200 =Method 选中请求的HTTP方法是给定值的Session =GET,=POST cols add flagname 给Web

fiddler笔记:主菜单栏

▼魔方 西西 提交于 2019-11-28 20:23:56
主菜单可以启动几乎所有的fiddler功能。菜单系统通过FiddlerScript或Extensions进行扩展和增强。 1.File菜单 File菜单主要是用来启动和停止web流量的捕获,也可以加载或存储捕获的流量。 Capture Traffic 进行抓包的开关 New Viewer 打开一个新的fiddler窗口 Load Archive 重新加载之前捕获的以SAZ文件格式保存的请求 Save 用法与web Session窗口的上下文交互中的Save相同 Import Sessions 导入从其他工具捕获的Session Export Session 将fiddler捕获到的Session以多种文件格式保存 Exit 关闭fiddler 2.Edit菜单 Copy 与web Session窗口的Copy用法相同。 Remove 与web Session窗口的Remove用法相同。 Select All 选择Session列表的所有内容。 Paste as Sessions 基于剪贴板上的内容,生成一个或多个模拟的Web Session。 Mark 与web Session窗口的Mark用法相同。 Unlock for Editing 对某个选中的Web Session解锁,并且可以在Inspectors进行编辑请求和响应。 Find Session 搜索捕获到的数据流。 3

nspack脱壳(手动,esp法)

江枫思渺然 提交于 2019-11-28 19:49:28
1.查壳,直接丢查壳工具就可以查看,进行重定位已分离(不知道的可以看我上一篇文章https://mp.csdn.net/mdeditor/100102533#) 2.用od打开,可以发现pushfd和pushad,f8单步执行两下,在右边选中esp,下硬件断点 3.f9执行到硬件断点,此时可以看到popfd和下面一个jmp,先f8一次 4.再f8一次,可以看到代码被od误解析成数据,此时,ctr+a,可以看到如下代码界面 5.回车进入这个call,发现其有很明显的四个call,这是主函数前的安全函数常调用的call 6.esc回到call之前,下面的jmp就是跳像oep,此时需要先把硬件断点取消掉,不然f8过不去,会先遇到硬件断点。(方法:od右上角有一栏,点击其中原点那个图标,就可以看到硬件断点了) 7.f8两次,调到oep 8.使用od自带的工具脱壳,右键—使用od脱壳调试教程—取消勾选重建输入表—随便取个名字保存—od别关 9.打开import reconstructor,附加一个活动进程—选中od正在调试的程序 10.将刚刚的地址复制到oep栏,按下图顺序操作 11.修正转储,选中od刚才dump出来的程序,打开,就可以生成脱壳后的程序 12.打开dump好的123_.exe,发现能运行,用查壳工具,壳不见了(因为工具原因,peid显示还有壳,die显示没有壳了) 13

恕我直言,IDEA的Debug,你可能只用了10%

拟墨画扇 提交于 2019-11-28 19:33:53
作者:bojiangzhou原文:www.cnblogs.com/chiangchou/p/idea-debug.html Debug用来追踪代码的运行流程,通常在程序运行过程中出现异常,启用Debug模式可以分析定位异常发生的位置,以及在运行过程中参数的变化。 通常我们也可以启用Debug模式来跟踪代码的运行流程去学习三方框架的源码。 所以学习下如何在Intellij IDEA中使用好Debug。 一、Debug开篇 首先看下IDEA中Debug模式下的界面。 如下是在IDEA中启动Debug模式,进入断点后的界面,我这里是Windows,可能和Mac的图标等会有些不一样。 就简单说下图中标注的8个地方: 1、以Debug模式启动服务,左边的一个按钮则是以Run模式启动。 在开发中,我一般会直接启动Debug模式,方便随时调试代码。 扫码关注“ 不才黄某 ” 回复“ 资源 ” 获取 1T 视频教程及电子书 2、断点: 在左边行号栏单击左键,或者快捷键Ctrl+F8 打上/取消断点,断点行的颜色可自己去设置。 3、Debug窗口: 访问请求到达第一个断点后,会自动激活Debug窗口。 如果没有自动激活,可以去设置里设置,如图1.2。 4、调试按钮: 一共有8个按钮,调试的主要功能就对应着这几个按钮,鼠标悬停在按钮上可以查看对应的快捷键。 在菜单栏Run里可以找到同样的对应的功能

第一个驱动程序

旧时模样 提交于 2019-11-28 18:52:30
环境搭建: 开发环境 对应版本 官方声明能支持的系统版本 vs2017 WDK 10 win7、win8、win8.1、win10 打开VS新建工程时会有驱动开发选项,建好项目后选择编译哪个版本的驱动程序 第一个程序 #include<ntddk.h> VOID DriverUnload(PDRIVER_OBJECT driver) { UNREFERENCED_PARAMETER(driver); DbgPrint("卸载"); // kdprint也可以 } // 入口函数 NTSTATUS DriverEntry(PDRIVER_OBJECT driver, // 驱动对象 PUNICODE_STRING path) // 路径 { UNREFERENCED_PARAMETER(path); DbgPrint("First Driver"); __asm int 3 driver->DriverUnload = DriverUnload; return STATUS_SUCCESS; } 开始编译 驱动程序的编译要求比较高,但实际上并不需要这样,可以将编译的等级降低,则能够直接编译成功 由于是在32位Windows7的虚拟机中运行,所以配置如下: 修改1: 修改2: 修改3: 环境配置完成生成程序,将程序放入调试的虚拟机中,双机调试。使用加载器加载编写好的驱动程序

使用WinDbg内核调试

好久不见. 提交于 2019-11-28 18:32:55
看雪学院,笨笨翻译《 使用WinDbg内核调试 》。很有用的资料,由于太长,加上很多图片,偷懒,留个链接在这里。这里简要做一些我测试时候的笔记: 首先你要配置好测试环境:参考 VMware+Windgb+Win7 内核驱动调试 在你的主机上配置Symbols 配置sympath,C:\Users\Admin\Desktop\first\objchk_win7_x86\i386是你编译好的sys目录: SRV*C:\Symbols*http://msdl.microsoft.com/download/symbols;C:\Users\Admin\Desktop\first\objchk_win7_x86\i386 配置Source search path假设文件放在C:\Users\Admin\Desktop\first]: C:\Users\Admin\Desktop\first 然后在命令行中输入:.reload 打开源文件:Ctrl+O 接着检查是否已经加载sys.dbg,命令为: kd> !lmi ndislwf Loaded Module Info: [nt] Module: ntoskrnl Base Address: 80a02000 Symbol Type: PDB – Symbols loaded successfully from symbol server. d

Idea远程调试

两盒软妹~` 提交于 2019-11-28 17:06:35
注:远程调试慎用,本地调试时打的调试断点可能导致其它同事使用测试环境时出现问题 文章目录 使用特定JVM参数运行服务端代码 本地连接远程服务器debug端口 启动debug模式 设置断点,开始调试 对于分布式系统的调试不知道大家有什么好的方法。对于我来说,在知道远程调试这个方法之前就是在代码中打各种log, 然后重新部署,上线,调试,这样比较费时。今天咱们来了解了解Java远程调试这个牛逼的功能, 本文以Intellij IDEA为例讲解怎么使用远程调试。 服务端程序运行在一台远程服务器上,我们可以在本地服务端的代码(前提是本地的代码必须和远程服务器运行的代码一致)中设置断点, 每当有请求到远程服务器时时能够在本地知道远程服务端的此时的内部状态。 下面按照步骤介绍怎么远程debug。 使用特定JVM参数运行服务端代码 要让远程服务器运行的代码支持远程调试,则启动的时候必须加上特定的JVM参数,这些参数是: -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=12012 其中的address是用户自定义的,为debug端口,本例以12012端口为例。 在发布中心配置环境(注意要开启端口的访问防火墙) 本地连接远程服务器debug端口 打开Intellij IDEA,在顶部靠右的地方选择”Edit