我是一个gdb新手,我试图调试一些GSSAPI代码,并使用fin
来查看帧的返回值。正如下面粘贴的剪辑所示,来自gssint_mechglue_initialize_library()
的调用似乎是0
,但实际的检查似乎失败了。有人可以指出我是否遗漏了明显的东西吗?
提前致谢!
观察到的行为的一个可能的解释是您正在调试优化的代码,并且该行1001并未真正执行。
你可以用几个next
s确认这一点,或者再次执行fin
并观察是否从GSS_S_COMPLETE
返回gssint_select_mech_type
或其他东西。
当启用优化时,优化器执行的代码运动通常会阻止将实际代码序列正确分配给行号(因为“属于”不同行的指令被混合并重新排序)。这经常导致代码在例如“跳转”时“跳转”。做nexti
命令。
为了便于调试,请使用-O0
重新编译,或确保从编译行中删除任何-O2
等。