gpt4 book ai didi

linux - 如何在 Linux 上调试实时应用程序?

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:13:32 25 4
gpt4 key购买 nike

我有一个与某些设备(OS Linux)交换数据的进程。我想附加到这个过程(而不是停止它),并实时观察某些变量的值和其他信息。是否可以用 GDB 或其他东西来做,如果可以,该怎么做?到目前为止,我正在为此目的使用 printfs。

最佳答案

gdb 有两个工具可以帮助这个调试场景。

一个是相对较新的 dprintf 命令。这基本上类似于 printf 调试——除了您可以在 gdb session 期间选择要打印的内容,并且不需要重新编译。

dprintf 并不总是非常“实时”。默认情况下,它涉及停止你的下级,以便 gdb 可以提取信息并打印它。您可能需要 set dprintf-style agent,尽管我认为这意味着使用远程代理,但并非所有代理都支持此功能。

另一个工具是 gdb 的“tracepoint”功能。跟踪点最初设计用于支持这种情况——从无法停止的实时服务器记录数据。

Tracepoints 也只适用于合适的远程代理。不过,您可以只使用 gdbserver —— 这很容易做到,并且在本地工作得很好。

gdb 手册中有大量关于跟踪点的文档,我建议阅读该手册以了解如何使用它们。

关于linux - 如何在 Linux 上调试实时应用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33711426/

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