GDB - 访问复数的实部和虚部

时间:2011-01-03 11:19:22

标签: c++ c gdb complex-numbers

调试使用(C或C ++)的程序时,gdb会将复数显示为_M_value = xxx + yyy*I(类型为complex double)。

调试时,我需要打印该数字乘以一个因子。

以下无法工作:

print a * 8.0

我得到Argument to arithmetic operation not a number or boolean

另外,我无法访问实部和虚部,以便我可以编写一个gdb宏来执行上述操作。我目前的解决方案是编写一个C函数来处理复杂的值和数组,并从gdb调用该函数。不知何故,这感觉不对。

2 个答案:

答案 0 :(得分:3)

如果使用标准C ++复杂模板,那么complex :: real()和complex :: imaj()应该可以工作。

MY2C

注意:是评论^^

答案 1 :(得分:0)

您可以调用C库函数creal()cimag()来细分数字。