首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >没有断点的Java调试

没有断点的Java调试
EN

Stack Overflow用户
提问于 2015-07-06 13:47:01
回答 4查看 2.1K关注 0票数 1

是否可以在没有断点的情况下调试运行中的java进程(使用Eclipse / IntelliJ)?当有这样的构造时,获取对象的状态是有用的:

代码语言:javascript
复制
double d = Math.random();
BlockingQueue<String> queue = new LinkedBlockingQueue<String>();
queue.take();

“get ()”将永远阻塞,并且在调用get()之后,我希望通过调试器获得d的值。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2015-07-07 10:20:25

刚刚注意到在中有一个暂停/挂起按钮。这是工作。

票数 0
EN

Stack Overflow用户

发布于 2015-07-06 13:52:05

I'd like to get the value of d with the debugger after take() was called

一个简单的解决方案是打印值。那么您根本不需要调试器。调试器在由于测试某些东西、在运行时检查某些对象等原因而更改数据时非常有用。

代码语言:javascript
复制
queue.take();
System.out.println(d);
票数 1
EN

Stack Overflow用户

发布于 2015-07-06 13:53:33

在你的情况下,这不是选择。您可以使用的一个选项是取消编译包含BlockingQueue类的jar,将它们转换为源文件,将其包含在项目中,并在take()中设置断点以查看行为。

一个最好的反编译器是:

http://jd.benow.ca/

使用它,您可以看到take()函数的源代码,并复制整个类并将其粘贴到您的包中,名称为BlockingQueue.java,并按您的意愿粘贴整个源代码和调试。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31247536

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档