[英]How can I build libwebsockets with debug (i.e. -g so I can use gdb)? (I'm getting segfault on libwebsockets function, 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(gdb)backtrace的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,那么在運行時啟用調試日志./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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.