Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/powerbi/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
gdb“对数字的无效二进制操作”_Gdb - Fatal编程技术网

gdb“对数字的无效二进制操作”

gdb“对数字的无效二进制操作”,gdb,Gdb,在工作中,当用gdb调试我们的程序时,它有时会重复 一个简单的next命令,对数字执行无效的二进制操作。 非常讨厌。谷歌搜索绝对找不到任何线索。它是C++,所以 也许在某种程度上,gdb内部有些东西被弄糊涂了;我没有 线索 有人吗 我无法将格式设置为正确的注释,因此我将添加到此区域 257 SingleBitBusMap::const_iterator sbb = fSingleBitBusMap.find(constituents.first.c_str()); (gdb) nex

在工作中,当用gdb调试我们的程序时,它有时会重复 一个简单的next命令,对数字执行无效的二进制操作。 非常讨厌。谷歌搜索绝对找不到任何线索。它是C++,所以 也许在某种程度上,gdb内部有些东西被弄糊涂了;我没有 线索

有人吗

我无法将格式设置为正确的注释,因此我将添加到此区域

257       SingleBitBusMap::const_iterator sbb = fSingleBitBusMap.find(constituents.first.c_str());
(gdb) next
Invalid binary operation on numbers.
(gdb)
fSingleBitBusMap是一个std::map 成分是std::对 components.first是一个std::字符串 在它说对数字的二进制操作无效后,bt给了我整个回溯:

(gdb) bt
#0  0x000000000040fb40 in std::string::c_str ()
(gdb) 
不过,先做tbreak+1和cont,然后再做bt
再次给我一个有效的回溯。

我能想到的唯一可能发生这种情况的方法是:您有一些活动的显示,它要求GDB在每次停止时对某个表达式求值,而该表达式无法求值,从而导致对错误数字的无效二进制操作


使用“信息显示”查看当前的自动显示表达式。

您是否可以共享运行gdb的代码段以及观察到错误的gdb会话输出。在报告无效二进制操作后,这里是另一个回溯:gdb对数字的无效二进制操作。std::operator中的gdb bt 6 0 0x000000000040f2c0这里有一个简单的例子:当前行是一个std::string=char缓冲区,在无效的二进制运算符之后,bt在std::string::operator=中显示我们。我没有活动的显示。