小编roh*_*ren的帖子

当使用new()运算符分配内存时,mudflap会抛出核心转储

这是我的代码片段.

int main()
    {
    int *var = new int(6);
    cout<<"Hello\n";
    delete var;
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

当用mudflap编译时

$export MUDFLAP_OPTIONS="-print-leaks -mode-check"
$g++ test.cpp -fmudflap -lmudflap
$./a.out
Segmentation fault (core dumped)
Run Code Online (Sandbox Code Playgroud)

但是在没有mudflap选项的情况下进行编译时,它不会抛出核心转储.我是mudflap的新手.请告诉我是否以错误的方式使用mudflap.

供参考:

$uname -a
Linux localhost.localdomain 2.6.18-308.4.1.el5 #1 SMP Wed Mar 28 01:54:56 EDT 2012 x86_64 x86_64 x86_64 GNU/Linux
$g++ -v
Using built-in specs.
COLLECT_GCC=g++
COLLECT_LTO_WRAPPER=/usr/libexec/gcc/x86_64-redhat-linux-gnu/4.7.3/lto-wrapper
Target: x86_64-redhat-linux-gnu
Configured with: /root/rohit/gcc-4.7.3/configure --prefix=/usr/
Thread model: posix
gcc version 4.7.3 (GCC)
Run Code Online (Sandbox Code Playgroud)

充满了coredump

核心由`./a.out'生成.

Program terminated with signal 11, Segmentation fault.
[New process 22176]
 #0 …
Run Code Online (Sandbox Code Playgroud)

c++ memory coredump

6
推荐指数
1
解决办法
550
查看次数

标签 统计

c++ ×1

coredump ×1

memory ×1