2014-10-12 22 views
4

供您參考(因爲我下面提庫函數),libwebsockets文檔可以在這裏找到:https://github.com/warmcat/libwebsockets/blob/master/libwebsockets-api-doc.html#L466如何使用調試來構建libwebsockets(即-g,所以我可以使用gdb)? (我在libwebsockets功能得到段錯誤,ssl_ctrl())

網站可以在這裏找到:http://libwebsockets.org/trac/libwebsockets

我的問題是,如果我通過1或2的libwebsocket_client_connect()函數的ssl_connection參數,我得到一個段錯誤。

我的代碼是用C++編寫的。

想要知道它在哪裏發生,我在gdb中運行我的代碼(添加了-g標誌後)。在段錯誤後,我跑回了回來。這是我的了:

在SSL_ctrl()0x00007ffff7748c43從/lib/x86_64-linux-gnu/libssl.so.1.0.0 (GDB)回溯

0 SSL_ctrl()的/ lib目錄0x00007ffff7748c43 /x86_64-linux-gnu/libssl.so.1.0.0

1 0x00007ffff7503aa2在libwebsocket_service_fd從/usr/local/lib/libwebsockets.so.5.0.0

2 0x00007ffff74fe606 lws_client_socket_service()()從/usr/local/lib/libwebsockets.so.5.0.0

3 0x00007ffff7504029在從lws_client_socket_service()/usr/local/lib/libwebsockets.so.5.0.0

4 0x00007ffff75037d5 libwebsocket_client_connect_2()從/usr/local/lib/libwebsockets.so.5.0.0

5 0x00007ffff74fe606在從/usr/local/lib/libwebsockets.so.5.0.0

6 0x00007ffff7505980在lws_plat_service()libwebsocket_service_fd()從/usr/local/lib/libwebsockets.so.5.0.0

還有更多,但相關的信息是以上...

從上面可以看出,段錯誤發生在SSL_ctrl()函數中。

如果有人從libwebsockets SSL_ctrl()函數中獲得了段錯誤並解決它,請讓我知道。

如果有人能告訴我如何與調試標誌建立libwebsockets(用make,cmake的,或其他方式)和/或讓這個它冗長寫入一些日誌文件和/或使,所以我可以進入與gdb的功能,我非常感謝它!

回答

1

要使用DEBUG選項構建libwebsockets,請在Cmake中使用-DCMAKE_BUILD_TYPE = DEBUG參數。

請確保libwebsockets.h的所有早期版本(構建時未包含-DCMAKE_BUILD_TYPE = DEBUG選項)都被刪除,並且在啓用了-DCMAKE_BUILD_TYPE = DEBUG參數的情況下進行了一個乾淨的構建。

在此之後啓用調試,同時執行中使用-d選項設置爲日誌級別

如果我的可執行文件是襪子,然後啓用調試日誌在運行使用 ./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 
相關問題