求助一个无头绪排查的段错误问题 - V2EX
paparika
V2EX    C

求助一个无头绪排查的段错误问题

  •  
  •   paparika Sep 2, 2019 4924 views
    This topic created in 2468 days ago, the information mentioned may be changed or developed.

    目前有两组库 libA 和 libB,分别单独编译到程序 A 和 B 中,均运行正常,但是把 libA 和 libB 一同编译到程序 C 中,且只调用 libA 的函数,运行到特定位置后会报段错误,可能是什么原因,如何排查?

    18 replies    2019-09-04 14:01:36 +08:00
    wutiantong
        1
    wutiantong  
       Sep 2, 2019
    太多原因了,你的描述里几乎没提供什么有效信息啊。
    GeruzoniAnsasu
        2
    GeruzonAnsasu  
       Sep 2, 2019
    “把 libA 和 libB 一同编译到程序 C 中” 隐藏了关键信息
    GeruzoniAnsasu
        3
    GeruzoniAnsasu  
       Sep 2, 2019
    (手滑)

    程序 C 肯定不可能是 A+B 把代码放一起就完事,一定有一些跟 A 和 B 都不同的逻辑。问题出在 caller C 上,跟 libA libB 应该都没关系
    paparika
        4
    paparika  
    OP
       Sep 2, 2019
    程序 c 里,我基本上就是 main 一进来就调 libA 的函数,别的什么都不做,也崩溃了
    ace00010
        5
    ace00010  
       Sep 2, 2019
    单独跑 AB 都没问题的,混合到你的 C 代码就出现了,特定位置出现就用 gdb 调试吧,快很多
    chinuno
        6
    chinuno  
       Sep 2, 2019 via Android
    怎么觉得你这是 ab 有同名符号,调用 a 的时候子调用调到 b 的东西去了
    augustheart
        7
    augustheart  
       Sep 2, 2019
    内存管理那块出问题吧
    xe2vherd
        8
    xe2vherd  
       Sep 2, 2019
    Valgrind 看下有没有内存问题
    benson458
        9
    benson458  
       Sep 2, 2019 via iPhone
    以前遇到过类似的情况,liba 和 libb 都是动态库。然后把这两者编译成静态的,再一起编译到 C,就好了
    nicevar
        10
    nicevar  
       Sep 2, 2019
    最后应该发现是命名问题导致的
    hsuehsen
        11
    hsuehsen  
       Sep 2, 2019
    1. 名字污染
    2. 内存越界
    3. 或者,堆或栈溢出
    katsusan
        12
    katsusan  
       Sep 2, 2019 via iPhone
    debug 一下生成的 core 文件看看
    SelFree
        13
    SelFree  
       Sep 2, 2019
    stl ?
    hxndg
        14
    hxndg  
       Sep 2, 2019
    那你无头绪以后有没有单步跟踪,断点追查呢?
    GDB 啊
    paparika
        15
    paparika  
    OP
       Sep 2, 2019
    @hsuehsen @katsusan @hxndg
    调用 libA 后崩溃了,但是 libA 是别人提供的,我这边没法进到里面单步。core 文件看过了,看不到崩溃栈信息,只显示了崩溃函数地址,通过 addr2line 看到崩在 c 标准库里了(这里不清楚为啥 core 看不到崩溃栈调用关系,跟 libA 是否 strip 有关吗?)
    ilotuo
        16
    ilotuo  
       Sep 2, 2019
    装个 backtrace 看下
    b00tyhunt3r
        17
    b00tyhunt3r  
       Sep 4, 2019 via iPad
    进 liba libb 找找有没有同名全局变量,强符号
    paparika
        18
    paparika  
    OP
       Sep 4, 2019
    @b00tyhunt3r 有啥辅助工具吗,里面有很多库,每个库又有很多命名
    About     Help     Advertise     Blog     API     FAQ     Solana     906 Online   Highest 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 1184ms UTC 19:45 PVG 03:45 LAX 12:45 JFK 15:45
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86