-
Notifications
You must be signed in to change notification settings - Fork 10
New issue
Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? # to your account
需要跳转的偏移大于32位数值,会直接报allocfail #11
Comments
@Menooker 大佬,有没有什么通用简单的解法?我们是hook exit,是比较确定的,倒是可以强行改成绝对地址。 |
在我最新的pr里面,修复了一个mmap搜索地址的错误,你可以试一下那个分支嘛?其实我本地也遇到了alloc失败的问题。还有就是你可以调整一下MemChunk的buffer大小嘛?目前是8MB,最小到4kb都是可以的 |
试试看调整一下 Line 121 in 6b900bb
MCHUNK_SZ 大小吧?这个如果太大,可能塞不到已经分配内存的缝隙里面 |
1 similar comment
试试看调整一下 Line 121 in 6b900bb
MCHUNK_SZ 大小吧?这个如果太大,可能塞不到已经分配内存的缝隙里面 |
好滴,感谢大佬,我去试试 |
大佬,抱歉现在才回复您,非常感谢您的建议!
我调成了4k是可以的。
另外, 我用了最新提交,还是会报alloc错误。 不过我注意到一个问题,不知道我有没有看懂代码,好像遍历寻找合适mmap范围的时候并没有比较addr跟mmap的返回值两者之间的大小,可能我的系统有点老,ubuntu16的,mmap出来的地址会比较小( Line 168 in b83acd4
|
8mb原来是想一次多分配一些内存,这样可以减少mmap的次数,因为每次mmap我们都要浪费MemChunk头上几个字节来管理内存。 搜索mmap地址的问题确实需要改进,应该从addr的前后2gb内存的范围进行搜索。此外下面addr_ok这边已经检查了地址差距是否在2gb以内了。 我接下来提个pr改进搜索算法,到时候能否麻烦您测一下呢?谢谢! |
谢谢大佬解答!
可以的,你提交之后记得@我一下,我怕我可能没看到 |
@jacksonfu #12 我提交了这个PR,能不能帮忙测试一下?谢谢啦 |
大佬,我已经测过了,我看到提交中改成了pagesize,我试了pagesize和8M的情况,都符合预期。 |
谢谢~很开心问题得到解决了。pr已经合并! |
#9 mmap出来的位置至少比旧函数的地址大INT32_MAX,代码中会导致出错。
The text was updated successfully, but these errors were encountered: