Intellij 诊断崩溃问题

Posted

技术标签:

【中文标题】Intellij 诊断崩溃问题【英文标题】:Intellij diagnosing crash problem 【发布时间】:2011-08-28 04:55:06 【问题描述】:

有时Intellij IDEA 会无缘无故地崩溃。

首先,它变得很慢,CTRL + N(类搜索)在您输入内容时通常需要比平时更长的时间来响应,在文件之间跳转需要更多时间。然后它崩溃了..

诊断Intellij 崩溃的常用途径是什么?当它崩溃时,我一直在监视状态栏上的内存,当时它还剩下大约 100MB(共 512MB)。是否有任何有用的日志可以指出问题的方向?

[更新]总共 3 次崩溃。

1 个实例:

Java 运行时环境检测到致命错误: EXCEPTION_ACCESS_VIOLATION (0xc0000005) 在 pc=0x6d93acab,pid=3120,tid=5588 JRE 版本:6.0_24-b07 Java VM:Java HotSpot(TM) 客户端 VM(19.1-b02 混合模式 windows-x86) 有问题的框架: V [jvm.dll+0x9acab]

2 个实例:

Java 运行时环境检测到致命错误: java.lang.OutOfMemoryError:为 ChunkPool::allocate 请求了 32756 个字节。交换空间不足? 内部错误 (allocation.cpp:166),pid=2484,tid=5568 错误:ChunkPool::allocate

内存配置: -Xss2m -Xms32m -Xmx512m

将内存增加到-Xmx768,希望这会稍微延迟内存不足错误。将内存增加到-Xmx1024 在运行IDEA 一段时间后导致奇怪的地址映射问题(整数溢出?)。这台机器有 3GB 的 RAM。

【问题讨论】:

日志文件的位置取决于系统,但类似于 ~UserHomeDir/.IdeaXXX/system/log。也许如果您用相关部分更新您的问题,那么某人将有机会回答它。 我可以看到很多内存异常,大约有 20 MB 的日志。我不能确切地说它崩溃时的最后一个异常是什么,将尝试增加 jvm 内存,如果/当再次发生这种情况时,请查看最后几个日志。谢谢。 【参考方案1】:

Intellij 无法启动,即闪烁 IntelliJ 并崩溃。

修复:在位于文件夹 C:\Program Files (x86)\JetBrains\IntelliJ IDEA Community Edition 14.1.4\binidea.exe.vmoptions 文件中将 -Xmx 设置为默认 512MB

我是如何解决这个问题的:我之前将 Xmx 设置为 2048MB,但它在达到 GC 限制时崩溃了。然后在 IntelliJ 上不会启动。

【讨论】:

有没有办法超过这个限制而不会崩溃?修改内存分配后,我遇到了同样的问题。 是的,这是我的问题。 这真是违反直觉。你是说如果我的内存用完了,我应该减少分配给JVM的内存吗? 在我的情况下,我需要修改位于c:\Users\<user name>\.IntelliJIdea14` It seems that idea.exe.vmoptions` 中的C:\Program Files (x86)\JetBrains\IntelliJ IDEA Community Edition ...\bin 中的idea.exe.vmoptions 仅用作模板或其他东西。【参考方案2】:

请定义“崩溃”。如果窗口刚刚消失,这通常意味着 JVM 错误,并且在 IDEA 工作目录(通常是 IDEA_HOME/bin)中会有 hs_err_pidXXX.log 文件。在某些情况下,将 JDK 更新到新版本或更改垃圾收集器策略(通过 vmoptions 文件)可以解决此类问题。

如果 IDE 完全停止响应,您需要provide thread dumps。

如果它的行为很奇怪,那么您需要检查 idea.log 是否有异常。在某些情况下,它可能是由 OutOfMemory 问题引起的。在 idea.vmoptions 中增加堆大小应该会有所帮助。 Check the FAQ 用于 IDEA 文件位置。

如果 IDEA 在某些操作上变得非常缓慢,您需要 provide CPU snapshot。

【讨论】:

感谢您的回答,这有助于找到崩溃的日志。其他细节也很有帮助。就我而言,窗口刚刚消失。我已经用更多细节更新了答案,似乎在 3 个实例中有 2 个错误是由内存问题引起的。 此类问题可能是由内存碎片引起的。 768m 应该是安全的值,但是在 32 位 JVM 下运行时,设置过高会导致问题。【参考方案3】:

除了上面的答案,我补充说:

-Dswing.noxp=true 到位于 IDE_HOME\bin\[bits][.exe].vmoptions 的 .vmoptions 文件

这解决了我的问题。

【讨论】:

这个特定参数有什么作用...它解决了我的 intellij 崩溃问题,但我想知道原因。

以上是关于Intellij 诊断崩溃问题的主要内容,如果未能解决你的问题,请参考以下文章

intellij idea 调试 lua程序, 突然崩溃或者xmx不够的情况

IntelliJ 故障转储文件的位置是啥?

IntelliJ IDEA 15 安装

图文并茂教你学会使用 IntelliJ IDEA 进行远程调试

为啥我在 intelliJ logcat 视图中看不到任何错误?

JVM性能调优实战:让你的IntelliJ Idea纵享丝滑