gpt4 book ai didi

c++ - 空闲时间后 libcurl 奇怪崩​​溃

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:09:41 24 4
gpt4 key购买 nike

我将 libcurl 用于 FTP 工作,它工作正常,但如果闲置一段时间,它就会崩溃。这是回溯,尽管阅读了一段时间,但我还是无法理解哪里出了问题。跟踪没有显示我的函数崩溃起源于何处,因此调试器在这里留下了孤儿。如果增加值(value),我会使用线程Linux 上的编译器是 GCC 4.7

0  0x00007fff8e09b524  addbyter  /home/stefano/Desktop/myproject/curl-7.33.0/lib/mprintf.c  914
1 0x00007fff8e09a32f dprintf_formatf /home/stefano/Desktop/myproject/curl-7.33.0/lib/mprintf.c 572
2 0x00007fff8e09b5a4 curl_mvsnprintf /home/stefano/Desktop/myproject/curl-7.33.0/lib/mprintf.c 932
3 0x00007fff8e089510 Curl_failf /home/stefano/Desktop/myproject/curl-7.33.0/lib/sendf.c 152
4 0x00007fff8e07dbf4 Curl_resolv_timeout /home/stefano/Desktop/myproject/curl-7.33.0/lib/hostip.c 618
5 0x00007fff78012bf8 ??
6 0x000000c300000016 ??
7 0x00007fff8e0d3604 ??
8 0x0000000000000002 ??
9 0x00000000001b7740 ??
10 0x0000000000000000 ??

更新 1在debugger下再次运行,在一行遇到了crash

FILE *fd; 
fd = fopen(files[i].c_str(), "rb"); //<---here goes the crash!

files[i].c_str() 应该从 wxString 给出 const* char新的BT是

0  0x00007fff8e08952a  Curl_failf  /home/stefano/Desktop/myproject/curl-7.33.0/lib/sendf.c  154
1 0x00007fff8e07dbf4 Curl_resolv_timeout /home/stefano/Desktop/myproject/curl-7.33.0/lib/hostip.c 618
2 0x00007fff780158c8 ??
3 0x00000000001b7730 ??
4 0x00007fff78009808 ??
5 0x00007fff78015e79 ??
6 0x00007fff78009808 ??
7 0x00007fff8c8a04a0 ??
8 0x00007fff8e0c84ca ftp_multi_statemach /home/stefano/Desktop/myproject/curl-7.33.0/lib/ftp.c 3113

最佳答案

如果您在非主线程中使用 curl,则可能会导致此类错误。当 curl 无法解析 dns 条目时,它会发送一个信号(默认情况下)以超时中断线程。信号不是线程安全的,可能会导致崩溃。您应该使用 --enable-threaded-resolver 或支持 c-ares 来编译 libcurl。

对我来说,完全禁用信号也很有用

curl_easy_setopt(curl, CURLOPT_NOSIGNAL, 1)

关于c++ - 空闲时间后 libcurl 奇怪崩​​溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20835172/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com