参考までに (以下でライブラリ関数について言及しているため)、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 を渡すと、segfault が発生することです。
私のコードはc ++で書かれています。
それがどこで起こっているのかを知りたくて、gdb でコードを実行しました (-g フラグを追加した後)。セグメンテーション違反の後、バックトレースを実行しました。これは私が得たものです:
/lib/x86_64-linux-gnu/libssl.so.1.0.0 (gdb) バックトレースからの SSL_ctrl () の 0x00007ffff7748c43
0 0x00007ffff7748c43 in SSL_ctrl () from /lib/x86_64-linux-gnu/libssl.so.1.0.0
/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
5 0x00007ffff74fe606 in libwebsocket_service_fd () から /usr/local/lib/libwebsockets.so.5.0.0
/usr/local/lib/libwebsockets.so.5.0.0 からの lws_plat_service () の 6 0x00007ffff7505980
他にもありますが、関連情報は上記のとおりです...
上記のように、segfault は SSL_ctrl() 関数で発生します。
誰かが libwebsockets SSL_ctrl() 関数からセグメンテーション違反を取得して解決した場合は、私に知らせてください。
libwebsockets を (make、cmake などを使用して) デバッグ フラグを使用してビルドする方法や、ログ ファイルに詳細に書き込む方法や、gdb を使用して関数にステップインできるように作成する方法を誰かが教えてくれれば、とても感謝しています!