在python3--gdb输出上运行cython时出现分段错误

时间:2014-09-26 15:26:15

标签: gdb cython python-3.4

我一直试图在我继承的cython程序中追踪段错误的来源。我已经在python3下实现了gdb,执行gdb python3然后执行run my_file.py并得到了这个:

Program received signal SIGSEGV, Segmentation fault.
__pyx_f_7sklearn_5utils_25graph_shortest_path_leftmost_sibling (__pyx_v_node=<optimised out>)
at /home/my_name/.pyxbld/temp.linux-x86_64-3.4/pyrex/sklearn/utils/graph_shortest_path_strat.c:3195
3195        __pyx_t_1 = (__pyx_v_temp->left_sibling != 0);

谢谢@Veedrac 电话会议如下:

landmark_points=[random.randint(0,kng.shape[0]) for r in range(self.number_landmark_points)]     
self.dist_matrix_=graph_shortest_path_strat(kng,landmark_points,method=self.path_method,directed=F‌​alse). 

基本上不是计算图中每个点之间的距离,而是想计算所有点之间的距离和数组中定义的有限数量的点。其中landmark_points是一个整数数组,kng是最近邻居的图表

kng = kneighbors_graph(self.nbrs_, self.n_neighbors,mode='distance')

graph_shortest_path是.pyx代码。我使用的版本是0.15.1

1 个答案:

答案 0 :(得分:0)

@Veedrac感谢您的帮助。我实际上追溯到我使用random.randint的事实,当我应该用random.sample生成唯一的随机整数时。