- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我在 Android x86 上的 Boehm 中遇到奇怪的崩溃(但 arm 工作正常);它正在崩溃:
deferred = *(word *)limit;
与:
LogCat: I/DEBUG ( 6453): signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0xa31f8
它总是在相同的地址 (0xa31f8) 失败;现在这可能是我做错了什么。这是一种自定义语言,我只是链接到 libc.so。什么可能导致这种情况?
日志:
LogCat: I/BDWGC ( 7930): Grow heap to 64 KiB after 0 bytes allocated
LogCat: D/BDWGC ( 7930): Creating thread 0xb7795160
LogCat: D/BDWGC ( 7930): Stopping the world from 0xb7795160
LogCat: D/BDWGC ( 7930): World stopped from 0xb7795160
LogCat: D/BDWGC ( 7930): Pushing stacks from thread 0xb7795160
LogCat: D/BDWGC ( 7930): Stack for thread 0xb7795160 = [0xbf90be1c,0xbf90f000) LogCat: F/libc ( 7930): Fatal signal 11 (SIGSEGV), code 1, fault addr 0xa31f8 in tid 7930 (ksample.oxygene)
回溯:
(gdb) bt
#0 0xa502c9ad in GC_mark_from (mark_stack_top=0xb8b30010, mark_stack=0xb8b30000, mark_stack_limit=0xb8b38000) at mark.c:853
#1 0xa502c1d0 in GC_mark_some (cold_gc_frame=0xbf90beec "l¿\220¿Hò\001¥ì¾\220¿") at mark.c:409
#2 0xa501f248 in GC_stopped_mark (stop_func=0xa501e420 ) at alloc.c:702
#3 0xa501eed2 in GC_try_to_collect_inner (stop_func=0xa501e420 ) at alloc.c:488
#4 0xa50254ff in GC_init () at misc.c:1288
最佳答案
用于 Android 的 boehm-gc 中存在一个错误,导致使用未映射的内存区域注册数据根(因此在 GC 初始化期间导致 SIGSEGV/SEGV_MAPERR)。现在是fixed .
关于c - Boehm GC android sigsegv on load_gc,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45695678/
我在 Mono 的网页上看到他们在精确模式下使用 Boehm GC。我也将 Boehm GC 与 C++ 一起使用,但是,我在其文档或 header 中找不到任何指示精确模式的内容,更不用说如何打开它
我检查了 Boehm GC。 C/C++ 的 GC。 我知道标记清除算法。我很好奇的是它如何在整个 C 内存中只获取指针。我对C内存的理解只是一个普通的字节数组。是否可以确定内存中的值是否为指针? 最
我很好奇有没有大型项目使用过Boehm GC?我特别感兴趣的是是否有任何游戏项目使用了这个垃圾收集器。如果不是,Boehm GC 是否对游戏项目不利? 令我印象深刻的是像这个 Boehm GC 这样的
标记指针是实现动态语言时常见的优化:利用对齐要求,这意味着指针的低两位或三位将始终为零,并使用它们来存储类型信息。 假设您正在使用 Boehm 垃圾收集器,它的工作原理基本上是查看事件数据以查找看起来
我正在阅读论文“不合作环境中的垃圾收集器”,想知道实现它会有多困难。该论文描述了需要从处理器收集所有地址(除了堆栈)。堆栈部分看起来很直观。除了在汇编中显式枚举每个寄存器之外,还有什么方法可以从寄存器
我读过 article in LinuxJournal关于Boehm-Demers-Weiser garbage collector library .我很感兴趣在我的库中使用它而不是我自己的引用计数
我正在尝试写一些 bindings到用于 Rust 的 Boehm GC。 一些背景:Rust 被设计成一种高并发语言,这种设计的结果是能够将 GC 指针静态限制在分配它们的线程内(即,分配在线程 x
我想在 Linux/AMD64/Debian 上使用 GCC 开发一个多线程 C++ 应用程序(最终大部分 C++ 代码将由应用程序本身生成,这可以被视为一种高级领域特定语言) 4.6(可能是最新的
在我的 on-again-off-again 编译器项目中,我将闭包实现为具有可执行前缀的分配内存。所以一个闭包是这样分配的: c = make_closure(code_ptr, env_size,
我有 2 个关于 boehm-gc 的问题。 GC 回收垃圾对象时,即使对象有析构函数,GC 也会释放内存而不调用析构函数。我发现 GC 调用“finailzer”,但我不知道如何注册它...我该怎么
我有一个使用 Boehm GC 实现的个人项目。我需要实现一种事件类型,它应该包含对其他事件的引用。但我还需要确保指向的事件仍然是可收集的,因此我需要弱引用。 假设我们有事件 A、B 和 C。我将这些
我现在正在学习 boehm gc c++ 接口(interface)。不使用它,只是好奇。我按照官方的例子,写我的类什么可以被 GC,在析构函数中,有一个输出,所以我可以判断一个实例是否被 GC。但只
我在 Android x86 上的 Boehm 中遇到奇怪的崩溃(但 arm 工作正常);它正在崩溃: deferred = *(word *)limit; 与: LogCat: I/DEBUG (
我在以下环境中开发了一个应用程序(在我的错误中重命名为 MyApplication 以保护隐私): 单点触控 2.1 MonoDevelop 2.4.2 MacOS 10.6.8 iOS SDK 4.
关闭。这个问题需要更多focused .它目前不接受答案。 想改进这个问题吗? 更新问题,使其只关注一个问题 editing this post . 关闭 3 年前。 Improve this qu
Boost.Coroutine 分配自己的调用堆栈。 Boehm GC 是否将这些堆栈上的指针视为根,如果不是,我如何才能做到这一点?在上下文切换到协程后,Boehm 终止程序。 最佳答案 推测 Bo
我已经开始在我正在制作的库中使用引用计数。这是一个相当不错的解决方案,递增和递减不会像某些人错误地认为的那样浪费很多资源。此外,用于引用计数的少量额外内存可以忽略不计。 但显然跟踪垃圾收集非常好,它比
据我所知,asprintf 调用 malloc。如果我用 Boehm GC 替换 malloc,对 asprintf 的调用仍然调用传统的 malloc - 至少 valgrind 是这样告诉我的:
这段代码导致了我的内存泄漏,我不确定为什么。 [编辑] 包含来自 here 的代码质疑: #include "src/base.cpp" typedef std::map, gc_allocato
我有一个使用 Boehm GC 的项目,所以我想我可能会使用它自带的 cord 字符串库。问题是我对 cord 函数的所有调用都会导致“ undefined reference ”错误。 我在 /us
我是一名优秀的程序员,十分优秀!