目录: Java程序测试:JVM调试体系, Intellij 调试, Junit自动化 Java程序监控: 常用监控工具, 性能问题 Java典型问题:锁问题, 线程池问题,JVM内存基础介绍, JVM...内存问题分析与定位, TLS问题, Crash问题 JVM调试体系 简介 JPDA 全称 Java Platform Debugger Architecture....是Java定义的标准调试框架。 大部分调试工具都是基于JPDA提供的上层接口,扩展定制而来的。...JVM TI 的典型能力: 各类事件的钩子(比如类加载) Java对象操控 Java线程和锁操控 基本调试原语(比如断点) 一般采用建立一个Agent方式来调用JVM TI , 而控制方往往是另一个独立的进程...IntelliJ调试 条件断点 双击shift : 搜索 ctrl + 单击 : 查看当前变量或方法被哪些代码引用 Junit自动化测试 junit & Mockito mock test: 如何在不受其他模块影响的情况下测试一个单独的模块
今天要讲的反调试是TLS(线程局部存储):可以简单理解为一个线程的CALLBACK。...PIMAGE_TLS_CALLBACK里的三个参数9.完成注册TLS函数的回调10.重新生成->运行发现没有运行到main函数11.加断点,再运行发现还是运行不起来.但是直接运行,可以正常打印,正常停止12.试下其他调试器...12.1在od里运行:发现不能进入主模块12.2在IDA里打开:Ida会自动停在main函数上,意味着静态调试也发现不了TLS动态调试没进入主模块,静态调试看不到。
开发人员工具、断点技巧、搜索技巧等 视频版本:【JavaScript 代码调试方法】How To Debug In Chrome -> link # 学会使用开发人员工具 ---- preserve...setpublic) 同一个明文可以生成不同密文 对于加密无非以下几种情况: 16 进制的(以上的 3 种都是 16 进制的) 0-9 A-F base64 A-Z a-z 0-9 + _ = # 快速定位...特征 加密过程:new 一个 rsa 对象 ->setpublickey(key,iv (模值))->encrypt # 其他技巧 ---- 巧用 JSON.stringify/parse 来提取 js...对象 扣 js 代码或补环境(DOM、BOM),扣代码则要善于导出变量( window.xxx = ... ) 学会识别统一格式的代码,过滤掉无用的格式要求的固定代码 学会识别 webpack 打包的代码
记录下近期对JS代码的调试过程 性能分析 启动程序之后,打开google浏览器对应页面,按F12或者Ctrl+Shift+I进入 开发者工具页面 目前主要使用的功能有: Performance....性能评估,比如我想看下页面刷新的性能瓶颈所在,先点击 按钮,然后进行页面操作,当页面刷新完成,再点击 按钮,则会生成性能报告,可以看到资源消耗,JS代码的执行逻辑等 Sources....性能报告页面的 部分,可以通过点击色块查看其所在的js代码文件,如 点击则会跳转到 功能栏,有了源文件就可以进行断点调试;这里注意部分js文件是压缩后的文件,建议手动修改程序替换成可读性更强的原始代码文件...,方便调试 Console....查看程序的打印输出,比如我想知道某个函数的执行时间,可以在js代码中进行修改 当js代码执行之后,可以在console输出中看到foo的执行时间 Network.
学习springboot,第一步官网下载源码然后编译 地址:https://github.com/spring-projects/spring-boot/ 1. 选择tag 2.
clone源码 git clone https://github.com/facebook/react.git 安装依赖 cd react yarn build源码 npm run build react.../index,react/jsx,react-dom/index,scheduler --type=NODE 为源码创建软链 cd build/node_modules/react npm link cd
# 源码-调试Redis 在阅读源码的时候,通过debug调试的方式逐行去理解代码的意思,不免是一个好的方式。
本文主要是讲讲flink的源码编译,案例运行,flink源码调试过程。调试flink的源码及案例,需要先clone工程,编一下源码,去掉规范检查,修改工程,最后才是调试运行。...编译源码 源码编译可以直接用idea的maven插件。 报错如下: 修改一下根目录下的pom.xml文件 去掉代码风格检查,注释掉这个的主要原因是我们要改源码,不注释掉无法编译通过。...flink的源码调试debug及阅读经验,敬请期待后续,文章,也可以点击原文阅读加入浪尖知识星球。
这篇文件主要介绍如何使用Linux的gdb调试Caffe的源码,源码调试主要是为了阅读并更好的了解Caffe源码。 1....准备工作 首先要在编译Caffe源码时打开debug模式,即将Makefile.config中的DEBUG := 1打开。...调试 1....args表示我们调试时需要输入的参数,调试的命令为build/tools/caffe,caffe命令的参数为--solver examples/mnist/lenet_solver.prototxt。...查看变量命令为p var,命令与结果如下: (gdb) p channels_ $1 = 0 (gdb) p channel_axis_ $2 = 1 此时,channels_值为0。
一直用vue开发,PC端的后台系统使用的UI库一直是element,以前也没想过什么情况需要去看源码调试源码,反正就是一个UI库,研究API就是了。...后来发现,有时候发现了一些问题,网上的文章所有的答案都一样,很少去验证,这时候要自己去看看源码或者调试一下。...上个星期遇见说element的form表单用v-if会造成校验失败,当然,API很明确的给出了动态删减表单的方法,直接用v-if当然是一个偷懒取巧的方法,不过还是去研究了一下怎么调试element源码。...接下来就是调试组件源码了,组件的源码都在packages里面,找到对应的组件,修改一下代码看一下响应。 这边主要是看看form表单用v-if出错的问题,看看源码: this....看了看element的源码,发现如果自己想撸其中某一个组件,对着element的源码,很容易就能造一个差不多的组件。 (完) Coding 个人笔记
当线上有报错的时候,大家是怎么定位问题的呢? 断点调试么? 但是这时候代码是被压缩过的,变量名都是 a、b、c、d 这种,根本看不出啥来。 如果调试线上报错能像本地开发的时候一样就好了。...其实这是可以做到的,今天就分享下如何优雅的调试线上报错: 首先,我们准备一段 JS 代码: 这是我随便找的一段 JS 代码,里面抛了一个错误。...但现在代码是被压缩过的,看不出啥来: 怎么能直接定位到抛异常的源码呢?...: 接下来就可以直接调试源码了,可以通过作用域、调用栈等信息来定位报错原因: 这样我们就完成了直接本地调试线上报错代码对应的源码!...案例代码在:https://github.com/QuarkGluonPlasma/fe-debug-exercize 总结 通过 sourcemap,我们可以调试线上报错的时候直接对应到本地源码来断点调试
最新的远程工具版本兼容使用早期的 Visual Studio 版本,但早期的远程工具版本不是与更高版本的 Visual Studio 版本兼容。...Version 链接 说明 Visual Studio 2019 远程工具 与所有 Visual Studio 2019 版本兼容。...Visual Studio 2017 远程工具 与所有 Visual Studio 2017 版本兼容。 下载匹配您设备的操作系统 (x 86、 x64、 或 ARM64) 的版本。...您可以在与您在Visual Studio计算机上使用的用户帐户不同的用户帐户下运行远程调试程序,但必须将其他用户帐户添加到远程调试程序的权限。...选择你希望远程工具与之通信的网络类型。 必须至少选择一种网络类型。 如果这些计算机通过域连接,则应选择第一项。 如果这些计算机通过工作组或家庭组连接,则应选择第二或第三项。
在 Visual Studio 上下文中,当调试应用时,这通常意味着你在附加了调试器的情况下(即在调试器模式下)运行应用程序。 执行此操作时,调试器在运行过程中可提供许多方法让你查看代码的情况。...要进行调试,需要在调试器附加到应用进程的情况下启动应用。 F5(“调试”>“开始调试”)是执行该操作最常见的方法。因此我们首先设置断点再开始调试。 ?...按 F5(“调试”>“开始调试”)或调试工具栏中的“开始调试”按钮 ? ,调试器将运行至它遇到的第一个断点。 如果应用尚未运行,则按 F5 会启动调试器并在第一个断点处停止。...08 快速重启应用 单击调试工具栏中的“重启”按钮 ? (Ctrl+Shift+F5)。 当你按下“重启”时,与停止应用并重启调试器相比,它节省了时间。 调试器在执行代码命中的第一个断点处暂停。...在托管代码中,您不能移动下一个语句,如果: (1)下一条语句与当前语句不在同一个方法中。 (2)在实时调试启动调试。 (3)正在进行的调用堆栈展开。
使用Fiddler调试本地js 在我们前端开发的日常工作中,发现服务器上某个css/javascript文件有问题,需要修改,那真是家常便饭。...假设我们发现这个页面有问题,需要修改所引用的js文件()。 第一步:用Fiddler查看页面的数据流列表,找到这个js文件的session ? ...在这个js session上右键点击,选择“Save – Response –Response Body…”,将js文件的内容保存到本地。记住存的位置,下面我们会用到这个保存下来的文件。...通过以上几个步骤,我们演示了怎样将HTTP请求重定向到本地的文件,进行web调试。...这种调试方式不需要发布到线上再验证,避免了修改不成功、对用户造成影响的风险,而且不需要搭建复杂的开发服务器等开发环境,非常适合快速web调试。
这篇文章写给那些像我想研究tomcat源码的朋友,下面直接进入正题: 1.去tomcat官网上下载tomcat源码,下载时建议选择国内镜像,速度快很多,我这篇文章使用的tomcat7.0.72...版本 2.新建一个java项目,然后在项目上右键选择“Build Path”的子菜单“Link Path”, 弹出下面界面 经过上面的步骤就完成了准备工作的80%了 3.将tomcat源码下面的conf...class输入框输入org.apache.catalina.startup.Bootstrap,BootStap类的main方法是Tomcat启动的入口 7.点击Debug,正式进入Debug模式,如果想跟踪调试...Tomcat启动全过程,请选择上图中的“Stop in main”选项,这样启动后自动在Bootstrap类的main方法入口处自动停止,然后按F6单步调试即可,Enjoy
会帮你在新的浏览器窗口里打开刚刚设置的URL地址,现在你可以在这个新打开的窗口里操作,当遇到你打断点的代码,IDEA的断点就会激活,这个时候就可以愉快的Debug起来了,效果如下图: 结语 IDEA的这个前端调试工具非常好用...,却没有得到很好的普及,网上搜到的那种方式大多是安装一个IDEA的浏览器插件配合使用,相比来说,博主发现的这个调试工具简直太好用了,而且注意哦,此法不仅可以调试VUE的项目,而是适合所有的前端项目
easyjson的解决思路很直观,代码量也不大,整体思路是根据源码中的结构体生成定制化的marshal和unmarshal方法,由于是定制化的,解析的时候没有反射,性能可以做到很好,下面通过调试学习了一下定制化的
# 如何调试go源码 go版本:1.13.4 # 为什么要调试go源码 相信你有足够的理由让你尝试去调试go源码 # 网络上已有的调试教程 使用GDB,LLDB等工具命令行的方式调试 优点:工具强大,...支持调试多种程序,不限于go 缺点:go不同版本编译的程序,可能需要不同版本的GDB才能调试,命令行麻烦 使用dlv命令行,或者vscode,Goland等ide工具 优点:go官方推荐,更强到的调试功能...,多种ide工具支持 缺点:调试无法进入runtime等私有方法 # 新调试教程 该尝试基于第二种调试方式,然后配合go tool 命令进入源码 # 需要做什么前期准备 1....从上一条命令的产物中找对应源码行数的CALL指令 # 主要代码 0x008f 00143 (main.go:7) CALL runtime.fastrand(SB) 3....如果启动调试后编辑器没有反应,可以作如下操作显示goroutings ? # 开启源码调试之旅 下面是一个简单的例子 ?
File–>Project Structure —>SDKS—>Sourcepath—>选择自己jdk目录下面的src.zip文件 File–>se...
写数据 至于修改数据,程序员想了很多方法去尽可能保证 Redis 与 MySQL 的数据一致性。 先写 MySQL 数据,再删除 Redis 缓存数据。...make CFLAGS="-g -O0" MALLOC=jemalloc 命令后边的 “-O0” 参数表示告诉编译器不要优化代码,防止你在 Debug 的时候, IDE 里面的 Redis 源码与实际运行的代码对应不上.../redis.conf 图 1-5 图 1-5 代码调试环境搭建 编译好了,我们还差一个方便阅读和调试源码的工具。...为了方便阅读和 debug 源码,极力推荐你使用 CLion 来阅读和调试 Redis 源码,我使用的是 CLion 2021.3 版本,它支持 Makefile 的项目。...src 目录 这是 Redis 源码的重要组成部分,里面有 commands 和 modules 两个子目录,其余功能模块的源码都在 src 目录下,这是最重要的目录。
领取专属 10元无门槛券
手把手带您无忧上云