加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c – 如何使用debug构建libwebsockets(即-g所以我可以使用gdb)?

发布时间:2020-12-16 07:10:00 所属栏目:百科 来源:网络整理
导读:供您参考(因为我在下面提到了库函数),可以在这里找到libwebsockets文档: https://github.com/warmcat/libwebsockets/blob/master/libwebsockets-api-doc.html#L466 网站可以在这里找到:http://libwebsockets.org/trac/libwebsockets 我的问题是,如果我为li
供您参考(因为我在下面提到了库函数),可以在这里找到libwebsockets文档: https://github.com/warmcat/libwebsockets/blob/master/libwebsockets-api-doc.html#L466

网站可以在这里找到:http://libwebsockets.org/trac/libwebsockets

我的问题是,如果我为libwebsocket_client_connect()函数的ssl_connection参数传入1或2,我会得到一个段错误.

我的代码用c写的.

想要找出它发生的位置,我在gdb中运行了我的代码(在添加了-g标志之后).在segfault之后,我跑了回溯.这就是我得到的:

来自/lib/x86_64-linux-gnu/libssl.so.1.0.0的SSL_ctrl()中的0x00007ffff7748c43
(gdb)回溯

来自/lib/x86_64-linux-gnu/libssl.so.1.0.0的SSL_ctrl()中的0 0x00007ffff7748c43

来自/usr/local/lib/libwebsockets.so.5.0.0的lws_client_socket_service()中的1 0x00007ffff7503aa2

来自/usr/local/lib/libwebsockets.so.5.0.0的libwebsocket_service_fd()中的2 0x00007ffff74fe606

来自/usr/local/lib/libwebsockets.so.5.0.0的libwebsocket_client_connect_2()中的3 0x00007ffff7504029

来自/usr/local/lib/libwebsockets.so.5.0.0的lws_client_socket_service()中的4 0x00007ffff75037d5

来自/usr/local/lib/libwebsockets.so.5.0.0的libwebsocket_service_fd()中的5 0x00007ffff74fe606

来自/usr/local/lib/libwebsockets.so.5.0.0的lws_plat_service()中的6 0x00007ffff7505980

还有更多,但相关信息高于……

如上所示,segfault发生在SSL_ctrl()函数中.

如果有人从libwebsockets SSL_ctrl()函数获得了段错误并解决了它,请告诉我.

如果有人可以告诉我如何使用调试标志构建libwebsockets(使用make,cmake或其他方式)和/或使它以冗长的方式写入某个日志文件和/或使其成为可能,我可以使用gdb进入函数,我非常感谢!

解决方法

要使用DEBUG选项构建libwebsockets,请在Cmake中使用-DCMAKE_BUILD_TYPE = DEBUG参数.

请确保删除所有早期版本的libwebsockets.h(使用-DCMAKE_BUILD_TYPE = DEBUG选项构建)并使用-DCMAKE_BUILD_TYPE = DEBUG参数进行干净构建.

在此之后启用调试时执行使用-d选项设置为日志级别

如果我的可执行文件是sock,那么在运行use时启用调试日志
?????./sock 127.0.0.1 -p 9000 -d 65535

这将产生类似的输出

[1449754712:6654] CLIENT: lws_client_connect: direct conn
    [1449754712:6654] CLIENT: lws_client_connect_2
    [1449754712:6654] CLIENT: lws_client_connect_2: address 127.0.0.1
    Reason :35
    Reason :32
    Reason :36
    [1449754712:6655] CLIENT: nonblocking connect retry

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读