debug 调试原理理解
引言:
昨天,看了一篇文章,很受启发,记得之前听别的人远程调试过代码,觉得很神奇,在自己程序里打断点,连接远程服务器,开启调试后可以调用远程方法来看数据的输入和输出,不需要查找问题,重新部署,测试问题,直接远程调试,看运行结果,感觉很方便。
分析:
那么,它是怎么实现的呢?
首先,我想的问题是,它怎么知道我本机的断点在哪?我本机又是怎么输入输出数据?
之后,我在想本地调试为什么可以?怎么加入的断点?
我的观点:
看了那篇文章之后,了解了在c程序里,如果以调试模式运行,会把程序的断点翻译成一个中断【int 3】,运行到断点处,就保存执行状态,执行父级监控操作,之后父级更新子级的执行状态,载入保存信息,继续执行程序。
在【java】里,有JVM的存在,可以省好多事,分三层
1.JVMIT【虚拟机接口】,底层
2.JDWP【虚拟机传输协议,格式】,中间传输
3.JDI【程序调试接口】,发送指令控制接口
我个人理解是,把水流切断,处理,再放回去,对执行透明,比较像面向切面编程
而本机部署有热加载能力,可以把修改类或者断点生成的中断及时加载到运行程序里,run模式就不可行
像解剖一样,想看了,切开看看,看完再还原回去继续运行,【高维监视】
文章链接:
http://blog.jobbole.com/23463/ 【中断原理】
https://www.ibm.com/developerworks/cn/java/j-lo-jpda1/ 【JVM调试原理】
转载于:https://www.cnblogs.com/hackxiyu/p/8078613.html
debug 调试原理理解相关推荐
- Debug Hacks (1): 理解用GOT/PLT调用函数的原理
Debug Hacks (1): 理解用GOT/PLT调用函数的原理 1. GOT/PLT GOT是Global Offset Table,是保存库函数地址的区域.程序运行时,库函数的地址会设置到GO ...
- PHP CLI应用的调试原理
我们在Eclipse里选中一个PHP文件,右键选择Debug As->PHP CLI Application. 所谓CLI应用,是指这种脚本文件不需要任何Web服务器即可运行,当然, PHP运行 ...
- 【系统篇】从int 3探索Windows应用程序调试原理
http://www.cnblogs.com/xuanyuan/p/3998408.html 探索调试器下断点的原理 在Windows上做开发的程序猿们都知道,x86架构处理器有一条特殊的指令--in ...
- ARM JTAG 调试原理
ARM JTAG 调试原理 JTAG的接口是一种特殊的4/5个接脚接口连到芯片上 ,所以在电路版上的很多芯片可以将他们的JTAG接脚 通过Daisy Chain的方式连在一起,并且Probe只需连接到 ...
- Java本地远程服务器debug调试详解
日常我们debug是经常用的,但是本地还好说,远程debug就有点难度,而且有时候必须要在预演,测试环境的服务器去debug,举个例子,需要https,公网,域名之类的,测试服务器这些有些是配置的,但 ...
- idea 导出war包_使用IDEA实现远程代码DEBUG调试教程详解
我们在使用 IDEA DEBUG调试代码的时候,常常见到控制台会输出一句这样的话:「Connected to the target VM, address: '127.0.0.1:62981', tr ...
- Eclipse Debug调试详解
目录 一.debug透视图: 1.进入方式:右上角点击添加框,选择"臭虫",再点击小虫. 2.debug调试下的一些常用一些透视图,如果没有自行添加,windows---> ...
- 计算机原理理解编程语言_计算机如何理解我们对编程语言及其工作原理的高级概述...
计算机原理理解编程语言 Many folks have at one point or another asked themselves how a computer really understan ...
- 如何使用 dlv 结合 Goland 进行程序 debug 调试
如何使用 dlv 结合 Goland 进行程序 debug 调试 相信很多 Golang 的初级玩家不会进行程序的 Debug 定位问题单纯的靠脑子,或者效率很低的不断的添加日志打印,别问我为什么知道 ...
最新文章
- python脚本例子_python dict 字典 以及 赋值 引用的一些实例(详解)
- Luogu3694 邦邦的大合唱站队 (状压DP)
- Packet for query is too large
- 意外收获字节跳动内部资料,已开源
- Linux下,C++编程论坛题目抽取
- 途观l怎么使用_官宣!中型SUV质量最新排名出炉:汉兰达失前三,大众途观L上榜!...
- java解析xml乱码_大神们,我用DOM4j解析xml文档时,中文乱码
- Uniapp 微信小程序登陆页面
- python foo函数_Python函数基础
- 图像各向异性扩散(一)
- java学习第八天内容
- CDN概念和基本原理
- NIN:Network in Network
- 封神演义人物实力分级点评
- 【uniapp】根据身份证号获取生日日期
- 企业服务是移动互联网的下一个风口
- 上海大学2021年博士研究生招生简章
- linux 搭建Discuz论坛教程-个人实践笔记
- 计算机游戏的作文,电脑游戏作文3000字初一_查字典作文网
- 地磁基本知识(一)地球磁场