![]() |
1
10
作为一个快速黑客,这是一个 大量 比我想象的要容易。由于这是一个快速的攻击,我没有在取消引用数组之前确保堆栈跟踪足够深,等等。我在签名小程序的构造函数中插入了以下内容:
和
当然,我永远也不能把它留在生产代码中,但它足以告诉我到底是哪个线程导致了错误
|
![]() |
2
4
在尝试任何过于疯狂的东西之前,您是否考虑过使用 Java debugging API |
![]() |
3
2
AspectJ
以及它包装方法调用的功能。一
execution pointcut
周围
也许 不合适。 This thread 似乎暗示这是可能的,但请注意,他创造了一个 rt.jar。 |
![]() |
4
1
正如其他人所说。。。如果是一次性的,JVMTI可能是最核心的方式。但是,使用asm库和instrumentation API创建一个代理,在Thread.interrupt()调用之前插入对您创建的静态方法的调用(或者更改Thread.interrupt()方法来执行相同的操作,我认为您可以这样做)。 我现在真的没有什么好的片段可以粘贴在这里,但是如果你搜索ASM,或者看看JIP中ASM的一些创造性使用,我想你会找到灵感。 联合执行计划: Java Interactive Profiler |
![]() |
5
0
您也可以尝试使用JMX:
编辑
|