6

これが私のコードスニペットです。

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

マッドフラップでコンパイルした場合

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

ただし、マッドフラップ オプションなしでコンパイルすると、コア ダンプはスローされません。私はマッドフラップが初めてです。マッドフラップの使い方が間違っているかどうか教えてください。

ご参考までに:

$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)

コアダンプがいっぱい

コアは `./a.out' によって生成されました。

Program terminated with signal 11, Segmentation fault.
[New process 22176]
 #0  0x0000003ca5e075c8 in ?? () from /lib64/libgcc_s.so.1
(gdb) bt ful
 #0  0x0000003ca5e075c8 in ?? () from /lib64/libgcc_s.so.1
No symbol table info available.
 #1  0x0000003ca5e0882b in _Unwind_Backtrace () from /lib64/libgcc_s.so.1
No symbol table info available.
 #2  0x0000003c96ce5eb8 in backtrace () from /lib64/libc.so.6
No symbol table info available.
 #3  0x00002b4acf58b417 in __mf_backtrace (symbols=0x6a51db8, guess_pc=0x2b4acf58d351, guess_omit_levels=2)
    at /root/rohit/gcc-4.7.3/libmudflap/mf-runtime.c:1981
        pc_array = (void **) 0x6a51e00
        pc_array_size = 6
        remaining_size = <value optimized out>
        omitted_size = Unhandled dwarf expression opcode 0x9f
        i = <value optimized out>
 #4  0x0000000000000002 in ?? ()
No symbol table info available.
 #5  0x0000000000000004 in ?? ()
No symbol table info available.
 #6  0x0000000000000000 in ?? ()
No symbol table info available.
4

1 に答える 1