gpt4 book ai didi

c++ - 如何在 Linux 上监视多线程 (pthread) C++ 程序的每个线程行为?

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:09:11 26 4
gpt4 key购买 nike

我正在 Linux (redhat) 上运行一个多线程 (pthread) C++ 程序。

我想跟踪正在运行的程序的行为,但线程的打印输出相互交错。很难找出每个线程的行为。

我想使用 DDD(一个 gdb GUI)来分析程序的行为,但它需要“motif”,当我安装“motif”时出现错误:

cc -c -O -I../../include -I../../imports/x11/include/X11 ./ccimake imake.cimake.c:162:21: 错误:Xosdefs.h: 没有那个文件或目录

我也使用了 helgrind 和 drd 工具,但是有很多纯文本打印输出,这使得每个线程的行为变得困惑。

能否请您推荐更好的开源工具,帮助我清晰、轻松地调试和分析/监控多个 pthread 的行为?

是否可以在不同的终端 xterm 窗口中显示每个线程而不将所有线程混合在一起?

谢谢

最佳答案

像 printf 这样的标准打印函数不是线程安全的。如果您正在记录到标准输出或单个文件,则需要将您的记录功能视为关键部分并使用互斥锁保护它们。否则您的日志可能会交错或乱序。

或者,您可以让每个线程创建自己的日志文件,将线程名称/ID 和时间戳写入每个文件,并在单独的终端中“跟踪”这些日志文件。

关于c++ - 如何在 Linux 上监视多线程 (pthread) C++ 程序的每个线程行为?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9014180/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com