如何调试Pro * C代码?

时间:2015-08-01 16:48:44

标签: c debugging

我们有一个用Pro * C编写的遗留代码,现在需要重构。是否有任何支持调试程序代码的调试器。

是否可以使用proc * C预编译后生成的.c / .cpp进行调试

3 个答案:

答案 0 :(得分:4)

可以阅读here in chapter 9 LINES=YES选项添加#line C预处理程序指令。 (只需在上面的PDF中搜索“调试”一词,您就可以直接跳到正确的页面。)这样做可以调试原始的Pro * C代码。

如果没有上述选项,您仍然可以进行调试,但只要您传递了第一个Pro * C命令(已扩展到更多行),调试器就会指向完全错误(太远)的行)。插入的#line指令只是纠正了这一点,而不会以任何其他方式影响调试过程;因此,如果您无法进行调试,则首先需要对其进行排序。

尝试找到调用proc的makefile(或构建脚本)并添加上述选项。

请注意,如果您单步调试代码,调试器可能会在每个Pro * C命令上保留几个步骤。这只是因为Pro * C命令可以扩展到几行C代码,它们都分配了相同的行号。

很久以前,我的房间里有同事使用Pro * C,我依旧记得他们能够调试。此外,正如John Bollinger评论的那样,它应该都是可能的,因为Pro * C只是一个输出常规C / C ++的预处理器。

答案 1 :(得分:0)

当我在Pro * C批次上工作时,现在大约1年;我们只是在屏幕上显示trace_message。它就像:

定义一个变量:

定义a = 0

if(a == 0)printf("打开光标");

(并且在大多数代码使用中)因此,当程序运行时,它将显示它正在做什么以及它正在取出什么值。我们也可以创建一个函数来创建一个debug_log.txt,而不是直接在屏幕上打印,无论你喜欢哪种方式。

并在prod中部署代码。只是:

定义a = 1

我希望这可能有所帮助。

答案 2 :(得分:0)

下面是调试Pro * C程序的步骤。您必须已经安装并设置了gdb。请点击原始链接以获取更多信息。

gdb <program>

r - run program

b <line number> - set breakpoint

d <line number> - unset breakpoint

n -next line

s - step into

c - continue (to next breakpoint)

bt - backtrace

l <line number> - list the source code at <line number>

clear [line number] - clears the break point at [line]

q - quit

Watch <parameter> - Program stops when the value of the parameter changes

http://teaching.csse.uwa.edu.au/units/CITS2230/resources/gdb-intro.html

https://sourceware.org/gdb/onlinedocs/gdb/Set-Watchpoints.html