c++ Intel inspector 显示许多 boost 错误 - 我需要担心吗?

标签 c++ memory-management boost intel-inspector

我当前的程序有问题。由于某种原因,它总是在 Windows 上的最后一行代码之后崩溃。我收到“应用程序不再响应”错误或类似的错误。 所以我尝试了英特尔检查员。幸运的是,它告诉我项目中的一些严重错误,我访问了一些未初始化的内存。

除了我理解的这些明显问题之外,我还遇到了一些问题:

  • 不正确的 memcpy 调用:boost::algorithm::trim()
  • 未初始化的部分内存访问:myptree.get<boost::posix_time::ptime>("path.to.node")其中 myptree类型为 boost::property_tree::ptree
  • 未初始化的内存访问:cout << myptime其中 myptime类型为 boost::posix_time::ptime

...

这是否意味着我没有正确使用 boost 库函数?或者这是误报?

我只是感到困惑,因为这些功能可以正常工作,它们按照我的要求进行操作,而且我没有收到任何错误消息。

最后我还收到了内存未释放警告(来自 [Unknown] 来源)。

修剪示例:

#include <iostream>
#include <boost/algorithm/string.hpp>
int main() {
    std::string test = " test  ";

    boost::algorithm::trim(test);
    std::cout << test << std::endl;
    return 0;
}

给我一​​个不正确的 memcpy 调用...

最佳答案

Boost 会愉快地转发错误的论点;它通常无法检查它们。如果 boost::algorithm::trim 向 memcpy 传递了错误的参数,那是因为您向 trim 传递了错误的参数。

所以,是的,你应该担心。您的程序中几乎肯定存在多个错误。检查您对所报告函数的调用。

关于c++ Intel inspector 显示许多 boost 错误 - 我需要担心吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47576884/

相关文章:

c++ - 如何将 STL vector 矩阵转换为二维数组矩阵(或一维数组)

c++ - 如何在 arrayfire 中使用翻转和转置来避免 memcpy?

Python 内存使用 : Which of my objects is hogging the most memory?

c++ - 如何将 compressed_sparse_row_graph 和 dijkstra 与 BOOST 图形库一起使用

c++ - 如何处理返回 string_type 的 C++ boost::filesystem 函数?

c++ - 如何在 C++ 中重用字符串流?

c++ - std::apply 和常量表达式?

c++ - 使用模板模板参数作为类函数的返回类型

python - 为什么我的 python 2.7 进程使用大量内存?

c++ - 我如何从 boost::streambuf 读取指针数据但没有复制数据