- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我已经为我正在使用的数据库基础架构编写了一个多线程压力测试,我正在尝试使用 callgrind 对其进行概要分析。该程序在 valgrind 之外完美执行并提供预期结果。
但是,当在 valgrind --tool=callgrind
下运行时,程序会执行一小段时间,然后停止,valgrind 报告 Killed
最后一次输出到标准输出。
有没有办法让我确定为什么 valgrind 终止了我的任务?
在遵循 phd 的建议后:它确实被 valgrind --tool=none
杀死了,但是,我不完全确定如何分析我收到的消息,似乎有我的线程中有很多 sigvgkill
信号。第一个实例在这里:
--13713:1:syswrap- run_a_thread_NORETURN(tid=104): pre-thread_wrapper
--> [pre-success] Success(0x0:0x365c)--13713:1:syswrap- thread_wrapper(tid=104): entry
SYSCALL[13713,104](311) sys_set_robust_list ( 0x4f213be0, 12 )[sync] --> Success(0x0:0x0)
SYSCALL[13713,104](240) sys_futex ( 0xbeaf348, 128, 2, 0x0, 0x0 ) --> [async] ...
--13713-- async signal handler: signal=13, tid=32, si_code=0
--13713-- interrupted_syscall: tid=32, ip=0x380b197c, restart=False, sres.isErr=True, sres.val=32
--13713-- completed, but uncommitted: committing
--13713:1:gdbsrv VG core calling VG_(gdbserver_report_signal) vki_nr 13 SIGPIPE gdb_nr 13 SIGPIPE tid 32
--13713:1:gdbsrv not connected => pass
--13713-- delivering signal 13 (SIGPIPE):0 to thread 32
--13713-- delivering 13 (code 0) to default handler; action: terminate
==13713==
最佳答案
据我所知,valgrind 不会用这么少的东西杀死一个程序冗长为“杀死”。这样的事情看起来更像是来自另一个进程的杀戮。
尽管如此,您可以尝试多种方法来调查您的程序行为的原因在 valgrind 下与 native 不同:
首先在 valgrind --tool=none
下运行它。这是更快的工具(什么都不做)。然后您可以查看您的程序是否按预期运行。如果没有,则使用额外的 valgrind 内部跟踪运行,例如
--tool=none -v -v -v -d -d -d --trace-syscalls=yes --trace-signals=yes
跟踪可能会提供有关它为何中止/被杀死的线索。
在 --tool=memcheck
和 --tool=helgrind
下运行它(同样,如果崩溃,您可以运行更多跟踪)。
最后,--tool=callgrind
+ 更多跟踪,如果上面没有还要澄清。
关于c++ - 如何确定 valgrind/callgrind 终止进程的原因,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38590262/
我对用 C/C++ 编写的代码测试某些函数调用的速度很感兴趣。我进行了搜索,并被指示使用带有 Callgrind 工具的 Valgrind 平台。 我已简要阅读 manual ,但我仍然想知道如何利用
我想使用 callgrind 分析我的应用程序。现在,由于需要很长时间,同时我在同一台机器上继续进行网页浏览、编译和其他密集任务。 我对分析结果有偏差吗?我希望,由于 valgrind 使用模拟 CP
是否可以通过 Callgrind 的分析输出取回跟踪信息? 如果是,您能否解释一下这是如何完成的? [更新] 这可能是我的术语。使用 Kcachegrind 查看 Callgrind 分析结果时调用的
我正在分析我的代码,我已经找到了其中最昂贵的部分。但是它发生在内联函数中。为了衡量影响,我强制不内联该函数。 现在我想报告准确的分析数据。如果没有内联,我们会有巨大的开销(该函数基本上是一个循环,但它
我有一个带有内部循环的程序,由于它执行的迭代次数,它需要非常非常快。为了分析这段代码,我一直在使用 valgrind/callgrind。我发现它是一个很棒的工具。不幸的是,我在优化方面的努力使我不得
我正在使用 callgrind 来分析一个 linux 多线程应用程序,大部分情况下它运行良好。我在关闭仪器 (--instr-atstart=no) 的情况下启动它,然后在设置完成后,我通过 cal
我正在尝试通过消除我不关心的噪音和计算来分析(使用 Callgrind)我的代码的特定部分。这是我想做的一个例子: for (int i=0; i
我目前正在尝试分析和调试我正在使用的库的性能问题。为此,我写了一个简短的C++代码将使用该库的一些核心功能并在其上运行一个简单的计时器。 为了更深入地研究,我现在开始将 valgrind 与 --to
我想使用 valgrind 进行一些分析,因为它不需要重新构建程序。 (我想分析的程序已经用“-g”构建了) 但是 valgrind(callgrind) 很慢......所以这是我要做的: 启动服务
我的应用程序需要一个动态调用图。我用 callgrind 运行它工具( valgrind 套件)并得到 callgrind.out.xxxxx文件。现在,我想对这些数据进行图形表示。 KCacheGr
我想将 callgrind 的输出重定向到文件名 call_grind.txt ,但是当我尝试这样做时,会生成一个文件,但该文件内没有输出。 例如: valgrind --tool=callgrind
我想使用 Callgrind 来查找一些复杂的 Rcpp 代码中的瓶颈。由于我无法让它工作,所以我决定编写一个简单的 R 文件,以确保它能够正常工作。 但是,我仍然无法让它工作。 我的简单功能是: a
我正在尝试了解 Callgrind 配置文件格式。我找到了 online description 在遇到“扩展示例”之前,我认为自己理解得很好: events: Instructions fl=fil
我有一个 kcachegrind/callgrind 报告奇怪结果的模型代码。这是一种调度程序功能。调度员从 4 个地方调用;每个电话都说,实际do_J要运行的函数(所以 first2 将只调用 do
我正在尝试对 callgrind 的某些结果运行 KCacheGrind。基本上,代码库是一个插件容器,它启动共享对象以运行特定功能。使用 Callgrind 分析此应用程序后,我可以看到功能级别的成
抱歉,我无法创建一个最小的完整示例,因为问题只发生在相对较大的程序中,我不确定这本身就是一个“错误”,而不是对 callgrind 分析应该完成的误解. 我有一个大型程序,其运行时间被分成大约 50
我第一次尝试使用 Callgrind/Kcachegrind 来分析我的 C++ 应用程序,我注意到需要更多时间的两个函数是: (50% 自己)和 do_lookup_x(15% 自己) 现在,根据我
我正在生成多个进程并在每个进程中启动检测。当我尝试在进程退出之前停止检测时,检测程序似乎卡在 shell 中,就好像进程已经完成并且没有进程来停止检测。这是代码: from os import sys
Java 是否有一个免费 的 callgrind?基本上,我只需要任何能为我的 Java 代码的每个方法和函数提供周期计数或花费时间的东西。 我想我应该提一下我使用的是 mac,这意味着下面的 ecl
我正尝试在 GNU/Linux 上分析一个共享库,它进行实时音频处理,因此性能很重要。我运行另一个程序,将它连接到我系统的音频输入和输出,并使用 callgrind 对其进行分析。 查看 KCache
我是一名优秀的程序员,十分优秀!