嗨,
我还在学习高级c ++编程.我在C++代码中遇到分段错误.在使用gdb时,失败点是在解除分配期间,解除分配器(malloc)的一个参数是一个优化的值(av =值优化输出).我的问题是,这个条件(值是否优化)导致解除分配器中的分段错误?我问这个的原因是因为我能够打印这些值,但gdb因某些原因无法读取它们.
谢谢.
不,优化的值只是意味着优化器通过寄存器传递参数,这意味着gdb无法看到它的值.如果使用-O0进行编译,则会在gdb中看到该值.
错误可能是你的错误.例如,释放已经释放的地址,或释放从未分配的地址.
在一个侧面说明,对于C++,建议使用new
,delete
,new[]
和delete[]
.
您需要提供更多上下文.
归档时间: |
|
查看次数: |
8100 次 |
最近记录: |