小编Tim*_*Tim的帖子

Valgrind未处理的指令字节错误

为了在我的应用程序中基于Liv555库搜索内存泄漏,我尝试使用valgrind运行它.它会导致以下错误:

vex amd64->IR: unhandled instruction bytes: 0xC5 0xF9 0x57 0xC0 0xC5 0xFA 0x10 0x15
Run Code Online (Sandbox Code Playgroud)

在另一台计算机上运行它不会导致此错误(它运行正常),所以我希望这是一些库版本的结果.这可能是问题吗?如果是这样,有谁知道哪个库可能导致错误?valgrind带有-v -v选项的输出位于此处.

valgrind

10
推荐指数
1
解决办法
6000
查看次数

使用多个线程和互斥锁时断言互斥锁

作为项目的一部分,我正在编写记录器功能.当程序想要记录某些内容时,此记录器功能会发送电子邮件.由于SMTP服务器没有响应,我决定在单独的线程中发送邮件.该线程从std :: deque读取消息,该消息由日志记录函数填充.该线程设置如下:

while (!boost::this_thread::interruption_requested())
{
  EmailItem emailItem;
  {
    boost::unique_lock<boost::mutex> lock(mMutex);
    while (mEmailBuffer.empty())
      mCond.wait(lock);

    bufferOverflow = mBufferOverflow;
    mBufferOverflow = false;
    nrOfItems = mEmailBuffer.size();

    if (nrOfItems > 0)
    {
      emailItem = mEmailBuffer.front();
      mEmailBuffer.pop_front();
    }
  }

  if (nrOfItems > 0)
  {
      bool sent = false;
      while(!sent)
      {
          try
          {
             ..... Do something with the message .....
            {
                boost::this_thread::disable_interruption di;
                boost::lock_guard<boost::mutex> lock(mLoggerMutex);
                mLogFile << emailItem.mMessage << std::endl;
            }
            sent = true;
          }
          catch (const std::exception &e)
          {
            // Unable to send mail, an …
Run Code Online (Sandbox Code Playgroud)

multithreading boost mutex

7
推荐指数
1
解决办法
8170
查看次数

标签 统计

boost ×1

multithreading ×1

mutex ×1

valgrind ×1