我有一个Java应用程序不时写入System.out
。我还打开了一些日志记录(-XX:+PrintCompilation -verbose:gc
...),这是在VM中本机实现的。原生日志记录和对System.out
的调用最终都会printf
拨打stdout
。
然而,在 Mac OS 上(并且只是在这个,而不是在 Linux 和 Windows 上)Java的打印消息的一部分申请遗失!意思是我有System.out.println("Valid run.")
这样的调用,它只打印Valid ru
以及VM的一条日志消息。但是,遗失的n.
无处可寻。
我知道C标准没有将printf
指定为原子,但是尽管它是,或者至少即使没有,但是缺少的n.
必须在其他地方并且不会完全丢失。任何想法可能是什么或如何进一步调试?