检查curl\u easy\u perform是否成功
如果不使用GDB调试器,如何确定检查curl\u easy\u perform是否成功,curl,Curl,如果不使用GDB调试器,如何确定curl\u easy\u perform()是否成功返回?如果成功,则返回0;如果不成功,则返回非零 我只有可执行文件,并且运行Ubuntu 14.04 符号表如下所示(readelf-s FILENAME) 运行可执行文件并不表示答案 我知道curl是一种通过多种协议从服务器或向服务器传输数据的工具,但我不确定如何深入研究curl\u easy\u perform()的返回值。如果它可以访问网站或服务器,我知道它是成功的,但我不知道它正在尝试ping哪个网站,
curl\u easy\u perform()
是否成功返回?如果成功,则返回0;如果不成功,则返回非零
我只有可执行文件,并且运行Ubuntu 14.04
符号表如下所示(readelf-s FILENAME
)
运行可执行文件并不表示答案
我知道curl是一种通过多种协议从服务器或向服务器传输数据的工具,但我不确定如何深入研究
curl\u easy\u perform()
的返回值。如果它可以访问网站或服务器,我知道它是成功的,但我不知道它正在尝试ping哪个网站,您希望如何在不使用调试器的情况下查看请求的url和返回值?除非可执行文件在某处(控制台、文件等)输出该信息,否则您需要使用调试器来查看它。否则,您所能做的就是使用数据包嗅探器来回分析协议数据(这并不保证curl返回成功,即使它收到来自服务器的成功回复,如果它遇到内存错误或解析器错误等)。我有ltrace,但文档没有帮助于我找到如何使用它
Symbol table '.dynsym' contains 14 entries:
Num: Value Size Type Bind Vis Ndx Name
0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND
1: 0000000000000000 0 FUNC GLOBAL DEFAULT UND curl_easy_init@CURL_GNUTLS_3 (2)
2: 0000000000000000 0 FUNC GLOBAL DEFAULT UND curl_easy_perform@CURL_GNUTLS_3 (2)
3: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _Jv_RegisterClasses
4: 0000000000000000 0 FUNC GLOBAL DEFAULT UND curl_easy_setopt@CURL_GNUTLS_3 (2)
5: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTab
6: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.2.5 (3)
7: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__
8: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable
9: 0000000000602050 0 NOTYPE GLOBAL DEFAULT 24 _edata
10: 0000000000602058 0 NOTYPE GLOBAL DEFAULT 25 _end
11: 0000000000400600 0 FUNC GLOBAL DEFAULT 11 _init
12: 0000000000602050 0 NOTYPE GLOBAL DEFAULT 25 __bss_start
13: 00000000004008f4 0 FUNC GLOBAL DEFAULT 14 _fini