remotedebug使用方法

合集下载

远程debug

远程debug

在开发测试过程中,某段程序在开发职员本地是正常的,但是由于某种原因,部署到测试服务器上之后,其功能可能不正常,这在题目的分析排查过程中,往往存在一定难度,现提供一个在idea中远程debug测试服务器上的代码的方法,使得开发职员可以通过本地的代码跟踪应用服务器上的应用。

具体步骤如下:1.在服务器真个启动文件中增加远程debug的处理参数。

tomcat:在catalina.bata文件中增加“set CATALINA_OPTS=-server -Xdebug -Xnoagentpiler=NONE-Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=5888??”weblogic:在startWeblogic中的某个变量中增加“-Xdebug -Xnoagent piler=NONE-Xrunjdwp:transport=dt_socket,s erver=y,suspend=y,address=5888? ?”如JAVA_OPTIONS=%SAVE_JAVA_OPTIONS% -Xdebug -Xnoagent piler=NONE -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=5888? ?”2.在idea中配置监听。

Edit configurations->Remote->配置监听,监听的ip地址为服务器ip地址,监听端口为步骤1中的“address”;3.启动应用服务器。

4.启动idea监听。

5.正常登录业务。

6.在idea中设置断点,debug相关变量。

个人总结:1.Run->Edit configurations->Remote->配置监听2.设置host、port、module3.将-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5005添加到程序启动脚本中4.重启程序启动脚本。

idea debug 高级用法

idea debug 高级用法

I. 概述在软件开发过程中,Debugging是至关重要的一步。

许多开发者对于IDE中Debug功能的使用还存在一定的困惑,尤其是在处理复杂的bug时。

本文将介绍IDE中一些高级的Debug用法,帮助开发者更加高效地进行代码调试。

II. Inline Debugging1. 在IDE中进行Inline Debugging是一种高效的调试方法。

通过在代码中设置断点,可以在程序执行到指定的断点处时暂停,查看变量的值,以及执行其他调试操作。

这种方法比较适合于调试特定的代码段,可以提高调试效率。

2. 在进行Inline Debugging时,开发者可以利用IDE提供的一些快捷键来快速进行调试操作,比如单步执行、跳过当前代码行等。

这些快捷键可以大大提高调试的效率。

III. Conditional Breakpoints1. 有时候,在程序执行过程中,我们需要在某个条件满足时才暂停程序进行调试。

这时就可以使用条件断点。

在IDE中设置条件断点,可以在满足指定条件时才触发断点暂停程序执行,这对于调试一些特定情况下出现的bug非常有用。

2. 除了简单的条件断点外,一些高级IDE还支持在条件断点满足时自动执行一些操作,比如打印变量的值、记录日志等。

这些功能可以帮助开发者更加方便地进行调试,提高调试效率。

IV. Remote Debugging1. 对于一些复杂的问题,可能需要在远程环境下进行调试。

一些高级的IDE提供了远程调试的功能,可以方便地在远程服务器上进行代码调试。

2. 远程调试的技术要求较高,需要在远程服务器上安装调试相关的工具,并且进行一些配置。

但是一旦设置完成,远程调试可以极大地方便开发者进行调试工作。

V. Memory and Performance Profiling1. 除了普通的代码调试外,一些高级IDE还提供了内存和性能分析的功能。

通过这些功能,开发者可以查看程序在运行过程中的内存占用情况、性能瓶颈等信息,帮助优化程序的性能。

DEBUG的使用及调试方法

DEBUG的使用及调试方法

DEBUG的使用及调试方法1、实验目的和要求:掌握DEBUG下的主要命令如:U、T、D、E、R、A、G、Q命令等。

掌握调试方法,理解CS:IP的作用,要求能在DEBUG下编写简单程序。

2. DEBUG的功能DEBUG是专门为汇编语言设计的调试工具,它通过单步、设置断点等方式,为使用者提供了非常有效的调试手段。

在DEBUG下所有输入的数据都是十六进制,所以不需要后面加H。

并且不区分大、小写字母。

3. DEBUG的调用在DOS下有两种方式调用DEBUG:(1)把执行(调试)文件装入存储器中,格式为:C>DEBUG 文件名.EXE(2)先调用DEBUG,然后用N、L命令把执行(调试)文件装入存储器。

格式为:C>DEBUG-N 文件名.EXE-L4. DEBUG的主要命令(1) U(反汇编):将机器指令进行反汇编,默认的寄存器是CS:IP,从指定地址开始反汇编32个字节,它的格式是:-U[ START-ADDR]-U[ START—ADDR END—ADDR]-U 100 ;汇编开始于CS:100-U 100 150 ;反汇编从100H 到150H的内容。

⑵T(跟踪):以单步方式执行程序。

-T ;执行一条指令。

-T 10 ;执行下面10H(16)条指令。

-T=3 2 ;从指定IP=0003开始,执行下面2条指令.(3)A (把符号指令汇编成机器码):-A 100 ;从指定地址100H开始汇编,结果写入内存。

-A ;不指定地址,则从上次A命令开始汇编。

在A命令下不能使用字段名,A命令只识别指令和DB、DW的伪指令。

⑷G (运行可执行程序):-G 200 ;从程序当前地址执行到200H结束-G ;从程序当前位置执行到程序结束-G =200 260 ;从指定(200H)或当前地址开始执行,遇到断点(260H)停止,显示寄存器和标志寄存器的内容。

⑸E(检查修改内存单元内容):默认寄存器是DS,格式是:-E[ ADDRESS] [表]-E 105 13 3A 21 ;从DS:105H开始输入3个字节的内容-E CS:211 21 2A ;从CS:211H开始输入2个字节的内容-E 110 ‘anything’;输入从DS:110H开始的字符串-E 12C ;检查修改DS:12C的内容该操作等待从键盘的输入一个或多个十六进制值的字节,字节之间用空格隔开。

通过chrome浏览器调试手机页面(IOS和Android)

通过chrome浏览器调试手机页面(IOS和Android)

通过chrome浏览器调试⼿机页⾯(IOS和Android)
开发PC页⾯的时候使⽤chrome浏览器的开发者⼯具,可以很容易的捕获到页⾯的dom元素,并且可以修改样式,⽅便调试,但是⼿机上却很⿇烦,因为⼿机上没有办法直接打开开发者⼯具查看元素。

其实可以通过将设备连接到PC,使⽤PC的开发者⼯具检测
⼀、针对android设备
1、在android设备上开始开发者模式
2、将设备连接到PC,在chrome浏览器地址栏输⼊:chrome://inspect/#devices
3、在⼿机上打开⽹页的时候,chrome就会检测到⽹页,可以直接调试
⼆、针对IOS设备
PS:如果使⽤的是MAC电脑,可以直接在safari的开发⾥⾯找到,我的Iphone⾥⾯可以检测⽹页
1、在Iphone的设置-》safari-》⾼级-》web检查器。

打开
2、在电脑上安装和
3、启动RemoteDebug iOS WebKit Adapter
remotedebug_ios_webkit_adapter --port=9000
4、在chrome地址栏输⼊:chrome://inspect/#devices,在Discover network targets⾥⾯增加localhost:9000,就可以在chrome⾥⾯调试⼿机页⾯了。

debug 的使用

debug 的使用

Debug是一种程序调试工具,主要用于帮助程序员检查和修复程序中的错误。

以下是如何使用Debug的基本步骤:
设置断点:断点是一种标记,告诉Debug从标记的地方开始查看。

在要设置断点的代码行上单击鼠标左键即可。

运行程序:在代码区域右击,选择Debug执行。

单步执行:点击Step Into(F7)这个箭头,或者直接按F7,以一行一行地操纵代码,从而判断程序的执行流程是否与预期一致。

查看变量值:在执行过程中,可以查看变量的当前值,以了解程序状态。

删除或禁用断点:选择要删除的断点,单击鼠标左键即可。

如果是多个断点,可以每一个再点击一次。

也可以一次性全部删除。

以上是使用Debug的基本步骤,但请注意,具体使用方式可能会根据Debug的具体版本和配置有所不同。

remote debug

remote debug

1有一种神奇的debug方式,叫remote debug.有了它,你就可以remote debug. 也就是说,你就可以debug您那遥远的server.特别是我们在BS, 或是webservice的开发的情况下,它可以告诉你苦苦而不知的真相。

有了它,你再也不能猜测Server端到底发生了什么事情,而取而代之的,你可以直接Debug 到Server端,看看里面到底发生的什么事情。

现在让我们一起来设置吧。

2编辑你的run.bat找到rem set JA V A_OPTS=-Xdebug -Xnoagent -Xrunjdwp:transport=dt_socket,address=8087,server=y,suspend=y %JA V A_OPTS%这一行,将注释rem去掉, 端口号改成你喜欢的,我就常用7007, suspend改为n修改后的run.bat如下:set JA V A_OPTS=-Xdebug -Xnoagent -Xrunjdwp:transport=dt_socket,address=7007,server=y,suspend=n %JA V A_OPTS%好,再启动时7007端口就会被用上了。

注意:经常俺几个小时不眠不休的苦苦跟踪,发现这个设置会带来强大的负作用。

当你在一台电脑上跑多个jboss的时候,因为每次跑jboss都会调用到7007同学,此时会发生端口冲突,良好的解决方法肯定是有的,不过碍于有些人比较懒,就直接在调用多个jboss的时候又把rem加回去了。

如果您有需要,请自行解决,解决好时顺便再邮件一封俺,多谢谢,多谢谢。

3打开你的debug dialog图1打开你的debug dialog4创建一个remote debug application图 2 new remote debug请注意此时的port要与rub.bat里的port一致。

5进行远程debug server端图4进行远程debug server端要远程debug server端时,open debug dialog/选择你要debug的application, 点击debug. 6按照正常的方式debug您的client端Remote debug只是设置了您server端的debug, 如果您有需求,请按照您喜欢的方式自行debug您的客户端。

tomcat remote debug 参数

tomcat remote debug 参数远程调试是一种在开发过程中非常有用的调试方式,可以通过远程连接到服务器上的 Tomcat 进程,实时查看程序的运行状态和调试信息。

Tomcat 远程调试需要配置以下参数:1. 修改 Tomcat 启动脚本在 Tomcat 的 bin 目录下,找到 catalina.sh(Linux)或catalina.bat(Windows)启动脚本,在脚本底部添加以下参数:Linux:JAVA_OPTS='$JAVA_OPTS -Xdebug-Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=80 00'Windows:set JAVA_OPTS=%JAVA_OPTS% -Xdebug-Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=80 002. 重启 Tomcat 服务保存修改后,重新启动 Tomcat 服务,使配置生效。

3. 连接远程调试器使用 Eclipse 等 IDE 连接到远程 Tomcat 服务器上,打开Debug 配置,设置 Remote Java Application 的 Host 和 Port,如下所示:Host:服务器 IP 地址或域名Port:8000(与启动脚本中的地址参数一致)4. 开始远程调试设置完成后,启动 Debug 模式,即可开始远程调试 Tomcat 服务器上的应用程序。

注意事项:1. 调试完成后,需要将启动脚本中添加的参数删除,避免安全问题。

2. 远程调试对服务端资源消耗较大,建议在生产环境下禁用。

protus7.5与Keil uv4的联调方法

keil与proteus联调1、把proteus安装目录下 VDM51..dll文件复制到Keil安装目录的 \C51\BIN 目录中。

2、修改keil安装目录下 Tools.ini文件,在C51字段加入TDRV5=BIN\VDM51.DLL ("Proteus VSM Monitor-51 Driver"),保存注意:不一定要用TDRV5,根据原来字段选用一个不重复的数值就可以了。

引号内的名字随意3、打开proteus,画出相应电路。

在proteus的tools菜单中选中use remote debug monitor4、进入KEIL的project菜单option for target '工程名'。

在DEBUG选项中右栏上部的下拉菜选中 Proteus VSM Monitor-51 Driver。

在进入seting,如果同一台机IP 名为127.0.0.1,如不是同一台机则填另一台的IP地址。

端口号一定为8000 注意:可以在一台机器上运行keil,另一台中运行proteus进行远程仿真5、在keil中进行debug吧,同时在proteus中查看直观的结果(如LCD显示…)按照上面的教程,装完之后发现proteus目录下面没有vdm51.dll,只好在网上搜,找了半天,找到之后发现我的keil目录下面已经有这个文件了,同样要修改的部分也已经修改好了,走了一圈弯路,呵呵proteus 设置截图keil 设置截图看来uv3里面装了不少的仿真端口,呵呵 .按照上面的3,4步骤分别将proteus 和keil设置好就可以进行连接测试了下面就要就行实际的仿真试验了proteus是英文界面,对于英文不好的人来说不是好消息,我就属于那种人,还好有很多热心认识提供了教程参考一下教程在proteus里将硬件电路搭起来一个led的仿真教程: /306/2089.aspx不过在后面仿真的时候有点区别,原为是利用hex文件来仿真的,不能进行调试我们直接将后面的部分跳过,在keil里面输入源程序下面是我写的c源程序#include <at89x51.h>void delay();void main(){while(1){P1_0 = 0x00;delay();P1_0 = 0x01;delay();}}void delay(){unsigned int i;for(i = 0;i<=25535;i++);}写好程序之后,进行创见目标,就可以进行仿真了看图中画圈的部分可以看出已经和proteus连上了Keil uv4和Proteus 7.5联调设置2011-05-13 19:28(做作业用的)1、安装Keil 和Proteus(貌似是废话)2、猛击vdmagdi.exe,然后选择Keil的安装根目录,例如:“X:\ProgramFiles\Keil”(X为盘符),等待安装完成(友情提示,vdmagdi.exe是老师给的安装包里提供的,1.2M,网上可以下载,我在网盘也传了个,附地址:/RobinGaryKing/Open/vdmagdi.exe/)完成后,看看“X:\ProgramFiles\Keil\C51\BIN”目录下应该出现了VDM51.dll 文件3、打开Proteus,在debug菜单中选中useremote debug monitor(汉化版:“调试——>使用远程调试监控”),点完后应该粗线一个对号4、修改Keil 安装目录“X:\ProgramFiles\Keil”下的TOOLS.INI,(用记事本或者各种能编辑编辑器打开)找到C51字段,下面增加一行TDRV9=BIN\VDM51.DLL ("Proteus VSMMonitor-51 Driver" )那个开头TDRV9可以根据情况写成是TDRV3或者TDRV+其他数字,但是不能和已经有的重复了。

IntelliJIDEA远程remotedebug教程实战和要点总结

IntelliJIDEA远程remotedebug教程实战和要点总结展开全文远程调试,特别是当你在本地开发的时候,你需要调试服务器上的程序时,远程调试就显得非常有用。

JAVA 支持调试功能,本身提供了一个简单的调试工具JDB,支持设置断点及线程级的调试同时,不同的JVM通过接口的协议联系,本地的Java文件在远程JVM建立联系和通信。

此篇是Intellij IDEA远程调试的教程汇总和原理解释,知其然而又知其所以然。

本机Intellij IDEA远程调试配置1.打开Inteliij IDEA,顶部菜单栏选择Run-> Edit Configurations,进入下图的运行/调试配置界面。

2.点击左上角'+'号,选择Remote。

分别填写右侧三个红框中的参数:Name,Host(想要指定的远程调试端口)。

3.点击界面右下角应用按钮即可。

服务器端开启调试模式,增加JVM启动参数,以支持远程调试服务器端的catalina.sh文件,在T omcat的安装目录下,复制到本地,进行编辑,在第一行添加参数配置如下,完成后粘贴回去。

CATALINA_OPTS="-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=80 89"配置添加之后,重启tomcat即可生效(shutdown.sh /startup.sh)。

到此,开始远程调试。

Intellij IDEA 启动远程调用最后,打开IDEA,程序上打上断点,运行模式选远程,点击运行。

调用服务器端运行的系统程序,系统自动进入断点。

为什么可以进行远程调试,背后的原理是什么?首先,了解下的Java程序的执行过程- 分为以下几个步骤:Java 的文件- - 编译生成的类文件(class文件)- - JVM加载类文件- - JVM运行类字节码文件- - JVM翻译器翻译成各个机器认识的不同的机器码。

远程debug调试入门

远程debug调试⼊门⽬录1.远程DEBUG的必要性2,IDEA构建SpringBoot测试Demo3,测试Demo项⽬配置⽀持远程调试4,IDEA打包jar5,启动jar并且带启动参数⽀持远程调试6,IDEA远程DEBUG配置1,启动项下拉,选择Edit Configurations...编辑配置2,点击+,选择Remote,添加远程DEBUG配置3,添加远程DEBUG配置项,Host和Port,配置后,点击Apply和OK按钮7,IDEA远程DEBUG测试1,打测试断点2,选择远程debug启动项,然后点击测试调试按钮启动;3,postman测试4,成功进⼊断点5,启动的jar包打印信息,测试OK8,eclipse远程DEBUG实现1,右击项⽬ -> Debug As -> Debug Configurations…2,找到Remote Java Application然后右击New3,配置Host和Port,点击Debug按钮,即可实现远程DEBUG9,打war包⽅式配置远程DEBUG总结1.远程DEBUG的必要性由于部署环境的差异性,相信很多朋友都碰到过开发环境正常测试过的功能在测试环境甚⾄⽣产环境下出现bug的情况。

⼀般情况下,⽣产环境可以采取的⼿段⽐较单⼀,即通过⽇志的⽅式获取运⾏中的环境上下⽂,分析⽇志⽂件并尝试重现bug。

这会带来的问题还是不少的,⾸先,⽇志的分析是⼀项⽐较耗时的⼯作;其次,现有的⽇志记录不⼀定能反映出问题,你可能需要多次重复这个过程(分析⽇志->猜测问题->加⽇志->部署->获取⽇志)来慢慢逼近问题。

倘若是测试环境,我们还多了⼀项可供选择的⼿段——远程调试——将程序在测试环境中以debug模式启动,在本机使⽤IDEA在⼯程中设置断点进⾏调试。

2,IDEA构建SpringBoot测试Demo新建SpringBoot测试项⽬remote-debug,只需要web依赖⽀持即可;版本选⽤2.2.6.RELEASE(注意,别⽤2.5.1版本,有坑,亲测)pom.xml:<?xml version="1.0" encoding="UTF-8"?><project xmlns="/POM/4.0.0" xmlns:xsi="/2001/XMLSchema-instance"xsi:schemaLocation="/POM/4.0.0 https:///xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.2.6.RELEASE</version><relativePath/> <!-- lookup parent from repository --></parent><groupId>com.java1234</groupId><artifactId>remote-debug</artifactId><version>v1.0</version><name>remote-debug</name><description>Demo project for Spring Boot</description><properties><java.version>1.8</java.version></properties><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency></dependencies><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></build></project>application.yml:server:port: 80servlet:context-path: /tomcat:uri-encoding: utf-8简单搞个TestController,提供⼀个Rest接⼝package com.java1234.controller;import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RestController; /*** @author java1234_⼩锋* @site * @company Java知识分享⽹* @create 2021-06-12 15:37*/@RestControllerpublic class TestController {@PostMapping("/test")public String test(Integer id,String name){System.out.println("id="+id);System.out.println("name="+name);if(id>0){return "success "+name;}else{return "fail";}}}我们启动项⽬,⽤postman测试下:3,测试Demo项⽬配置⽀持远程调试pom.xml⾥配置jvmArguments参数 -Xdebug -Xrunjdwp:transport=dt_socket,address=5005,server=y,suspend=n:<build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><configuration><jvmArguments>-Xdebug -Xrunjdwp:transport=dt_socket,address=5005,server=y,suspend=n</jvmArguments></configuration></plugin></plugins></build>加了此配置后,打包后的项⽬发布服务器,可⽀持远程DEBUG;具体参数详解:-Xdebug 通知JVM⼯作在DEBUG模式下;-Xrunjdwp 通知JVM使⽤(Java debug wire protocol)运⾏调试环境。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档