gpt4 book ai didi

java - java中是否有等效的asm nop?

转载 作者:IT老高 更新时间:2023-10-28 21:00:53 34 4
gpt4 key购买 nike

当我用 Visual Studio 编写 C/C++ 时,我经常使用 __asm nop; 命令插入 noop 代码,以便有一些东西可以中断。例如:

if (someCondition())
{
__asm nop;
}

我不知道当条件发生时该怎么做,但我想停止执行并检查当前状态。有时 someCondition() 很简单,可以创建条件断点,但条件断点会显着减慢执行速度,而且并非总是可行。

现在,在 C# 中,我通过调用 System.Diagnostics.Debugger.Break()System.Diagnostics.Debugger.Launch() 直接进入调试器。

现在我被迫编写 Java 程序,直到现在我还没有找到比只执行 System.out.println("bla-bla") 并在那里设置断点更好的选择。同样,请考虑条件断点不可行的情况。

所以,我想知道 - Java 中是否有 __asm nopSystem.Diagnostics.Debugger.Break() 替代方案?

最佳答案

在字节码中有 nop 指令,但在 Java 语言中没有 nop 语句。

你可以在一行中单独添加一个额外的 ; 代码仍然可以编译,但这并不比添加一个空行更有意义。

另一个“什么都不做”的陈述可能是:

assert true;

没有任何副作用,执行程序时可以关闭。

事实证明,assert true 似乎没有生成任何字节码指令,这会导致 assert true 上的断点一起被跳过。然而,Eclipse 能够中断诸如

之类的语句
assert Boolean.TRUE;

很相似。

关于java - java中是否有等效的asm nop?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10736275/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com