断点

Android Studio 快捷键速查表

孤街浪徒 提交于 2019-11-28 13:05:29
原文引用 https://www.dazhuanlan.com/2019/08/25/5d623c93b3a41/ 打开类、文档、描述符(Opening Class/File/Symbol) 打开类(Open class) cmd+o 打开文档(Open File) cmd+shift+o 打开描述符(Open Symbol) cmd+alt+o 可以定位方法、变量 Tips 以上搜索支持模糊查询,支持名字中的大写字母查询。 加入:22,即可到达指定的行数。 最近的文档(Recent Files) 最近打开的文档(Recently opened files) cmd+e 最近修改的文档(Recently edited files) cmd+shift+e Tip 打开列表之后,即可键入字母进行搜索 前后导航(Navigate Back/Forward) cmd+alt+left/right 在各种跳转之中导航 回到上次编辑的位置(Last Edit Location) cmd+shift+backspace 在经过各种跳转之后,快速回到上次编辑的位置 显示使用情况(Show Usage) 在边栏中显示(In a Persistent Panel) alt+f7 在当前位置显示(In Place) cmd+alt+f7 跳转到声明或实现(Goto Declaration

安卓应用加固之反动态调试技术总结

允我心安 提交于 2019-11-28 11:34:43
0x00 前言 动态调试是比静态分析更为高效地一种破解手段。因此在破解安卓应用之前,一般会先对应用进行动态调试,了解应用大致运行流程和各个类之间的逻辑关系。 反动态调试可以从以下两个个方向着手: 1.运行环境检测:检测应用的运行环境是否安全,是否可能存在被调试的风险 2.动态调试指令检测:检测应用的运行过程中是否受到动态调试指令的控制 本文完全参考自网友 爱吃菠菜 的反调试总结,由于我的资料是pdf文档,已经找不到出处,在此对网友 爱吃菠菜 说一声抱歉。 0x01 运行环境检测 1.调试端口检测 不同调试器默认使用不同的调试端口,且这些端口默认值往往不被修改。 2.调试器进程检测 不同调试器会在系统中创建不同进程对应用进行劫持以达到动态调试目的。 3.父进程名检测 针对so文件,破解者可以自己编写一个APK对so库进行调试。 (1)正常启动的apk程序:父进程是zygote (2)调试启动的apk程序:在AS中用LLDB调试发现父进程还是zygote (3)附加调试的apk程序:父进程是zygote (4)vs远程调试 用可执行文件加载so:父进程名为gdbserver 父进程名非zygote的,判定为调试状态。 4.自身进程名检测 原理同上条。正常的APK进程名一般为入口类的目录。形如:com.xxx.xxx.xxxx.xxxMainActivity。在开发时,该值是已知的

Chrome调试工具常用功能

只愿长相守 提交于 2019-11-28 08:16:37
一.打开的快捷键    windows: ctrl + shift + i/F12   1.Elements     1.选中 元素 切换至 Event… Tab可以查看这个元素绑定的事件     2.在 Element 选项卡中可以修改html   2.断点 在 Sources 面板 js 文件行号处设置断点, 这里除了常规断点外, 还有个条件断点(右键 conditional breakpoint), 在设置的条件为 true 时才会断点, 在循环中需要断点时比较有用 在调用堆栈这里可以切换到堆栈中的任何地方重新执行(右键restart frame), 如果想查看断点前的信息时比较有用 断点后的变量保存到全局 选中变量, 右键 Evalute in console 在 console 中选中输出的内容, 右键 store as global variable dom mutation 断点(推荐) dom mutation event 是 DOM3 添加的新的事件, 一般是 dom 结构改变时触发. devtools 可以对 DOMSubtreeModified DOMAttrModified 和 DOMNodeRemoved 时断点. 对上面 元素上事件断点(mouseover) 后不容易找到业务代码, 使用 mutation 断点, 断点后配合 call stack

gdb常用命令

假如想象 提交于 2019-11-28 08:05:18
命令 命令缩写 命令说明 list l 显示多行源代码 break b 设置断点,程序运行到断点的位置会停下来 info i 描述程序的状态 run r 开始运行程序 display disp 跟踪查看某个变量,每次停下来都显示它的值 step s 执行下一条语句,如果该语句为函数调用,则进入函数执行其中的第一条语句 next n 执行下一条语句,如果该语句为函数调用,不会进入函数内部执行(即不会一步步地调试函数内部语句) print p 打印内部变量值 continue c 继续程序的运行,直到遇到下一个断点 set var name=v 设置变量的值 start st 开始执行程序,在main函数的第一条语句前面停下来 file 装入需要调试的程序 kill k 终止正在调试的程序 watch 监视变量值的变化 backtrace bt 查看函数调用信息(堆栈) frame f 查看栈帧 f n 切换到编号为n的栈 quit q 退出GDB环境 来源: https://www.cnblogs.com/under/p/11401029.html

Python原生调试工具pdb实践小结

混江龙づ霸主 提交于 2019-11-28 07:08:51
使用 python -m pdb xxx.py 进入单步调试模式,默认会在脚本的第一行可执行命令处停止。此时,通过 b function 设置之后的函数断点会提示出错,从出错异常栈中可以看出,pdb是将 function 当做行号来识别,而函数名是字符串,转换成整形会失败,因此会提示出错。在处理转换整形失败异常时,会尝试执行 function ,如果当前解析器还执行到该函数(由于是刚开始调试,相关函数尚未解析),那么在该函数上设置断点又会触发异常。那么,通过单步调试,如何开始呢? 经过多番尝试,总结这样的工程实践经验,在单步进入时,先通过 b lineno 设置为期望调试的入口行号后,按 c 运行至此处,然后,通过 b function 设置后续的函数断点,设置的 function 要求已经过解释器解释过的。这可能是pdb单步调试的缺陷。 还有一种侵入式的调试方式就是在源代码中导入pdb模块,在需要设置断点的地方手动加上 pdb.set_trace() ,通过 python xx.py 命令启动程序后,可直接执行到断点处,然后再单步调试下去。这样对源代码有侵入性,不怎么友好。 来源: https://www.cnblogs.com/cherishui/p/11397933.html

在 Chrome DevTools 中调试 JavaScript 入门

独自空忆成欢 提交于 2019-11-28 05:10:22
第 1 步:重现错误 找到一系列可一致重现错误的操作始终是调试的第一步。 点击 Open Demo 。 演示页面随即在新标签中打开。 OPEN DEMO 在 Number 1 文本框中输入 5 。 在 Number 2 文本框中输入 1 。 点击 Add Number 1 and Number 2 。 按钮下方的标签显示 5 + 1 = 51 。 结果应为 6 。 这就是您要修正的错误。 图 1 . 5 + 1 的结果是 51。结果应为 6。 第 2 步:熟悉 Sources 面板界面 DevTools 可为更改 CSS、分析页面加载性能和监控网络请求等不同的任务提供许多不同的工具。 您可在 Sources 面板中调试 JavaScript。 通过按 Command + Option + I (Mac) 或 Control + Shift + I (Windows、Linux),打开 DevTools。 此快捷方式可打开 Console 面板。 图 2 . Console 面板 点击 Sources 标签。 图 3 . Sources 面板 Sources 面板界面包含 3 个部分: 图 4 . Sources 面板界面的 3 个部分 File Navigator 窗格。 此处列出页面请求的每个文件。 Code Editor 窗格。 在 File Navigator

WinDbg的工作空间---Work Space

和自甴很熟 提交于 2019-11-28 04:58:46
一、什么是工作空间 Windbg把和调试相关的所有配置称为 workspace 。 WinDbg使用工作空间来描述和存储调试项目的属性、参数及调试器设置等信息。工作空间与vc中的项目文件很相似。退出windbg时,它会将会话配置保存在工作区中。工作区使您能够轻松地保留从一个会话到另一个会话的设置。您还可以手动保存或清除工作区,甚至可以使用工作区保存仍在进行中的调试会话。 二、工作空间保存的信息 WinDbg的工作空间中保存了一下信息: 调试会话状态:包括,断点、打开的源文件、用户自定义别名。 调试器设置:包括符号文件路径,可执行映像文件路径,源文件路径,用I+/I-命令设置的源文件选项,日志文件设置,通过启动内核调试对话框设置内核调试连接设置,最近一次打开文件对话框所使用的路径和输出设置等 WinDbg图形界面信息:包括WinDbg窗口标题、默认字体、是否自动打开反汇编窗口、窗口在桌面的位置、打开的子窗口、以及每个子窗口的状态等。 当您使用windbg作为调试客户机时,它的工作区只保存您通过图形界面设置的值。不会保存通过调试器命令窗口所做的更改。(此限制保证只反映本地客户端所做的更改,因为调试器命令窗口接受来自所有客户端和调试服务器的输入。 此外,断点信息保存在工作区中,包括断点地址和状态。会话结束时处于活动状态的断点在下一个会话启动时处于活动状态。但是,如果尚未加载适当的模块

关于软件测试中的打点

柔情痞子 提交于 2019-11-28 04:57:43
首先打点并不是软件测试的常用名词, 在测试中会有埋点的情况。 1.什么是埋点, 修改了某处逻辑,需要测试上线后老数据的影响, 这时候需要在上线前在现有逻辑下造一些测试数据埋点,上线新逻辑后再测试 2.打点, 在开发中会有打点debug, 就是打断点, 例如有个bug无法准确定位, 就在它可能出现的位置打上断点, 程序执行到断点会暂时停止, 这时候可以通过打印输出这个断点位置的数据,或通过逐步执行来确定bug位置。举个简单例子:有个逻辑 A-B-C-D-E-F 不知道哪里出了bug执行这个逻辑就崩溃了, 初步判定在BCD位置, 就在B前B后 C后D后打断点, 逐步执行, 哪步执行了程序崩溃了就说明问题出现在这个位置 来源: https://blog.csdn.net/qq_41445106/article/details/100007795

【IDEA使用技巧】(1) —— 快捷键

非 Y 不嫁゛ 提交于 2019-11-28 04:21:47
1.InteliJ IDEA设置快捷键 1.1. IDEA快捷键修改—代码提示 IDEA中当现有的快捷键被系统中其他软件(比如输入法)占用时,我们可以自定义修改快捷键。比如,IDEA中的代码自动提示快捷键和eclipse的不一样,不是Alt + /,此时可以通过修改快捷键来设置。 修改方式: ①选择File—Settings,在Keymap中搜索Completion—Basic,可以看到代码提示快捷键Basic为Ctrl+空格,而Ctrl+空格与输入法切换冲突,无法使用,所以先移除Ctrl+空格; ②选中Cyclic Expand Word之后,右键点击“Remove Alt+/”,先删除使用Alt+/的这个; ③然后选中Basic快捷键点击右键,选择“Add Keyboard Shortcut”, ④修改为Alt+/,点击OK设置成功; 1.2. IDEA常用快捷键—代码自动生成 ①Alt + inset键:可生成当前类的构造方法、Getter、Setter等方法; ②Ctrl + shift + Enter键:代码自动补全结尾 ③Ctrl + J:自动提示当前可用的对应代码模板快捷键,如psvm打印main()方法,fori打印for循环; ④循环类List集合.for:可以对遍历集合进行for循环; 1.3. IDEA常用快捷键—代码格式优化 ①Alt+Enter

【转】gdb的调试与使用

梦想的初衷 提交于 2019-11-28 04:02:53
转载自: https://www.jianshu.com/p/7a06b0bda2d8 gdb的调试与使用 这篇应该是我见过的总结最详细的gdb调试指南了,这位博主是个很强的人,他的博客对萌新比较友好,我始终认为那种自己厉害又能把自己所学完美表达出来的人是最强的 1. 调试的快捷键 peda带有的功能,直接输入命令,其就会给予提示(如果不是这样,基本上也是该命令就可以不带参数)。这儿就不多做介绍 1.1 基础的调试快捷键 s step,si步入 n 执行下一条指令 ni步入 b 在某处下断点,可以用 b * adrress b function_name info b 查看断点信息 delete 1删除第一个断点 c 继续 r 执行 disas addr 查看addr处前后的反汇编代码,也可以是函数名字 1.2 显示数据 p 系列 p system/main 显示某个函数地址 p $esp 显示寄存器 p/x p/a p/b p/s。。。 p 0xff - 0xea 计算器 print &VarName 查看变量地址 p * 0xffffebac 查看某个地址处的值 x系列 x/xw addr 显示某个地址处开始的16进制内容,如果有符号表会加载符号表 x/x $esp 查看esp寄存器中的值 x/s addr 查看addr处的字符串 x/b addr 查看addr处的字符 x/i