代码之家  ›  专栏  ›  技术社区  ›  Dacav

带螺纹的电动围栏

  •  2
  • Dacav  · 技术社区  · 15 年前

    为了检查我把它和 -lefence

    作为测试,我尝试编译与 -勒芬斯 我得到了西格夫。该测试不会干扰动态分配的内存,除了在不同测试单元中成功的代码。

    -pthread 标志将内存分配设置为已包装。 gcc -dumpspecs | grep pthread 产生以下结果:

    %{posix:-D_POSIX_SOURCE} %{pthread:-D_REENTRANT}
    %{pthread:-lpthread}    %{shared:-lc}    %{!shared:%{mieee-fp:-lieee} %{profile:-lc_p}%{!profile:-lc}}
     %{static: %{fmudflap|fmudflapth:  --wrap=malloc --wrap=free --wrap=calloc --wrap=realloc --wrap=mmap --wrap=munmap --wrap=alloca} %{fmudflapth: --wrap=pthread_create}} %{fmudflap|fmudflapth: --wrap=main}
    

    是不是libefence不支持多线程?

    编辑:

    3 回复  |  直到 8 年前
        1
  •  3
  •   ZXX    15 年前
        2
  •  3
  •   jilles    15 年前

        3
  •  2
  •   Kevin    15 年前

    为了检查它,我把它和-lefence联系起来,它给了我SIGSEGV。过了一段时间

    我只知道电子围栏的概念,但你应该能马上注意到 哪里 发生缓冲区溢出:

    gcc ... -g ;
    gdb a.out ;
    run 
    **Program received signal SIGSEGV, Segmentation fault.
    address in function () from file.c**
    

    这是你的溢出!