小编car*_*iaz的帖子

没有可用的符号表信息

我正在测试第三方的库,它崩溃了。当我想查看崩溃的原因时,我的 gdb 告诉我没有可用的调试符号

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0xb53ffb70 (LWP 3722)]
0x00172a89 in tsip_transac_send () from /usr/local/lib/libtinySIP.so.0
Run Code Online (Sandbox Code Playgroud)

我在 gdb 控制台上发出bt full并得到如下一系列行

#0  0x00172a89 in tsip_transac_send () from /usr/local/lib/libtinySIP.so.0
No symbol table info available
Run Code Online (Sandbox Code Playgroud)

在检查 Makefile 中的 CFLAGS 后,我重新编译了该库。这些值一直都很好,但我还是重新编译了它

CFLAGS = -g -O2
Run Code Online (Sandbox Code Playgroud)

我再次运行测试,运气相同,没有共享库的调试符号。

我在这里缺少什么?

我使用的是Centos 6.0,之前在Opensuse中安装过该库,但没有出现这个问题。可能和我安装的Centos有关系。

如果有人关心的话,我正在测试 Doubango 的 webrtc2sip 库。

编辑:调试符号正在正确加载

(gdb) info sharedlibrary
From        To          Syms Read   Shared Object Library
0x002fb830  0x0031339f  Yes (*)     /lib/ld-linux.so.2
0x00115040  0x00120028  Yes         /usr/local/lib/libtinySAK.so.0
0x00133f30  0x0018b378  Yes …
Run Code Online (Sandbox Code Playgroud)

linux gdb

5
推荐指数
1
解决办法
2万
查看次数

setsockopt()出错:域外的数字参数

我在RedHat安装的Linux上运行了一个工作代码,内核为2.6.18-194.el5#1 SMP x86_64.

当我将代码移动到新安装的CentOS 6.3机器时,相同的代码失败了

分配套接字选项时出错:域外的数字参数

后一种机器的内核版本是2.6.32-279.el6.x86_64#1 SMP

下面分别是机器中工作和失败的代码.

    struct timeval          tv;

    tv.tv_sec       = 0;
    tv.tv_usec      = 1500000;

    if (setsockopt(sockfd, SOL_SOCKET, SO_RCVTIMEO, &tv, sizeof(struct timeval)) != 0)
    {
            LM_ERR("Error assigning socket option: %s", strerror( errno ));
            return FALSE;
    }
Run Code Online (Sandbox Code Playgroud)

c sockets linux

4
推荐指数
1
解决办法
5677
查看次数

标签 统计

linux ×2

c ×1

gdb ×1

sockets ×1