回答
问题已解决:事情是对齐边界应该是2的倍数和sizeof(void *)
。所以如果posinter的大小是4字节,第二个参数应该是4,8,16等。而不是我把它只作为2的倍数,因此它崩溃了。
Wrong usage: crashes
posix_memalign(&addr, 2, 8);
Correct usage:
posix_memalign(&addr, 4, 8); // Second argument multiple of void* and 2
看起来你的错误并没有检查'posix_memalign'的失败返回值。 – 2011-04-15 12:53:42
是的,我没有检查errno。我更关心泄漏:( – kingsmasher1 2011-04-15 14:09:34
检查'errno'与'posix_memalign'不正确。错误号码只是返回值。 – 2011-04-15 14:50:46
中断的系统调用通常是系统调用中断的结果。换句话说,该过程在呼叫正在执行时正在接收信号。
- 1. 中断系统调用
- 2. 中断系统调用处理队列
- 3. 中断的系统调用在GIT
- 4. 阻止'connect'系统调用中断
- 5. 龙卷风中断系统调用
- 6. 软件中断系统调用
- 7. 操作系统调用中断吗?
- 8. python信号,中断系统调用
- 9. Waitpid被系统调用中断
- 10. 系统调用与中断上下文
- 11. 信号如何中断系统调用
- 12. PyQt4:在定时器中调用commands.getoutput()时中断系统调用
- 13. Linux系统调用的Java断点
- 14. 在Linux中调度中断和系统调用
- 15. 在操作系统中,系统调用和中断有什么区别?
- 16. ncurses在调整终端大小时中断系统调用
- 17. 中断系统调用的奇怪错误,我无法调试
- 18. django使用教程应用程序中断系统调用
- 19. 系统(“”)调用
- 20. 操作系统中断
- 21. 为什么使用中断来处理系统调用?
- 22. 在线程中传播系统调用中断
- 23. 运行时错误与0MQ Haskell绑定:getIntOpt:中断(中断系统调用)
- 24. 系统调用中的宏
- 25. Unix中的系统调用
- 26. 系统调用在C++中
- 27. 查找正在生成CAL中断的进程(系统调用)
- 28. 无法连接到MongoDB服务器中断的系统调用
- 29. 何时以及如何中断系统调用?
- 30. C - 优雅地中断msgrcv系统调用
我得到输出到我的日志。 – kingsmasher1 2011-04-15 10:09:09
@Mat:我已经重载了posix_memalign。这工作正常。但现在,我有一面旗帜。 '如果(标志){返回ob.registerPosix(memptr,alignment,size,LT_posix_memalign)}否则返回LT_POSIX_MEMALIGN(memptr,alignment,size)'这整个代码在'int posix_memalign()'函数内。 – kingsmasher1 2011-04-15 10:19:21
registerPosix - 简单地记录泄漏。因此,是否设置了标志,我们检查泄漏,否则不会。 – kingsmasher1 2011-04-15 10:20:56