【问题标题】:Is there a way to print a formatted string from the log action in eclipse CDT breakpoint action?有没有办法从 eclipse CDT 断点操作中的日志操作中打印格式化字符串?
【发布时间】:2014-06-12 13:49:28
【问题描述】:

我正在尝试直接从 eclipse-cdt 中的断点操作显示格式化字符串(在 C 中编程时)。

我已经配置了一个条件断点并关联了 2 个操作: - 日志操作(我已选中“评估为表达式”复选框) - 防止调试器实际停止在该断点处的恢复操作

我没有找到有关预期日志操作表达式语法的任何文档:我尝试了几种变体,但只能显示单个变量内容。从这些尝试中,我发现它不需要诸如 printf("i = %d",i); 之类的 C 语句。也不是 gdb printf 语法。

我本来想打印一个像“i = 12 and sum = 34”这样的字符串。

提前致谢。

【问题讨论】:

  • 也许 char buf[60]; sprintf(buf, "i = 12 and sum = 34",i,, sum); fputs(buf, stdout);
  • 我尝试过类似的解决方案,但它打印出char buf[60]; sprintf(buf, "i = 12 and sum = 34",i,, sum); fputs(buf, stdout);: evaluation failed.
  • 两个逗号i,, sum?
  • 即使只有一个逗号,错误信息也是一样的。只有 printf 似乎被接受,并且表达式末尾没有分号

标签: c eclipse-cdt breakpoints


【解决方案1】:

只需像在常规代码中一样调用 printf,但不要在末尾添加分号。为我工作。请注意,这会将文本打印到您的应用程序标准输出,并且看起来就像正常的应用程序文本输出。

测试于: 面向 C/C++ 开发人员的 Eclipse IDE

版本:Kepler Service Release 2 内部版本号:20140224-0627

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-09-15
    • 2019-07-06
    • 2022-11-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多