我正在使用intellij Idea来调试在tomcat上运行的应用程序.但我有一个问题,在某些类中,行断点不起作用(方法断点工作正常……但速度慢).我可以通过从方法断点或从另一个类进入类来获取特定的代码行或检查变量,但调试器不会在任何行上停止. (IntelliJ显示空的红色圆圈(没有交叉))
更新:此问题不仅限于Tomcat.我在Weblogic上遇到了与不同项目相同的问题.所以它要么是Idea或Java的问题.
可能的原因是什么?没有特殊的编译器选项,当我反编译该类时,LineNumberTables和LocalVariableTables就在那里.这两个类(行断点很好,一个不行)在同一个包中.我的源完全匹配已部署的代码.我已经清除了所有intellij想法缓存(也是[system] / jars,这里建议:Debugger doesn’t stop at source code in Intellij IDEA)
> Java 1.6.0_43(64位)
> IntelliJ Idea 12.1.3
> Tomcat 6.0.36
> Debian测试
>它适用于使用Windows的其他开发人员,因此这不是项目的问题
当我按照CrazyCoder的建议在Idea中启用调试器跟踪时,我得到了这些结果(当我在想法中添加/删除行断点时显示输出):
等级很好
==== Enable Breakpoint ==== [JDI: Sending Command(id=25172) JDWP.EventRequest.Set] [JDI: Sending: eventKind(byte): 8] [JDI: Sending: suspendPolicy(byte): 1] [JDI: Sending: modifiers(Modifier[]): ] [JDI: Sending: modifiers[i](Modifier): ] [JDI: Sending: modKind(byte): 5] [JDI: Sending: classPattern(String): com.teamead.fwf.web.controller.ino.datauser.flightplan.EquipmentDefinition] [JDI: Receiving Command(id=25172) JDWP.EventRequest.Set] [JDI: Receiving: requestID(int): 23] [JDI: Retrieving matching ReferenceTypes,sig=Lcom/teamead/fwf/web/controller/ino/datauser/flightplan/EquipmentDefinition;] [JDI: Sending Command(id=25174) JDWP.VirtualMachine.ClassesBySignature] [JDI: Sending: signature(String): Lcom/teamead/fwf/web/controller/ino/datauser/flightplan/EquipmentDefinition;] [JDI: Receiving Command(id=25174) JDWP.VirtualMachine.ClassesBySignature] [JDI: Receiving: classes(ClassInfo[]): ] [JDI: Receiving: classes[i](ClassInfo): ] [JDI: Receiving: refTypeTag(byte): 1] [JDI: Receiving: typeID(long): ref=7269] [JDI: Receiving: status(int): 7] [JDI: Looking up Class,signature='Lcom/teamead/fwf/web/controller/ino/datauser/flightplan/EquipmentDefinition;',id=7269] [JDI: Sending Command(id=25176) JDWP.EventRequest.Set] [JDI: Sending: eventKind(byte): 2] [JDI: Sending: suspendPolicy(byte): 2] [JDI: Sending: modifiers(Modifier[]): ] [JDI: Sending: modifiers[i](Modifier): ] [JDI: Sending: modKind(byte): 7] [JDI: Sending: loc(Location): com.teamead.fwf.web.controller.ino.datauser.flightplan.EquipmentDefinition:24] [JDI: Receiving Command(id=25176) JDWP.EventRequest.Set] [JDI: Receiving: requestID(int): 24] ==== Disable Breakpoint ==== [JDI: Sending Command(id=25178) JDWP.EventRequest.Clear] [JDI: Sending: eventKind(byte): 2] [JDI: Sending: requestID(int): 24] [JDI: Receiving Command(id=25178) JDWP.EventRequest.Clear] [JDI: Sending Command(id=25180) JDWP.EventRequest.Clear] [JDI: Sending: eventKind(byte): 8] [JDI: Sending: requestID(int): 23] [JDI: Receiving Command(id=25180) JDWP.EventRequest.Clear]
等级不好
==== Enable Breakpoint ==== [JDI: Sending Command(id=25182) JDWP.EventRequest.Set] [JDI: Sending: eventKind(byte): 8] [JDI: Sending: suspendPolicy(byte): 1] [JDI: Sending: modifiers(Modifier[]): ] [JDI: Sending: modifiers[i](Modifier): ] [JDI: Sending: modKind(byte): 5] [JDI: Sending: classPattern(String): com.teamead.fwf.web.controller.ino.datauser.flightplan.FlightPlanBackingBean] [JDI: Receiving Command(id=25182) JDWP.EventRequest.Set] [JDI: Receiving: requestID(int): 25] [JDI: Retrieving matching ReferenceTypes,sig=Lcom/teamead/fwf/web/controller/ino/datauser/flightplan/FlightPlanBackingBean;] [JDI: Sending Command(id=25184) JDWP.VirtualMachine.ClassesBySignature] [JDI: Sending: signature(String): Lcom/teamead/fwf/web/controller/ino/datauser/flightplan/FlightPlanBackingBean;] [JDI: Receiving Command(id=25184) JDWP.VirtualMachine.ClassesBySignature] [JDI: Receiving: classes(ClassInfo[]): ] [JDI: Receiving: classes[i](ClassInfo): ] [JDI: Receiving: refTypeTag(byte): 1] [JDI: Receiving: typeID(long): ref=7257] [JDI: Receiving: status(int): 7] [JDI: Looking up Class,signature='Lcom/teamead/fwf/web/controller/ino/datauser/flightplan/FlightPlanBackingBean;',id=7257] ==== Disable Breakpoint ==== [JDI: Sending Command(id=25186) JDWP.EventRequest.Clear] [JDI: Sending: eventKind(byte): 8] [JDI: Sending: requestID(int): 25] [JDI: Receiving Command(id=25186) JDWP.EventRequest.Clear]