Python pdb计算值774但程序分配836

时间:2016-09-08 13:15:36

标签: python pdb

我确定我在这里遗漏了一些东西,但我觉得这很奇怪。

pdb我进入下一步......

 Importing data...
> /usr/local/lib/python2.7/dist-packages/tensorflow/tensorflow/scroll/marching_cube.py(111)read_data()
-> n_cubes = int((n_slices - n_input_z) * int(math.ceil((x_dimension - n_input_x)/step_size)) * int(math.ceil((y_dimension - n_input_y)/step_size)))

当我计算作业的右侧时,我得到774 - 这是正确的值。我可以直接在pdb ...

中进行计算来证明这一点
(Pdb) int((n_slices - n_input_z) * int(math.ceil((x_dimension - n_input_x)/step_size)) * int(math.ceil((y_dimension - n_input_y)/step_size)))
774

但请注意这一点......当我通过n命令转到下一行时,n_cubes会突然分配值836 ...

> /usr/local/lib/python2.7/dist-packages/tensorflow/tensorflow/scroll/marching_cube.py(111)read_data()
-> n_cubes = int((n_slices - n_input_z) * int(math.ceil((x_dimension - n_input_x)/step_size)) * int(math.ceil((y_dimension - n_input_y)/step_size)))
(Pdb) int((n_slices - n_input_z) * int(math.ceil((x_dimension - n_input_x)/step_size)) * int(math.ceil((y_dimension - n_input_y)/step_size)))
774
(Pdb) n
> /usr/local/lib/python2.7/dist-packages/tensorflow/tensorflow/scroll/marching_cube.py(112)read_data()
-> input_4d_volume = np.empty((n_cubes,n_input_z,n_input_x,n_input_y))
(Pdb) n_cubes
836

为了证明计算应该是774,我将打印出计算中涉及的所有变量......

(Pdb) n_slices
49
(Pdb) n_input_z
48
(Pdb) x_dimension
396
(Pdb) n_input_x
48
(Pdb) step_size
8
(Pdb) y_dimension
198
(Pdb) n_input_y
48

1 个答案:

答案 0 :(得分:0)

尝试在作为线程运行的函数的开头设置断点,或者在while true:循环中设置断点(如果有),添加:

import pdb
pdb.set_trace()

然后正常运行脚本(pdb)并在线程启动时执行将进入调试器。以这种方式设置断点允许pdb在子线程中运行,它可以访问n_cubes's值。