c – 如何使用debug构建libwebsockets(即-g所以我可以使用gdb)?
供您参考(因为我在下面提到了库函数),可以在这里找到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 来自/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时启用调试日志 这将产生类似的输出 [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 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |