簡體   English   中英

如何使用debug構建libwebsockets(即-g所以我可以使用gdb)? (我在libwebsockets函數上遇到段錯誤,ssl_ctrl())

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM