2014-09-26 4 views
0

Я пытаюсь проследить источник segfault в программе cython, которую я унаследовал. Я реализовал GDB под Python3, выполнив gdb python3 затем run my_file.py и получил это:ошибка сегментации при запуске cython на python3 - вывод gdb

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

+0

Благодаря @Veedrac landmark_points = [random.randint (0, kng.shape [0]) для г в диапазоне (self.number_landmark_points)] self.dist_matrix_ = graph_shortest_path_strat (КНГ, landmark_points, метод = self.path_method, направлены = False). В основном вместо того, чтобы накапливать расстояния между каждой точкой на графике, я хочу рассчитать расстояние между всеми точками и ограниченное количество точек, определенных в массиве. , где landmark_points является массив целых чисел KNG представляет собой график ближайших соседей KNG = kneighbors_graph (self.nbrs_, self.n_neighbors, режим = 'расстояние') – kat

+0

graph_shortest_path является кодом .pyx. И я использую версию 0.15.1 – kat

+0

oops, спасибо, сделали это – kat

ответ

0

@Veedrac благодарит за вашу помощь. Я фактически проследил ошибку в том, что я использовал random.randint, когда я должен был генерировать уникальные случайные целые числа со случайным.