6

我需要迭代地获取给定图的最小分割分区,直到子图的 odes 数量低于某个给定的阈值min_node。这将用作 CHAMELEON 聚类算法的预处理步骤。为此,我将METIS库与 R 一起使用。我为METIS_PartGraphRecursive ()METIS 库中的函数制作了一个简单的包装器,我用它来通过.C接口从 R 代码调用。调用包装器函数没问题,并进行分区并返回我处理的结果,并通过消除两个分区之间的边缘来检索子图。然后我通过其中一个子图来进行进一步的分区。此调用使 R 崩溃。崩溃跟踪显示在崩溃报告中下面的部分。(更新)Valgrind 的输出如下所示(正如 Martin Morgan 评论的那样)。

似乎崩溃的原因是 METIS 库中的一些代码。

我正在发布我正在使用的 METIS 包装器,以及我如何称呼这个包装器。

崩溃后,fedora 显示“检测到 R-core-2.15.0-1.fc16 包中的问题”的通知。R 被操作系统使用 SIGABRT 或 SIGSEGV 杀死,并且错误报告工具消息告诉以下内容:

 Source     Problem                                                           
 kernel     BUG: unable to handle kernel NULL pointer dereference at 00000004 

我的系统:

$ uname -r
3.3.7-1.fc16.x86_64

谁能帮我解决这个问题?

测试数据集

> x
      [,1] [,2]
 [1,]   13    0
 [2,]    9    0
 [3,]   11   26
 [4,]    9    1
 [5,]   13    2
 [6,]    5    3
 [7,]    6    0
 [8,]   17   13
 [9,]    1    6
[10,]    6   14
[11,]    4    6
[12,]   15   10
[13,]    1    1

样品运行

从上述点生成的 metis 格式的图形已分区一次,在此特定示例中可以正常工作。但是,如果我采用其中一个分区组件并进一步对其进行重新分区,那么程序就会崩溃。同样,对于具有 600 个点的更大数据集,第一个分区崩溃。

> cm (x, 4)
The below graph is to be partitioned: 
$xadj
 [1]  1  5  9 13 17 21 25 29 33 37 41 45 49 53

$adjncy
 [1]  5  2  4  7  4  7  1  5 10  8 12 11  2  7  1  5  1  4  2  7  7 11 13  4  2
[26]  6  4 13 12 10  5  1 11 13  6  7 11  9 12  8  9  6 13  7  8  5 10  1  6  9
[51]  7 11

$adjwgt
 [1]  2.000000  4.000000  4.123106  7.000000  1.000000  3.000000  4.000000
 [8]  4.472136 13.000000 14.317821 16.492423 21.189620  1.000000  3.162278
[15]  4.123106  4.123106  2.000000  4.123106  4.472136  7.280110  3.162278
[22]  3.162278  4.472136  4.472136  3.000000  3.162278  3.162278  5.099020
[29]  3.605551 11.045361 11.704700 13.601471  3.000000  5.000000  5.000000
[36]  7.810250  8.246211  9.433981  9.848858 11.045361  3.000000  3.162278
[43]  5.830952  6.324555  3.605551  8.246211  9.848858 10.198039  4.472136
[50]  5.000000  5.099020  5.830952

#Original list of points
$vertex_id
 [1]  1  2  3  4  5  6  7  8  9 10 11 12 13

Initial Cut: 145

METIS_OK

Partition 1 list of original points
[[1]]
[[1]]$vertex_id
[1] 1 2 4 5 6 7

[[1]]$xadj
[1]  1  5  9 13 17 19 22

Point index local to this partition
[[1]]$adjncy
 [1] 5 2 4 7 4 7 1 5 2 7 1 5 1 4 2 7 7 4 2 6 4

[[1]]$adjwgt
 [1] 2.000000 4.000000 4.123106 7.000000 1.000000 3.000000 4.000000 4.472136
 [9] 1.000000 3.162278 4.123106 4.123106 2.000000 4.123106 4.472136 7.280110
[17] 3.162278 4.472136 3.000000 3.162278 3.162278


Partition 2 list of original points    
[[2]]
[[2]]$vertex_id
[1]  3  8  9 10 11 12 13

[[2]]$xadj
[1]  1  5  7  9 13 15 17 19

Point index local to this partition    
[[2]]$adjncy
 [1] 10  8 12 11 12 10 11 13 11  9 12  8  9 13  8 10  9 11

[[2]]$adjwgt
 [1] 13.000000 14.317821 16.492423 21.189620  3.605551 11.045361  3.000000
 [8]  5.000000  8.246211  9.433981  9.848858 11.045361  3.000000  5.830952
[15]  3.605551  9.848858  5.000000  5.830952

METIS 包装

void metis_wrap (idx_t *nvtxs, idx_t *ncon, idx_t *xadj, idx_t *adjncy, idx_t *adjwgt, idx_t *nparts, idx_t *objval, idx_t *part)
{
  int retval, i, j;
  idx_t options[METIS_NOPTIONS];
  idx_t *vwgt = NULL, *vsize = NULL;
  real_t *ubvec = NULL, *tpwgts = NULL;

  METIS_SetDefaultOptions (options);
  options[METIS_OPTION_OBJTYPE] = METIS_OBJTYPE_CUT;
  options[METIS_OPTION_NUMBERING] = 1;
  options[METIS_OPTION_DBGLVL] = METIS_DBG_IPART;

  retval = METIS_PartGraphRecursive (nvtxs, ncon, xadj, adjncy, vwgt, vsize, adjwgt, nparts, tpwgts, ubvec, options, objval, part);

  switch (retval)
  {
    case METIS_OK:
      printf ("\nMETIS_OK\n");
      break;
    case METIS_ERROR_INPUT:
      printf ("\nMETIS_ERROR_INPUT\n");
      break;
    case METIS_ERROR_MEMORY:
      printf ("\nMETIS_ERROR_MEMORY\n");
      break;
    case METIS_ERROR:
      printf ("\nMETIS_ERROR\n");
      break;

  }
}

R中的.C代码

  part_graph <- function (knn_data)
  {
    nvtxs <- as.integer (length (knn_data$vertex_id));
    nparts <- 2; 
    ncon <- 1;
    ubvec <- 25;

    objval <- 0;
    part <- rep (0, nvtxs);

    knn_data$adjwgt <- 1/knn_data$adjwgt * 200;
    mode (knn_data$adjwgt) <- "integer";

    dyn.load ("libmetis.so");
    dyn.load ("metiswrap.so");
    ret <-.C ("metis_wrap", nvtxs = as.integer (nvtxs), ncon = as.integer (ncon), xadj = as.integer (knn_data$xadj), adjncy = as.integer (knn_data$adjncy), adjwgt = as.integer (knn_data$adjwgt), nparts = as.integer (nparts), objval = as.integer (objval), part = as.integer (part))

    return (list (part = ret$part, objval = ret$objval))
  }

崩溃报告

*** glibc detected *** /usr/lib64/R/bin/exec/R: free(): invalid next size (fast): 0x000000000263a420 ***
======= Backtrace: =========
/lib64/libc.so.6[0x313a47dda6]
/lib64/libc.so.6[0x313a47f08e]
/home/phoxis/Documents/Works/Programming/R/libmetis.so(gk_free+0x9a)[0x7fd5ef3a7eba]
/home/phoxis/Documents/Works/Programming/R/libmetis.so(libmetis__FreeRData+0x71)[0x7fd5ef3cf5e1]
/home/phoxis/Documents/Works/Programming/R/libmetis.so(libmetis__FreeGraph+0x5a)[0x7fd5ef3cf65a]
/home/phoxis/Documents/Works/Programming/R/libmetis.so(libmetis__MlevelRecursiveBisection+0x15c)[0x7fd5ef3d242c]
/home/phoxis/Documents/Works/Programming/R/libmetis.so(METIS_PartGraphRecursive+0x166)[0x7fd5ef3d2796]
/home/phoxis/Documents/Works/Programming/R/metiswrap.so(metis_wrap+0xc6)[0x7fd5ef184d86]
/usr/lib64/R/lib/libR.so[0x376b8b148d]
/usr/lib64/R/lib/libR.so(Rf_eval+0x739)[0x376b8e1b09]
/usr/lib64/R/lib/libR.so[0x376b8e4790]
/usr/lib64/R/lib/libR.so(Rf_eval+0x55b)[0x376b8e192b]
/usr/lib64/R/lib/libR.so[0x376b8e4910]
/usr/lib64/R/lib/libR.so(Rf_eval+0x55b)[0x376b8e192b]
/usr/lib64/R/lib/libR.so(Rf_applyClosure+0x322)[0x376b8e5c32]
/usr/lib64/R/lib/libR.so(Rf_eval+0x430)[0x376b8e1800]
/usr/lib64/R/lib/libR.so[0x376b8e4790]
/usr/lib64/R/lib/libR.so(Rf_eval+0x55b)[0x376b8e192b]
/usr/lib64/R/lib/libR.so[0x376b8e4910]
/usr/lib64/R/lib/libR.so(Rf_eval+0x55b)[0x376b8e192b]
/usr/lib64/R/lib/libR.so(Rf_eval+0x55b)[0x376b8e192b]
/usr/lib64/R/lib/libR.so[0x376b8e4910]
/usr/lib64/R/lib/libR.so(Rf_eval+0x55b)[0x376b8e192b]
/usr/lib64/R/lib/libR.so[0x376b8e65ec]
/usr/lib64/R/lib/libR.so(Rf_eval+0x55b)[0x376b8e192b]
/usr/lib64/R/lib/libR.so[0x376b8e4910]
/usr/lib64/R/lib/libR.so(Rf_eval+0x55b)[0x376b8e192b]
/usr/lib64/R/lib/libR.so(Rf_applyClosure+0x322)[0x376b8e5c32]
/usr/lib64/R/lib/libR.so(Rf_eval+0x430)[0x376b8e1800]
/usr/lib64/R/lib/libR.so(Rf_ReplIteration+0x1e3)[0x376b9178b3]
/usr/lib64/R/lib/libR.so[0x376b917b40]
/usr/lib64/R/lib/libR.so(run_Rmainloop+0x50)[0x376b918060]
/usr/lib64/R/bin/exec/R(main+0x1b)[0x40076b]
/lib64/libc.so.6(__libc_start_main+0xed)[0x313a42169d]
/usr/lib64/R/bin/exec/R[0x40079d]
======= Memory map: ========
00400000-00401000 r-xp 00000000 08:01 1051073                            /usr/lib64/R/bin/exec/R
00600000-00601000 r--p 00000000 08:01 1051073                            /usr/lib64/R/bin/exec/R
00601000-00603000 rw-p 00001000 08:01 1051073                            /usr/lib64/R/bin/exec/R
022f8000-03928000 rw-p 00000000 00:00 0                                  [heap]
313a000000-313a022000 r-xp 00000000 08:01 786460                         /lib64/ld-2.14.90.so
313a221000-313a222000 r--p 00021000 08:01 786460                         /lib64/ld-2.14.90.so
313a222000-313a223000 rw-p 00022000 08:01 786460                         /lib64/ld-2.14.90.so
313a223000-313a224000 rw-p 00000000 00:00 0 
313a400000-313a5ad000 r-xp 00000000 08:01 786461                         /lib64/libc-2.14.90.so
313a5ad000-313a7ad000 ---p 001ad000 08:01 786461                         /lib64/libc-2.14.90.so
313a7ad000-313a7b1000 r--p 001ad000 08:01 786461                         /lib64/libc-2.14.90.so
313a7b1000-313a7b3000 rw-p 001b1000 08:01 786461                         /lib64/libc-2.14.90.so
313a7b3000-313a7b8000 rw-p 00000000 00:00 0 
313a800000-313a883000 r-xp 00000000 08:01 788752                         /lib64/libm-2.14.90.so
313a883000-313aa82000 ---p 00083000 08:01 788752                         /lib64/libm-2.14.90.so
313aa82000-313aa83000 r--p 00082000 08:01 788752                         /lib64/libm-2.14.90.so
313aa83000-313aa84000 rw-p 00083000 08:01 788752                         /lib64/libm-2.14.90.so
313ac00000-313ac17000 r-xp 00000000 08:01 786462                         /lib64/libpthread-2.14.90.so
313ac17000-313ae16000 ---p 00017000 08:01 786462                         /lib64/libpthread-2.14.90.so
313ae16000-313ae17000 r--p 00016000 08:01 786462                         /lib64/libpthread-2.14.90.so
313ae17000-313ae18000 rw-p 00017000 08:01 786462                         /lib64/libpthread-2.14.90.so
313ae18000-313ae1c000 rw-p 00000000 00:00 0 
313b000000-313b002000 r-xp 00000000 08:01 786502                         /lib64/libdl-2.14.90.so
313b002000-313b202000 ---p 00002000 08:01 786502                         /lib64/libdl-2.14.90.so
313b202000-313b203000 r--p 00002000 08:01 786502                         /lib64/libdl-2.14.90.so
313b203000-313b204000 rw-p 00003000 08:01 786502                         /lib64/libdl-2.14.90.so
313b400000-313b407000 r-xp 00000000 08:01 786463                         /lib64/librt-2.14.90.so
313b407000-313b606000 ---p 00007000 08:01 786463                         /lib64/librt-2.14.90.so
313b606000-313b607000 r--p 00006000 08:01 786463                         /lib64/librt-2.14.90.so
313b607000-313b608000 rw-p 00007000 08:01 786463                         /lib64/librt-2.14.90.so
313b800000-313b815000 r-xp 00000000 08:01 788765                         /lib64/libgcc_s-4.6.3-20120306.so.1
313b815000-313ba14000 ---p 00015000 08:01 788765                         /lib64/libgcc_s-4.6.3-20120306.so.1
313ba14000-313ba15000 rw-p 00014000 08:01 788765                         /lib64/libgcc_s-4.6.3-20120306.so.1
313bc00000-313bc17000 r-xp 00000000 08:01 786474                         /lib64/libz.so.1.2.5
313bc17000-313be16000 ---p 00017000 08:01 786474                         /lib64/libz.so.1.2.5
313be16000-313be17000 rw-p 00016000 08:01 786474                         /lib64/libz.so.1.2.5
313ec00000-313ece8000 r-xp 00000000 08:01 150116                         /usr/lib64/libstdc++.so.6.0.16
313ece8000-313eee8000 ---p 000e8000 08:01 150116                         /usr/lib64/libstdc++.so.6.0.16
313eee8000-313eef0000 r--p 000e8000 08:01 150116                         /usr/lib64/libstdc++.so.6.0.16
313eef0000-313eef2000 rw-p 000f0000 08:01 150116                         /usr/lib64/libstdc++.so.6.0.16
313eef2000-313ef07000 rw-p 00000000 00:00 0 
3140400000-314043c000 r-xp 00000000 08:01 786583                         /lib64/libreadline.so.6.2
314043c000-314063b000 ---p 0003c000 08:01 786583                         /lib64/libreadline.so.6.2
314063b000-3140643000 rw-p 0003b000 08:01 786583                         /lib64/libreadline.so.6.2
3140643000-3140644000 rw-p 00000000 00:00 0 
3145000000-314500f000 r-xp 00000000 08:01 788834                         /lib64/libbz2.so.1.0.6
314500f000-314520e000 ---p 0000f000 08:01 788834                         /lib64/libbz2.so.1.0.6
314520e000-3145210000 rw-p 0000e000 08:01 788834                         /lib64/libbz2.so.1.0.6
3148c00000-3148c23000 r-xp 00000000 08:01 815621                         /lib64/libtinfo.so.5.9
3148c23000-3148e22000 ---p 00023000 08:01 815621                         /lib64/libtinfo.so.5.9
3148e22000-3148e26000 r--p 00022000 08:01 815621                         /lib64/libtinfo.so.5.9
3148e26000-3148e27000 rw-p 00026000 08:01 815621                         /lib64/libtinfo.so.5.9
3149200000-3149338000 r-xp 00000000 08:01 177515                         /usr/lib64/libicuuc.so.46.0
3149338000-3149538000 ---p 00138000 08:01 177515                         /usr/lib64/libicuuc.so.46.0
3149538000-3149547000 r--p 00138000 08:01 177515                         /usr/lib64/libicuuc.so.46.0
3149547000-3149548000 rw-p 00147000 08:01 177515                         /usr/lib64/libicuuc.so.46.0
3149548000-314954c000 rw-p 00000000 00:00 0 
314b600000-314b7b1000 r-xp 00000000 08:01 148922                         /usr/lib64/libicui18n.so.46.0
314b7b1000-314b9b1000 ---p 001b1000 08:01 148922                         /usr/lib64/libicui18n.so.46.0
314b9b1000-314b9bc000 r--p 001b1000 08:01 148922                         /usr/lib64/libicui18n.so.46.0
314b9bc000-314b9be000 rw-p 001bc000 08:01 148922                         /usr/lib64/libicui18n.so.46.0
314da00000-314e873000 r-xp 00000000 08:01 137354                         /usr/lib64/libicudata.so.46.0
314e873000-314ea72000 ---p 00e73000 08:01 137354                         /usr/lib64/libicudata.so.46.0
314ea72000-314ea73000 r--p 00e72000 08:01 137354                         /usr/lib64/libicudata.so.46.0
314ea73000-314ea74000 rw-p 00e73000 08:01 137354                         /usr/lib64/libicudata.so.46.0
3158200000-315820d000 r-xp 00000000 08:01 165367                         /usr/lib64/libgomp.so.1.0.0
315820d000-315840c000 ---p 0000d000 08:01 165367                         /usr/lib64/libgomp.so.1.0.0
315840c000-315840d000 rw-p 0000c000 08:01 165367                         /usr/lib64/libgomp.so.1.0.0
315d600000-315d63c000 r-xp 00000000 08:01 788840                         /lib64/libpcre.so.0.0.1
315d63c000-315d83b000 ---p 0003c000 08:01 788840                         /lib64/libpcre.so.0.0.1
315d83b000-315d83c000 r--p 0003b000 08:01 788840                         /lib64/libpcre.so.0.0.1
315d83c000-315d83d000 rw-p 0003c000 08:01 788840                         /lib64/libpcre.so.0.0.1
376b400000-376b42b000 r-xp 00000000 08:01 1062362                        /usr/lib64/R/lib/libRblas.so
376b42b000-376b62a000 ---p 0002b000 08:01 1062362                        /usr/lib64/R/lib/libRblas.so
376b62a000-376b62b000 r--p 0002a000 08:01 1062362                        /usr/lib64/R/lib/libRblas.so
376b62b000-376b62c000 rw-p 0002b000 08:01 1062362                        /usr/lib64/R/lib/libRblas.so
376b800000-376baa7000 r-xp 00000000 08:01 1062365                        /usr/lib64/R/lib/libR.so
376baa7000-376bca7000 ---p 002a7000 08:01 1062365                        /usr/lib64/R/lib/libR.so
376bca7000-376bcad000 r--p 002a7000 08:01 1062365                        /usr/lib64/R/lib/libR.so
376bcad000-376bcbd000 rw-p 002ad000 08:01 1062365                        /usr/lib64/R/lib/libR.so
376bcbd000-376bdac000 rw-p 00000000 00:00 0 
376be00000-376bf78000 r-xp 00000000 08:01 1062364                        /usr/lib64/R/lib/libRlapack.so
376bf78000-376c178000 ---p 00178000 08:01 1062364                        /usr/lib64/R/lib/libRlapack.so
376c178000-376c179000 r--p 00178000 08:01 1062364                        /usr/lib64/R/lib/libRlapack.so
376c179000-376c17a000 rw-p 00179000 08:01 1062364                        /usr/lib64/R/lib/libRlapack.so
376c200000-376c235000 r-xp 00000000 08:01 136624                         /usr/lib64/libquadmath.so.0.0.0
376c235000-376c434000 ---p 00035000 08:01 136624                         /usr/lib64/libquadmath.so.0.0.0
376c434000-376c435000 rw-p 00034000 08:01 136624                         /usr/lib64/libquadmath.so.0.0.0
376c600000-376c714000 r-xp 00000000 08:01 138203                         /usr/lib64/libgfortran.so.3.0.0
376c714000-376c913000 ---p 00114000 08:01 138203                         /usr/lib64/libgfortran.so.3.0.0
376c913000-376c915000 rw-p 00113000 08:01 138203                         /usr/lib64/libgfortran.so.3.0.0
376c915000-376c916000 rw-p 00000000 00:00 0 
7fd5ef184000-7fd5ef185000 r-xp 00000000 08:03 7609099                    /home/phoxis/Documents/Works/Programming/R/metiswrap.so
7fd5ef185000-7fd5ef385000 ---p 00001000 08:03 7609099                    /home/phoxis/Documents/Works/Programming/R/metiswrap.so
7fd5ef385000-7fd5ef386000 r--p 00001000 08:03 7609099                    /home/phoxis/Documents/Works/Programming/R/metiswrap.so
7fd5ef386000-7fd5ef387000 rw-p 00002000 08:03 7609099                    /home/phoxis/Documents/Works/Programming/R/metiswrap.so
7fd5ef387000-7fd5ef3ea000 r-xp 00000000 08:03 7610359                    /home/phoxis/Documents/Works/Programming/R/libmetis.so
7fd5ef3ea000-7fd5ef5e9000 ---p 00063000 08:03 7610359                    /home/phoxis/Documents/Works/Programming/R/libmetis.so
7fd5ef5e9000-7fd5ef5eb000 rw-p 00062000 08:03 7610359                    /home/phoxis/Documents/Works/Programming/R/libmetis.so
7fd5ef5eb000-7fd5ef5f9000 r-xp 00000000 08:03 7740125                    /home/phoxis/R/x86_64-redhat-linux-gnu-library/2.15/RANN/libs/RANN.so
7fd5ef5f9000-7fd5ef7f9000 ---p 0000e000 08:03 7740125                    /home/phoxis/R/x86_64-redhat-linux-gnu-library/2.15/RANN/libs/RANN.so
7fd5ef7f9000-7fd5ef7fa000 r--p 0000e000 08:03 7740125                    /home/phoxis/R/x86_64-redhat-linux-gnu-library/2.15/RANN/libs/RANN.so
7fd5ef7fa000-7fd5ef7fb000 rw-p 0000f000 08:03 7740125                    /home/phoxis/R/x86_64-redhat-linux-gnu-library/2.15/RANN/libs/RANN.so
7fd5ef7fb000-7fd5ef869000 r-xp 00000000 08:01 1203642                    /usr/lib64/R/library/stats/libs/stats.so
7fd5ef869000-7fd5efa68000 ---p 0006e000 08:01 1203642                    /usr/lib64/R/library/stats/libs/stats.so
7fd5efa68000-7fd5efa6a000 r--p 0006d000 08:01 1203642                    /usr/lib64/R/library/stats/libs/stats.so
7fd5efa6a000-7fd5efa6c000 rw-p 0006f000 08:01 1203642                    /usr/lib64/R/library/stats/libs/stats.so
7fd5efa6c000-7fd5efbda000 rw-p 00000000 00:00 0 
7fd5efbda000-7fd5efbfd000 r-xp 00000000 08:01 1077695                    /usr/lib64/R/library/grDevices/libs/grDevices.so
7fd5efbfd000-7fd5efdfc000 ---p 00023000 08:01 1077695                    /usr/lib64/R/library/grDevices/libs/grDevices.so
7fd5efdfc000-7fd5efdfd000 r--p 00022000 08:01 1077695                    /usr/lib64/R/library/grDevices/libs/grDevices.so
7fd5efdfd000-7fd5efdfe000 rw-p 00023000 08:01 1077695                    /usr/lib64/R/library/grDevices/libs/grDevices.so
7fd5eff2e000-7fd5f0165000 rw-p 00000000 00:00 0 
7fd5f0165000-7fd5f016c000 r-xp 00000000 08:01 1078260                    /usr/lib64/R/library/methods/libs/methods.so
7fd5f016c000-7fd5f036b000 ---p 00007000 08:01 1078260                    /usr/lib64/R/library/methods/libs/methods.so
7fd5f036b000-7fd5f036c000 r--p 00006000 08:01 1078260                    /usr/lib64/R/library/methods/libs/methods.so
7fd5f036c000-7fd5f036d000 rw-p 00007000 08:01 1078260                    /usr/lib64/R/library/methods/libs/methods.so
7fd5f036d000-7fd5f0402000 rw-p 00000000 00:00 0 
7fd5f0402000-7fd5f040e000 r-xp 00000000 08:01 789196                     /lib64/libnss_files-2.14.90.so
7fd5f040e000-7fd5f060d000 ---p 0000c000 08:01 789196                     /lib64/libnss_files-2.14.90.so
7fd5f060d000-7fd5f060e000 r--p 0000b000 08:01 789196                     /lib64/libnss_files-2.14.90.so
7fd5f060e000-7fd5f060f000 rw-p 0000c000 08:01 789196                     /lib64/libnss_files-2.14.90.so
7fd5f0640000-7fd5f06f1000 rw-p 00000000 00:00 0 
7fd5f06f3000-7fd5f089c000 rw-p 00000000 00:00 0 
7fd5f089c000-7fd5f6cbf000 r--p 00000000 08:01 157303                     /usr/lib/locale/locale-archive
7fd5f6cbf000-7fd5f6cc9000 rw-p 00000000 00:00 0 
7fd5f6ccc000-7fd5f6cf3000 rw-p 00000000 00:00 0 
7fd5f6cf3000-7fd5f6cfa000 r--s 00000000 08:01 139093                     /usr/lib64/gconv/gconv-modules.cache
7fd5f6cfa000-7fd5f6cfc000 rw-p 00000000 00:00 0 
7fff473da000-7fff47403000 rw-p 00000000 00:00 0                          [stack]
7fff474a2000-7fff474a3000 r-xp 00000000 00:00 0                          [vdso]
ffffffffff600000-ffffffffff601000 r-xp 00000000 00:00 0                  [vsyscall]

 *** caught segfault ***
address (nil), cause 'memory not mapped'

Valgrind 转储

partitioning : Initial Cut: 145

METIS_OK
partitioning : Initial Cut: 202

METIS_OK
partitioning : ==1410== Invalid read of size 4
==1410==    at 0xEFAA3E3: libmetis__CreateCoarseGraphNoMask (in /home/phoxis/Documents/Works/Programming/R/libmetis.so)
==1410==    by 0xEFAB5E8: libmetis__Match_SHEM (in /home/phoxis/Documents/Works/Programming/R/libmetis.so)
==1410==    by 0xEFACB84: libmetis__CoarsenGraph (in /home/phoxis/Documents/Works/Programming/R/libmetis.so)
==1410==    by 0xEFA39FD: libmetis__MultilevelBisect (in /home/phoxis/Documents/Works/Programming/R/libmetis.so)
==1410==    by 0xEFA43D0: libmetis__MlevelRecursiveBisection (in /home/phoxis/Documents/Works/Programming/R/libmetis.so)
==1410==    by 0xEFA4795: METIS_PartGraphRecursive (in /home/phoxis/Documents/Works/Programming/R/libmetis.so)
==1410==    by 0xF1BDD85: metis_wrap (metiswrap.c:45)
==1410==    by 0x376B8B148C: ??? (in /usr/lib64/R/lib/libR.so)
==1410==    by 0x376B8E1B08: Rf_eval (in /usr/lib64/R/lib/libR.so)
==1410==    by 0x376B8E478F: ??? (in /usr/lib64/R/lib/libR.so)
==1410==    by 0x376B8E192A: Rf_eval (in /usr/lib64/R/lib/libR.so)
==1410==    by 0x376B8E490F: ??? (in /usr/lib64/R/lib/libR.so)
==1410==  Address 0x397c7a00 is not stack'd, malloc'd or (recently) free'd
==1410== 

 *** caught segfault ***
address 0x397c7a00, cause 'memory not mapped'
==1410== 
==1410== Process terminating with default action of signal 11 (SIGSEGV)
==1410==  General Protection Fault
==1410==    at 0x313A505FD0: __snprintf_chk (in /lib64/libc-2.14.90.so)
==1410==    by 0x376B979097: Rf_EncodeReal (in /usr/lib64/R/lib/libR.so)
==1410==    by 0x376B97A317: Rf_EncodeElement (in /usr/lib64/R/lib/libR.so)
==1410==    by 0x376B89A50D: ??? (in /usr/lib64/R/lib/libR.so)
==1410==    by 0x376B89C19C: ??? (in /usr/lib64/R/lib/libR.so)
==1410==    by 0x376B89A21D: ??? (in /usr/lib64/R/lib/libR.so)
==1410==    by 0x376B89C59D: ??? (in /usr/lib64/R/lib/libR.so)
==1410==    by 0x376B8CC524: R_GetTraceback (in /usr/lib64/R/lib/libR.so)
==1410==    by 0x376B915A30: ??? (in /usr/lib64/R/lib/libR.so)
==1410==    by 0x313AC0F4FF: ??? (in /lib64/libpthread-2.14.90.so)
==1410==    by 0xEFAA3E2: libmetis__CreateCoarseGraphNoMask (in /home/phoxis/Documents/Works/Programming/R/libmetis.so)
==1410==    by 0xEFAB5E8: libmetis__Match_SHEM (in /home/phoxis/Documents/Works/Programming/R/libmetis.so)
==1410== 
==1410== HEAP SUMMARY:
==1410==     in use at exit: 28,683,682 bytes in 14,598 blocks
==1410==   total heap usage: 34,400 allocs, 19,802 frees, 50,987,649 bytes allocated
==1410== 
==1410== LEAK SUMMARY:
==1410==    definitely lost: 0 bytes in 0 blocks
==1410==    indirectly lost: 0 bytes in 0 blocks
==1410==      possibly lost: 0 bytes in 0 blocks
==1410==    still reachable: 28,683,682 bytes in 14,598 blocks
==1410==         suppressed: 0 bytes in 0 blocks
==1410== Rerun with --leak-check=full to see details of leaked memory
==1410== 
==1410== For counts of detected and suppressed errors, rerun with: -v
==1410== ERROR SUMMARY: 220 errors from 14 contexts (suppressed: 2 from 2)
Segmentation fault (core dumped)
4

0 回答 0