我正在使用Doug Lea's dlmalloc memory allocator。但是,當我使用它時,我會得到分割。如果我使用普通的malloc,我的程序運行良好。我記得我曾經讀過,你需要先調用dlmalloc的一些初始化函數來工作,但我現在不記得哪一個函數。我試圖看看這些評論來找出哪個功能,但仍然無法找到它。使用dlmalloc的segementation故障
0
A
回答
3
從分配器的源代碼中的註釋:
胎面安全:不是線程安全的,除非USE_LOCKS定義非零
當USE_LOCKS定義,每個公共調用malloc的,免費等被鎖着。默認情況下,它使用普通pthread互斥鎖,win32臨界區或自旋鎖(如果可用於平臺),並且未通過設置USE_SPIN_LOCKS = 0禁用。
您需要使用USE_LOCKS
編譯庫,否則可能會看到崩潰。
另一種可能性是,您的程序展示未定義的行爲,並不會導致經常帶來的後果malloc
。例如,它可能會在某處分配一個字節,但該字節可能是內存塊的一部分,比您請求的內容塊大幾個字節。使用valgrind來檢查你的程序是否有「常規」malloc的內存錯誤,然後將它與自定義分配器連接起來。
相關問題
- 1. Segementation故障102億
- 2. Segementation故障(核心轉儲)
- 3. 使用陣列時C中的Segementation故障
- 4. 使用System()運行腳本時發生Segementation故障
- 5. 故障使用python3
- 6. FTS使用故障
- 7. 故障使用PHP
- 8. 故障使用Lucene
- 9. 故障使用MYSQL
- 10. 故障使用C#
- 11. 故障使用zlib的
- 12. 故障與使用Node.js的
- 13. 故障使用。NET的HttpWebRequest
- 14. 使用故障消息無法處理WSO2 ESB中的故障
- 15. TestNG故障不是故障
- 16. Jquery&Joomla無故障故障
- 17. 故障排除_mkdir故障
- 18. WCF故障 - 哪種故障?
- 19. JavaScript故障排除故障
- 20. 故障使用Rvest刮
- 21. 故障使用 'djangocms' 命令
- 22. 故障與使用Eclipse
- 23. 故障使用鎢,數學
- 24. 故障使用時間戳
- 25. 故障使用hid.dll API
- 26. 故障使用陰謀
- 27. 故障使用新NSNumbeFormatter
- 28. 故障使用Flex /野牛
- 29. 故障使用PDO首次
- 30. 使用故障鯖模板
請顯示您的代碼。 –
它是PARSEC的流體基準。 – pythonic
你的程序是多線程的嗎? – dasblinkenlight