C&C++   发布时间:2022-04-03  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了c – 如何使用debug构建libwebsockets(即-g所以我可以使用gdb)? (我在libwebsockets函数上遇到段错误,ssl_ctrl())大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
供您参(因为我在下面提到了库函数),可以在这里找到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

大佬总结

以上是大佬教程为你收集整理的c – 如何使用debug构建libwebsockets(即-g所以我可以使用gdb)? (我在libwebsockets函数上遇到段错误,ssl_ctrl())全部内容,希望文章能够帮你解决c – 如何使用debug构建libwebsockets(即-g所以我可以使用gdb)? (我在libwebsockets函数上遇到段错误,ssl_ctrl())所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。