codehz

codehz

V2EX 第 187268 号会员,加入于 2016-08-16 18:42:57 +08:00
今日活跃度排名 18455
Java 、Idea、Android Studio 用户请暂缓升级到 macOS 14.4
  •  4   
    Apple  •  codehz  •  3 小时 48 分钟前  •  最后回复来自 tanranran
    99
    Log4J 远程代码执行漏洞
    信息安全  •  codehz  •  2021-12-10 01:36:54 AM  •  最后回复来自 Jooooooooo
    1
    Windows 11 小组件完全魔改指南(insider 版)
  •  5   
    Windows  •  codehz  •  2021-10-05 20:29:46 PM  •  最后回复来自 huhuime
    7
    Chrome 在 Web Worker 里渲染文本可导致网页崩溃(win10 专属)
    Chrome  •  codehz  •  2021-05-11 09:51:50 AM  •  最后回复来自 gam2046
    1
    WSL 2 原生图形支持来了(内部测试版)
  •  2   
    分享发现  •  codehz  •  2021-04-08 09:32:42 AM  •  最后回复来自 clevercoolbear
    32
    yori,一个提升 windows 命令行使用体验的 shell(cmd 替代)
    Windows  •  codehz  •  2020-11-29 01:05:30 AM  •  最后回复来自 Kasumi20
    15
    一个新的玩具,在 js 里套娃 c 编译器
    分享创造  •  codehz  •  2021-01-24 18:31:32 PM  •  最后回复来自 codehz
    9
    2020 年,网页终端渲染器比较: hterm vs xterm.js
  •  1   
    前端开发  •  codehz  •  2020-02-04 22:55:51 PM
    codehz 最近回复了
    15 小时 21 分钟前
    回复了 liyafe1997 创建的主题 Windows Windows 有没有办法让全屏程序不要覆盖任务栏
    全屏实现其实挺复杂的(因为跳过了窗口混合的过程),对老游戏可能可以 dxhook 一下,但虚拟机的估计没那么好做。。
    除非 vmware 用的是无缝窗口模式,那种也许可以骗过去。。。
    16 小时 41 分钟前
    回复了 codehz 创建的主题 Apple Java 、Idea、Android Studio 用户请暂缓升级到 macOS 14.4
    @daveh
    这个修改也只是另一个性能优化 https://bugs.openjdk.org/browse/JDK-8283326

    SafeFetch is important - mostly when writing hs-err reports, but it is also used in low level utility functions like `os::print_hex_dump()` and `os::is_readable_pointer()`. It is also used (JDK-8282306) as part of call stack printing. At the moment it is implemented via dynamically generated stub routines
    16 小时 46 分钟前
    回复了 codehz 创建的主题 Apple Java 、Idea、Android Studio 用户请暂缓升级到 macOS 14.4
    @daveh 没错是改成 static 了,但还是用信号的啊 https://github.com/openjdk/jdk/blob/master/src/hotspot/os/posix/safefetch_static_posix.cpp
    只不过把 safefetch 本身的代码用汇编写成直接一个 mov 或者 ldr
    https://github.com/openjdk/jdk/blob/master/src/hotspot/os_cpu/bsd_aarch64/safefetch_bsd_aarch64.S
    不是很懂为啥要杠这一点
    21 小时 3 分钟前
    回复了 codehz 创建的主题 Apple Java 、Idea、Android Studio 用户请暂缓升级到 macOS 14.4
    @daveh https://github.com/openjdk/jdk/blob/master/src/hotspot/os/posix/safefetch_sigjmp.cpp 在 posix 下的实现就是 sigsetjmp 保存跳转地址,然后在异常处理代码里检测 SIGSEGV 和 SIGBUS 来跳转到返回 false 的分支
    21 小时 8 分钟前
    回复了 codehz 创建的主题 Apple Java 、Idea、Android Studio 用户请暂缓升级到 macOS 14.4
    @daveh SafeFetch 整个函数的意义就是访问非法地址的时候能检测到结果,你是不明白这个 fetch 的含义吗。。。
    https://github.com/openjdk/jdk/blob/master/src/hotspot/share/runtime/safefetch.hpp#L31-L32
    @lslqtz 你看的是 https://developer.apple.com/documentation/xcode/investigating-memory-access-crashes 这个吧,问题是这并不是同一个问题,它是“调查因内存问题而崩溃的方法”
    @daveh 我不知道你是在哪里得来的这个结论
    https://bugs.java.com/bugdatabase/view_bug?bug_id=8320317
    是这个吗?确实删除了一个对 SafeFetch 的调用,可问题是是在这里吗,后文不也提及了
    JDK-8320317 removes this specific call to SafeFetch. We could probably still still hit similar issues with other calls to SafeFetch
    @daveh 此外 pthread_jit_write_protect_np 是只有 macOS 给 apple sillicon 提供的功能,solaris 根本就没这个 api ,何来的十几年的垃圾代码
    @daveh 这个问题就是苹果的错误,就算 JRE 触发是一个意外,也不能改变它就是苹果的错误,因为这个行为( pthread_jit_write_protect_np 0 的时候 SIGSEGV 和 SIGBUS 变为 SIGKILL )没有任何文档提及,也没在更新日志里包含,乃至专门介绍安全性的更新内容( https://support.apple.com/zh-cn/HT214084 )的文档也没有说有这个变更
    OpenJRE 自己去 workaround 这个问题,和苹果意外搞出的错误没有任何关系
    @felixlong
    测试了一下,访问 null 也真的会导致 sigkill (去掉 pthread_jit_write_protect_np(0)这句就 SIGSEGV)
    #include <pthread.h>

    int main() {
    pthread_jit_write_protect_np(0);
    return *((int *)NULL);
    }
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   5522 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 06:39 · PVG 14:39 · LAX 23:39 · JFK 02:39
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.