отладка curl необработанное исключение - PullRequest
0 голосов
/ 03 апреля 2019

Это немного сложная проблема для меня, чтобы отладить должным образом, потому что это не всегда происходит, и кажется ли это случайным случаем.Что я делаю, так это настраиваю пользователя несколько раз.Один «срок исполнения» и несколько «предупреждений».Когда эти времена проходят, они получают текст на указанный номер телефона.Обычно это работает, но в редких случаях я получаю необработанное исключение из easy.c, предоставляемого curl.

#undef curl_easy_getinfo
CURLcode curl_easy_getinfo(struct Curl_easy *data, CURLINFO info, ...)
{
  va_list arg;
  void *paramp;
  CURLcode result;

  va_start(arg, info);
  paramp = va_arg(arg, void *);

  result = Curl_getinfo(data, info, paramp);

  va_end(arg);
  return result;
}

Это происходит в строке "result = Curl_getinfo (data, info, paramp);»

Создано необработанное исключение: нарушение прав чтения. данные были 0x7E8DD8.Произошло

Я не уверен, почему возникает эта ошибка, и ее очень трудно проверить, так как она встречается настолько редко и непоследовательно даже при идентичных обстоятельствах.

Я сохранилcallstack, если это поможет, но мне было интересно, может ли кто-нибудь иметь общее представление о том, что может быть причиной этого, или есть какие-либо советы по отладке в противоречивой ситуации, подобной этой.

     Schedule490.exe!getinfo_long(Curl_easy * data, CURLINFO info, long * param_longp) Line 152    C
     Schedule490.exe!Curl_getinfo(Curl_easy * data, CURLINFO info, ...) Line 461    C
>    Schedule490.exe!curl_easy_getinfo(Curl_easy * data, CURLINFO info, ...) Line 844    C
     Schedule490.exe!twilio::Twilio::send_message(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > &,bool)    C++
     Schedule490.exe!Schedule::dateWarnAlert(struct tm,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >)    C++
     Schedule490.exe!Schedule::nextUpdate(void)    C++
     Schedule490.exe!std::_Invoker_pmf_refwrap::_Call<void ( Schedule::*)(void),class std::reference_wrapper<class Schedule> >(void ( Schedule::*)(void),class std::reference_wrapper<class Schedule> &&)    C++
     Schedule490.exe!std::invoke<void ( Schedule::*)(void),class std::reference_wrapper<class Schedule> >(void ( Schedule::*&&)(void),class std::reference_wrapper<class Schedule> &&)    C++
     Schedule490.exe!std::_LaunchPad<class std::unique_ptr<class std::tuple<void ( Schedule::*)(void),class std::reference_wrapper<class Schedule> >,struct std::default_delete<class std::tuple<void ( Schedule::*)(void),class std::reference_wrapper<class Schedule> > > > >::_Execute<0,1>(class std::tuple<void ( Schedule::*)(void),class std::reference_wrapper<class Schedule> > &,struct std::integer_sequence<unsigned int,0,1>)    C++
     Schedule490.exe!std::_LaunchPad<class std::unique_ptr<class std::tuple<void ( Schedule::*)(void),class std::reference_wrapper<class Schedule> >,struct std::default_delete<class std::tuple<void ( Schedule::*)(void),class std::reference_wrapper<class Schedule> > > > >::_Run(class std::_LaunchPad<class std::unique_ptr<class std::tuple<void ( Schedule::*)(void),class std::reference_wrapper<class Schedule> >,struct std::default_delete<class std::tuple<void ( Schedule::*)(void),class std::reference_wrapper<class Schedule> > > > > *)    C++
     Schedule490.exe!std::_LaunchPad<class std::unique_ptr<class std::tuple<void ( Schedule::*)(void),class std::reference_wrapper<class Schedule> >,struct std::default_delete<class std::tuple<void ( Schedule::*)(void),class std::reference_wrapper<class Schedule> > > > >::_Go(void)    C++
     Schedule490.exe!std::_Pad::_Call_func(void *)    C++
     Schedule490.exe!invoke_thread_procedure(unsigned int(__stdcall*)(void *) procedure, void * const context) Line 92    C++
     Schedule490.exe!thread_start<unsigned int (__stdcall*)(void *)>(void * const parameter) Line 115    C++
     kernel32.dll!@BaseThreadInitThunk@12()    Unknown
     ntdll.dll!__RtlUserThreadStart()    Unknown
     ntdll.dll!__RtlUserThreadStart@8()    Unknown
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...