草庐IT

Debugging

全部标签

java - 在 IntelliJ 中打破你自己的异常

参见thisquestion关于如何中断任何异常。我在启动时遇到了一百万个异常。我试过忽略ClassNotFoundException,但这并不好,IDE似乎仍然会中断这些(和其他)异常。那么..什么是一个体面的配置来只捕获从用户代码捕获的真正异常?(如果适用,也忽略jUnit中的任何异常) 最佳答案 正如其他发帖人所提到的,类过滤器是实现此目的的方法。具体来说,您可以将您认为“您的代码”的包名称添加为类过滤器。语法有点不透明,但使用了一个简单的通配符过滤器,如:com.whatever.package.*听起来它对你有用。Inte

java - Java 的核心转储等效项

到目前为止,我已经了解了分别使用jstack和jmap生成线程转储和堆转储。但是,jstack线程转储仅包含描述每个线程堆栈的文本。使用JavaVisualVM打开堆转储(.hprof文件)仅显示堆中分配的对象。我真正想要的是能够看到堆栈,切换到特定的堆栈帧,并观察局部变量。这种事后调试通常可以使用WinDbg、gdb和核心文件(对于nativeC++程序)等工具完成。我想知道Java中是否存在这样的“核心”文件(它将允许我在非实时环境中进行调试)? 最佳答案 Java可以。如果您使用的是IBMVM,请使用com.ibm.jvm.D

java - Eclipse 调试 - 行 : not available

我似乎无法在谷歌上找到任何东西告诉我为什么会这样以及解决方法是什么。我正在单步执行第三方代码(我有源代码)并且真的很想看到正在执行的当前行...查看javac编译标志,我看到了-g:none标志。如果设置了这个标志,这是否足以解释为什么我看不到行号?如果是这样,为什么有人会这样做,对性能有影响吗?我是否需要自己重新编译jar以附加丢失的调试信息(如果可能)?谢谢! 最佳答案 Lookingatjavaccompileflags,Iseethe-g:noneflag.Ifthisflagisset,wouldthisbeenought

java - Eclipse:如何判断我是在运行还是调试非服务器应用程序?

Eclipse会让您知道您是在运行还是调试状态下启动服务器。例如:有没有办法为本地执行的程序(即桌面应用程序,而不是网络服务器应用程序)获取相同的信息?我经常发现我会在测试我的应用程序的过程中决定设置一个断点,但不记得我是通过“运行”还是“调试”图标启动的。在这种情况下,我通常会杀死它并重新开始(这次肯定是在Debug模式下)。提供此信息将很有用。我只是在某个地方遗漏了它吗? 最佳答案 您可以简单地切换到Debug视角。正在运行的应用程序将可用。然后查看DebugView:如果您可以使用+扩展您的应用程序并看到正在运行的线程,则您处

java - 相当于Java中C语言的__FUNCTION__

出于调试目的,我想在Java中打印出当前正在执行的函数名称。如果是C,我会做printf("%s\n",__FUNCITON__)。 最佳答案 newException().getStackTrace()[0].getMethodName(); 关于java-相当于Java中C语言的__FUNCTION__,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/3183817/

java - 如何在 Netbeans 中调试 Java Web 应用程序?

我在Netbeans中多次调试Java桌面应用程序,但从未调试过JavaWeb应用程序。我尝试用同样的方法调试它,但它不工作。我制作了一个index.html网页。该页面上有一个“表单”。用户提交表单后,请求将转到servlet(比如serv1)。已调用servlet,但显示意外结果。所以为了调试它,我在servlet类(serv1)中放置了一个断点,然后调试应用程序。但是当我提交表单时,控件并没有停在断点处。我确定正在调用设置断点的行。有什么我遗漏的吗?=================已编辑==============================================

java - 如何使用 Eclipse 调试 Java 中的死锁

可以使用哪些技术来调试Java程序中看似死锁的问题。我的IDE是Eclipse,我想我已经确定了两个死锁线程。在调试器中,右键单击任何有问题的线程并选择挂起可挂起线程并显示当前正在执行的代码。尝试单步进入或单步跨行问题似乎没有效果-线程状态更改为“单步执行”,除非再次单击暂停,否则控制永远不会返回调试器。谢谢 最佳答案 如果您使用的是SunJVM,则附加JConsole并转到“线程”Pane。有一个“检测死锁”按钮。 关于java-如何使用Eclipse调试Java中的死锁,我们在Sta

java - -Xdebug 标志开销有多大?

我想知道-Xdebug标志引入的性能开销有多大?调试生产应用程序非常方便,但我想一直运行会很昂贵吗?此外,是否有一种好方法可以让已经运行的应用程序通过调试端口进行监听,而无需重新启动它?谢谢。 最佳答案 我们没有发现任何差异。我们使用-Xdebug运行所有生产应用程序。是否有一种好方法可以将Debug模式添加到已运行的应用程序,而无需重新启动它这就是-Xdebug所做的。当有人连接到调试端口时,调试器实际启动。 关于java--Xdebug标志开销有多大?,我们在StackOverflo

java - 如何在编译期间逐步调试注释处理器?

我有一个注释处理器,用于保留策略=SOURCE的注释。我不知道如何逐步调试它。当我运行mvninstall、compile或package或antjavac时,我发出了打印语句、记录器信息,并且我在编译日志中看到了它们的系统输出。但是,我不知道如何在Eclipse中逐步调试处理器。我的意思是,您如何逐步调试编译时? 最佳答案 最近的一个选择是使用类似http://github.com/google/compile-testing的东西它允许您针对任意注释处理器调用编译作业,您可以设置断点、单步执行等。@Testpublicvoidt

java - 查找与 DLL 中的偏移量匹配的 Delphi 源代码行

我正试图找出我的Java应用程序崩溃的原因。它实际上是JVM的崩溃,由通过JNI调用本地库引起。这是我在生成的hs_err_pidxxxx.log中看到的内容:##AfatalerrorhasbeendetectedbytheJavaRuntimeEnvironment:##EXCEPTION_INT_DIVIDE_BY_ZERO(0xc0000094)atpc=0x4fa19409,pid=1456,tid=4068##JREversion:6.0_30-b12#JavaVM:JavaHotSpot(TM)ClientVM(20.5-b03mixedmodewindows-x86)#