gdb在运行maintenance info program-spaces命令时coredump
coredump时的信息:
(gdb) maintenance info program-spaces
*** Error in `gdb': free(): invalid pointer: 0x0000000003c6bcf0 ***
======= Backtrace: =========
/lib64/libc.so.6(+0x7d1fd)[0x7fc875c0d1fd]
gdb(find_pc_section+0x99)[0x605089]
gdb(lookup_minimal_symbol_by_pc_section+0x1d)[0x60898d]
gdb(find_pc_sect_symtab+0x29)[0x59eba9]
gdb(select_frame+0x71)[0x699a11]
gdb(get_selected_frame+0x39)[0x699a89]
gdb(get_current_arch+0x27)[0x5e5447]
gdb[0x52ba1e]
gdb(registry_clear_data+0x93)[0x6bea63]
gdb(registry_container_free_data+0xf)[0x6beadf]
gdb[0x6ba8b2]
gdb(prune_program_spaces+0x4c)[0x6ba99c]
gdb[0x6ba9de]
gdb(execute_command+0x2aa)[0x6901ba]
gdb[0x5d85d1]
gdb[0x5d8a8c]
/lib64/libreadline.so.6(rl_callback_read_char+0x8e)[0x7fc877b57c6e]
gdb[0x5d8639]
gdb[0x5d71f4]
gdb(gdb_do_one_event+0xa7)[0x5d7587]
gdb(start_event_loop+0x57)[0x5d77b7]
gdb[0x5d0623]
gdb(catch_errors+0x8a)[0x5cee0a]
gdb[0x5d12d6]
gdb(catch_errors+0x8a)[0x5cee0a]
gdb(gdb_main+0x24)[0x5d1f04]
gdb(main+0x3e)[0x4572ee]
/lib64/libc.so.6(__libc_start_main+0xf5)[0x7fc875bb1af5]
gdb[0x457331]
======= Memory map: ========
00400000-00a02000 r-xp 00000000 08:01 1969692 /usr/bin/gdb
00c01000-00c02000 r--p 00601000 08:01 1969692 /usr/bin/gdb
00c02000-00c19000 rw-p 00602000 08:01 1969692 /usr/bin/gdb
00c19000-00c3c000 rw-p 00000000 00:00 0
02aee000-04636000 rw-p 00000000 00:00 0 [heap]
7fc871e78000-7fc871e7f000 r-xp 00000000 08:01 1964030 /usr/lib64/libthread_db-1.0.so
7fc871e7f000-7fc87207e000 ---p 00007000 08:01 1964030 /usr/lib64/libthread_db-1.0.so
7fc87207e000-7fc87207f000 r--p 00006000 08:01 1964030 /usr/lib64/libthread_db-1.0.so
7fc87207f000-7fc872080000 rw-p 00007000 08:01 1964030 /usr/lib64/libthread_db-1.0.so
7fc872080000-7fc8722d7000 rw-p 00000000 00:00 0
7fc872327000-7fc8723a0000 r-xp 00000000 08:01 1998038 /usr/lib64/libfreeblpriv3.so
7fc8723a0000-7fc87259f000 ---p 00079000 08:01 1998038 /usr/lib64/libfreeblpriv3.so
7fc87259f000-7fc8725a1000 r--p 00078000 08:01 1998038 /usr/lib64/libfreeblpriv3.so
7fc8725a1000-7fc8725a2000 rw-p 0007a000 08:01 1998038 /usr/lib64/libfreeblpriv3.so
7fc8725a2000-7fc8725a6000 rw-p 00000000 00:00 0
7fc8725a6000-7fc872657000 r-xp 00000000 08:01 1964225 /usr/lib64/libsqlite3.so.0.8.6
7fc872657000-7fc872856000 ---p 000b1000 08:01 1964225 /usr/lib64/libsqlite3.so.0.8.6
7fc872856000-7fc872858000 r--p 000b0000 08:01 1964225 /usr/lib64/libsqlite3.so.0.8.6
7fc872858000-7fc87285b000 rw-p 000b2000 08:01 1964225 /usr/lib64/libsqlite3.so.0.8.6
7fc87285b000-7fc872897000 r-xp 00000000 08:01 1984568 /usr/lib64/libsoftokn3.so
7fc872897000-7fc872a96000 ---p 0003c000 08:01 1984568 /usr/lib64/libsoftokn3.so
7fc872a96000-7fc872a97000 r--p 0003b000 08:01 1984568 /usr/lib64/libsoftokn3.so
7fc872a97000-7fc872a98000 rw-p 0003c000 08:01 1984568 /usr/lib64/libsoftokn3.so
7fc872a98000-7fc872aa3000 r-xp 00000000 08:01 1964026 /usr/lib64/libnss_files-2.17.so
7fc872aa3000-7fc872ca2000 ---p 0000b000 08:01 1964026 /usr/lib64/libnss_files-2.17.so
7fc872ca2000-7fc872ca3000 r--p 0000a000 08:01 1964026 /usr/lib64/libnss_files-2.17.so
7fc872ca3000-7fc872ca4000 rw-p 0000b000 08:01 1964026 /usr/lib64/libnss_files-2.17.so
7fc872ca4000-7fc872cab000 r-xp 00000000 08:01 1964029 /usr/lib64/librt-2.17.so
7fc872cab000-7fc872eaa000 ---p 00007000 08:01 1964029 /usr/lib64/librt-2.17.so
7fc872eaa000-7fc872eab000 r--p 00006000 08:01 1964029 /usr/lib64/librt-2.17.so
7fc872eab000-7fc872eac000 rw-p 00007000 08:01 1964029 /usr/lib64/librt-2.17.so
7fc872eac000-7fc872eb0000 r-xp 00000000 08:01 1964476 /usr/lib64/libattr.so.1.1.0
7fc872eb0000-7fc8730af000 ---p 00004000 08:01 1964476 /usr/lib64/libattr.so.1.1.0
7fc8730af000-7fc8730b0000 r--p 00003000 08:01 1964476 /usr/lib64/libattr.so.1.1.0
7fc8730b0000-7fc8730b1000 rw-p 00004000 08:01 1964476 /usr/lib64/libattr.so.1.1.0
7fc8730b1000-7fc8730ea000 r-xp 00000000 08:01 2003551 /usr/lib64/libnspr4.so
7fc8730ea000-7fc8732ea000 ---p 00039000 08:01 2003551 /usr/lib64/libnspr4.so
7fc8732ea000-7fc8732eb000 r--p 00039000 08:01 2003551 /usr/lib64/libnspr4.so
7fc8732eb000-7fc8732ed000 rw-p 0003a000 08:01 2003551 /usr/lib64/libnspr4.so
7fc8732ed000-7fc8732ef000 rw-p 00000000 00:00 0
7fc8732ef000-7fc8732f2000 r-xp 00000000 08:01 2003553 /usr/lib64/libplds4.so
7fc8732f2000-7fc8734f1000 ---p 00003000 08:01 2003553 /usr/lib64/libplds4.so
7fc8734f1000-7fc8734f2000 r--p 00002000 08:01 2003553 /usr/lib64/libplds4.so
7fc8734f2000-7fc8734f3000 rw-p 00003000 08:01 2003553 /usr/lib64/libplds4.so
7fc8734f3000-7fc8734f7000 r-xp 00000000 08:01 2003552 /usr/lib64/libplc4.so
7fc8734f7000-7fc8736f6000 ---p 00004000 08:01 2003552 /usr/lib64/libplc4.so
7fc8736f6000-7fc8736f7000 r--p 00003000 08:01 2003552 /usr/lib64/libplc4.so
7fc8736f7000-7fc8736f8000 rw-p 00004000 08:01 2003552 /usr/lib64/libplc4.so
7fc8736f8000-7fc87371d000 r-xp 00000000 08:01 1971387 /usr/lib64/libnssutil3.so
7fc87371d000-7fc87391d000 ---p 00025000 08:01 1971387 /usr/lib64/libnssutil3.so
7fc87391d000-7fc873923000 r--p 00025000 08:01 1971387 /usr/lib64/libnssutil3.so
7fc873923000-7fc873924000 rw-p 0002b000 08:01 1971387 /usr/lib64/libnssutil3.so
7fc873924000-7fc873ad8000 r-xp 00000000 08:01 1964466 /usr/lib64/libdb-5.3.so
7fc873ad8000-7fc873cd8000 ---p 001b4000 08:01 1964466 /usr/lib64/libdb-5.3.so
7fc873cd8000-7fc873cdf000 r--p 001b4000 08:01 1964466 /usr/lib64/libdb-5.3.so
7fc873cdf000-7fc873ce2000 rw-p 001bb000 08:01 1964466 /usr/lib64/libdb-5.3.so
7fc873ce2000-7fc873d0e000 r-xp 00000000 08:01 1964523 /usr/lib64/liblua-5.1.so
7fc873d0e000-7fc873f0d000 ---p 0002c000 08:01 1964523 /usr/lib64/liblua-5.1.so
7fc873f0d000-7fc873f0f000 r--p 0002b000 08:01 1964523 /usr/lib64/liblua-5.1.so
7fc873f0f000-7fc873f10000 rw-p 0002d000 08:01 1964523 /usr/lib64/liblua-5.1.so
7fc873f10000-7fc873f17000 r-xp 00000000 08:01 1964490 /usr/lib64/libacl.so.1.1.0
7fc873f17000-7fc874117000 ---p 00007000 08:01 1964490 /usr/lib64/libacl.so.1.1.0
7fc874117000-7fc874118000 r--p 00007000 08:01 1964490 /usr/lib64/libacl.so.1.1.0
7fc874118000-7fc874119000 rw-p 00008000 08:01 1964490 /usr/lib64/libacl.so.1.1.0
7fc874119000-7fc87411d000 r-xp 00000000 08:01 1964479 /usr/lib64/libcap.so.2.22
7fc87411d000-7fc87431c000 ---p 00004000 08:01 1964479 /usr/lib64/libcap.so.2.22
7fc87431c000-7fc87431d000 r--p 00003000 08:01 1964479 /usr/lib64/libcap.so.2.22
7fc87431d000-7fc87431e000 rw-p 00004000 08:01 1964479 /usr/lib64/libcap.so.2.22
7fc87431e000-7fc874327000 r-xp 00000000 08:01 1964103 /usr/lib64/libpopt.so.0.0.0
7fc874327000-7fc874526000 ---p 00009000 08:01 1964103 /usr/lib64/libpopt.so.0.0.0
7fc874526000-7fc874527000 r--p 00008000 08:01 1964103 /usr/lib64/libpopt.so.0.0.0
7fc874527000-7fc874528000 rw-p 00009000 08:01 1964103 /usr/lib64/libpopt.so.0.0.0
7fc874528000-7fc87453d000 r-xp 00000000 08:01 1998086 /usr/lib64/libelf-0.160.so
7fc87453d000-7fc87473c000 ---p 00015000 08:01 1998086 /usr/lib64/libelf-0.160.so
7fc87473c000-7fc87473d000 r--p 00014000 08:01 1998086 /usr/lib64/libelf-0.160.so
7fc87473d000-7fc87473e000 rw-p 00015000 08:01 1998086 /usr/lib64/libelf-0.160.so
7fc87473e000-7fc87474d000 r-xp 00000000 08:01 1964150 /usr/lib64/libbz2.so.1.0.6
7fc87474d000-7fc87494c000 ---p 0000f000 08:01 1964150 /usr/lib64/libbz2.so.1.0.6
7fc87494c000-7fc87494d000 r--p 0000e000 08:01 1964150 /usr/lib64/libbz2.so.1.0.6
7fc87494d000-7fc87494e000 rw-p 0000f000 08:01 1964150 /usr/lib64/libbz2.so.1.0.6
7fc87494e000-7fc874a6c000 r-xp 00000000 08:01 1973518 /usr/lib64/libnss3.so
7fc874a6c000-7fc874c6b000 ---p 0011e000 08:01 1973518 /usr/lib64/libnss3.so
7fc874c6b000-7fc874c70000 r--p 0011d000 08:01 1973518 /usr/lib64/libnss3.so
7fc874c70000-7fc874c72000 rw-p 00122000 08:01 1973518 /usr/lib64/libnss3.so
7fc874c72000-7fc874c74000 rw-p 00000000 00:00 0
7fc874c74000-7fc874c9c000 r-xp 00000000 08:01 1984636 /usr/lib64/librpmio.so.3.2.0
7fc874c9c000-7fc874e9b000 ---p 00028000 08:01 1984636 /usr/lib64/librpmio.so.3.2.0
7fc874e9b000-7fc874e9d000 r--p 00027000 08:01 1984636 /usr/lib64/librpmio.so.3.2.0
7fc874e9d000-7fc874e9f000 rw-p 00029000 08:01 1984636 /usr/lib64/librpmio.so.3.2.0
7fc874e9f000-7fc874ea1000 rw-p 00000000 00:00 0
7fc874ea1000-7fc874f01000 r-xp 00000000 08:01 1967718 /usr/lib64/librpm.so.3.2.0
7fc874f01000-7fc875101000 ---p 00060000 08:01 1967718 /usr/lib64/librpm.so.3.2.0
7fc875101000-7fc875104000 r--p 00060000 08:01 1967718 /usr/lib64/librpm.so.3.2.0
7fc875104000-7fc875107000 rw-p 00063000 08:01 1967718 /usr/lib64/librpm.so.3.2.0
7fc875107000-7fc875108000 rw-p 00000000 00:00 0
7fc875108000-7fc87510b000 r-xp 00000000 08:01 691169 /usr/lib64/python2.7/lib-dynload/_heapq.so
7fc87510b000-7fc87530a000 ---p 00003000 08:01 691169 /usr/lib64/python2.7/lib-dynload/_heapq.so
7fc87530a000-7fc87530b000 r--p 00002000 08:01 691169 /usr/lib64/python2.7/lib-dynload/_heapq.so
7fc87530b000-7fc87530d000 rw-p 00003000 08:01 691169 /usr/lib64/python2.7/lib-dynload/_heapq.so
7fc87530d000-7fc875315000 r-xp 00000000 08:01 656224 /usr/lib64/python2.7/lib-dynload/operator.so
7fc875315000-7fc875515000 ---p 00008000 08:01 656224 /usr/lib64/python2.7/lib-dynload/operator.so
7fc875515000-7fc875516000 r--p 00008000 08:01 656224 /usr/lib64/python2.7/lib-dynload/operator.so
7fc875516000-7fc875518000 rw-p 00009000 08:01 656224 /usr/lib64/python2.7/lib-dynload/operator.so
7fc875518000-7fc87551e000 r-xp 00000000 08:01 656182 /usr/lib64/python2.7/lib-dynload/_collectionsmodule.so
7fc87551e000-7fc87571d000 ---p 00006000 08:01 656182 /usr/lib64/python2.7/lib-dynload/_collectionsmodule.so
7fc87571d000-7fc87571e000 r--p 00005000 08:01 656182 /usr/lib64/python2.7/lib-dynload/_collectionsmodule.so
7fc87571e000-7fc875720000 rw-p 00006000 08:01 656182 /usr/lib64/python2.7/lib-dynload/_collectionsmodule.so
7fc875720000-7fc87572a000 r-xp 00000000 08:01 656219 /usr/lib64/python2.7/lib-dynload/itertoolsmodule.so
7fc87572a000-7fc875929000 ---p 0000a000 08:01 656219 /usr/lib64/python2.7/lib-dynload/itertoolsmodule.so
7fc875929000-7fc87592a000 r--p 00009000 08:01 656219 /usr/lib64/python2.7/lib-dynload/itertoolsmodule.so
7fc87592a000-7fc87592f000 rw-p 0000a000 08:01 656219 /usr/lib64/python2.7/lib-dynload/itertoolsmodule.so
7fc87592f000-7fc87598e000 r-xp 00000000 08:01 1964054 /usr/lib64/libpcre.so.1.2.0
7fc87598e000-7fc875b8e000 ---p 0005f000 08:01 1964054 /usr/lib64/libpcre.so.1.2.0
7fc875b8e000-7fc875b8f000 r--p 0005f000 08:01 1964054 /usr/lib64/libpcre.so.1.2.0
7fc875b8f000-7fc875b90000 rw-p 00060000 08:01 1964054 /usr/lib64/libpcre.so.1.2.0
7fc875b90000-7fc875d46000 r-xp 00000000 08:01 1963631 /usr/lib64/libc-2.17.so
7fc875d46000-7fc875f46000 ---p 001b6000 08:01 1963631 /usr/lib64/libc-2.17.so
7fc875f46000-7fc875f4a000 r--p 001b6000 08:01 1963631 /usr/lib64/libc-2.17.so
7fc875f4a000-7fc875f4c000 rw-p 001ba000 08:01 1963631 /usr/lib64/libc-2.17.so
7fc875f4c000-7fc875f51000 rw-p 00000000 00:00 0
7fc875f51000-7fc875f66000 r-xp 00000000 08:01 1975512 /usr/lib64/libgcc_s-4.8.3-20140911.so.1
7fc875f66000-7fc876165000 ---p 00015000 08:01 1975512 /usr/lib64/libgcc_s-4.8.3-20140911.so.1
7fc876165000-7fc876166000 r--p 00014000 08:01 1975512 /usr/lib64/libgcc_s-4.8.3-20140911.so.1
7fc876166000-7fc876167000 rw-p 00015000 08:01 1975512 /usr/lib64/libgcc_s-4.8.3-20140911.so.1
7fc876167000-7fc87618b000 r-xp 00000000 08:01 1964052 /usr/lib64/liblzma.so.5.0.99
7fc87618b000-7fc87638a000 ---p 00024000 08:01 1964052 /usr/lib64/liblzma.so.5.0.99
7fc87638a000-7fc87638b000 r--p 00023000 08:01 1964052 /usr/lib64/liblzma.so.5.0.99
7fc87638b000-7fc87638c000 rw-p 00024000 08:01 1964052 /usr/lib64/liblzma.so.5.0.99
7fc87638c000-7fc8763b3000 r-xp 00000000 08:01 1964215 /usr/lib64/libexpat.so.1.6.0
7fc8763b3000-7fc8765b3000 ---p 00027000 08:01 1964215 /usr/lib64/libexpat.so.1.6.0
7fc8765b3000-7fc8765b5000 r--p 00027000 08:01 1964215 /usr/lib64/libexpat.so.1.6.0
7fc8765b5000-7fc8765b6000 rw-p 00029000 08:01 1964215 /usr/lib64/libexpat.so.1.6.0
7fc8765b6000-7fc87672e000 r-xp 00000000 08:01 1972073 /usr/lib64/libpython2.7.so.1.0
7fc87672e000-7fc87692e000 ---p 00178000 08:01 1972073 /usr/lib64/libpython2.7.so.1.0
7fc87692e000-7fc87692f000 r--p 00178000 08:01 1972073 /usr/lib64/libpython2.7.so.1.0
7fc87692f000-7fc87696d000 rw-p 00179000 08:01 1972073 /usr/lib64/libpython2.7.so.1.0
7fc87696d000-7fc87697c000 rw-p 00000000 00:00 0
7fc87697c000-7fc87697e000 r-xp 00000000 08:01 1963665 /usr/lib64/libutil-2.17.so
7fc87697e000-7fc876b7d000 ---p 00002000 08:01 1963665 /usr/lib64/libutil-2.17.so
7fc876b7d000-7fc876b7e000 r--p 00001000 08:01 1963665 /usr/lib64/libutil-2.17.so
7fc876b7e000-7fc876b7f000 rw-p 00002000 08:01 1963665 /usr/lib64/libutil-2.17.so
7fc876b7f000-7fc876b95000 r-xp 00000000 08:01 1963657 /usr/lib64/libpthread-2.17.so
7fc876b95000-7fc876d95000 ---p 00016000 08:01 1963657 /usr/lib64/libpthread-2.17.so
7fc876d95000-7fc876d96000 r--p 00016000 08:01 1963657 /usr/lib64/libpthread-2.17.so
7fc876d96000-7fc876d97000 rw-p 00017000 08:01 1963657 /usr/lib64/libpthread-2.17.so
7fc876d97000-7fc876d9b000 rw-p 00000000 00:00 0
7fc876d9b000-7fc876d9e000 r-xp 00000000 08:01 1964022 /usr/lib64/libdl-2.17.so
7fc876d9e000-7fc876f9d000 ---p 00003000 08:01 1964022 /usr/lib64/libdl-2.17.so
7fc876f9d000-7fc876f9e000 r--p 00002000 08:01 1964022 /usr/lib64/libdl-2.17.so
7fc876f9e000-7fc876f9f000 rw-p 00003000 08:01 1964022 /usr/lib64/libdl-2.17.so
7fc876f9f000-7fc8770a0000 r-xp 00000000 08:01 1964023 /usr/lib64/libm-2.17.so
7fc8770a0000-7fc87729f000 ---p 00101000 08:01 1964023 /usr/lib64/libm-2.17.so
7fc87729f000-7fc8772a0000 r--p 00100000 08:01 1964023 /usr/lib64/libm-2.17.so
7fc8772a0000-7fc8772a1000 rw-p 00101000 08:01 1964023 /usr/lib64/libm-2.17.so
7fc8772a1000-7fc8772b6000 r-xp 00000000 08:01 1964070 /usr/lib64/libz.so.1.2.7
7fc8772b6000-7fc8774b5000 ---p 00015000 08:01 1964070 /usr/lib64/libz.so.1.2.7
7fc8774b5000-7fc8774b6000 r--p 00014000 08:01 1964070 /usr/lib64/libz.so.1.2.7
7fc8774b6000-7fc8774b7000 rw-p 00015000 08:01 1964070 /usr/lib64/libz.so.1.2.7
7fc8774b7000-7fc8774dc000 r-xp 00000000 08:01 1963963 /usr/lib64/libtinfo.so.5.9
7fc8774dc000-7fc8776dc000 ---p 00025000 08:01 1963963 /usr/lib64/libtinfo.so.5.9
7fc8776dc000-7fc8776e0000 r--p 00025000 08:01 1963963 /usr/lib64/libtinfo.so.5.9
7fc8776e0000-7fc8776e1000 rw-p 00029000 08:01 1963963 /usr/lib64/libtinfo.so.5.9
7fc8776e1000-7fc877707000 r-xp 00000000 08:01 1963953 /usr/lib64/libncurses.so.5.9
7fc877707000-7fc877906000 ---p 00026000 08:01 1963953 /usr/lib64/libncurses.so.5.9
7fc877906000-7fc877907000 r--p 00025000 08:01 1963953 /usr/lib64/libncurses.so.5.9
7fc877907000-7fc877908000 rw-p 00026000 08:01 1963953 /usr/lib64/libncurses.so.5.9
7fc877908000-7fc877929000 r-xp 00000000 08:01 1964067 /usr/lib64/libselinux.so.1
7fc877929000-7fc877b29000 ---p 00021000 08:01 1964067 /usr/lib64/libselinux.so.1
7fc877b29000-7fc877b2a000 r--p 00021000 08:01 1964067 /usr/lib64/libselinux.so.1
7fc877b2a000-7fc877b2b000 rw-p 00022000 08:01 1964067 /usr/lib64/libselinux.so.1
7fc877b2b000-7fc877b2d000 rw-p 00000000 00:00 0
7fc877b2d000-7fc877b69000 r-xp 00000000 08:01 1964218 /usr/lib64/libreadline.so.6.2
7fc877b69000-7fc877d69000 ---p 0003c000 08:01 1964218 /usr/lib64/libreadline.so.6.2
7fc877d69000-7fc877d6b000 r--p 0003c000 08:01 1964218 /usr/lib64/libreadline.so.6.2
7fc877d6b000-7fc877d71000 rw-p 0003e000 08:01 1964218 /usr/lib64/libreadline.so.6.2
7fc877d71000-7fc877d73000 rw-p 00000000 00:00 0
7fc877d73000-7fc877d94000 r-xp 00000000 08:01 1963623 /usr/lib64/ld-2.17.so
7fc877da8000-7fc877e39000 rw-p 00000000 00:00 0
7fc877e41000-7fc877f80000 rw-p 00000000 00:00 0
7fc877f80000-7fc877f89000 r--p 00010000 08:01 786974 /home/xuzhina/code/xerces/sample/new_address
7fc877f89000-7fc877f91000 r--p 00008000 08:01 786974 /home/xuzhina/code/xerces/sample/new_address
7fc877f91000-7fc877f94000 rw-p 00000000 00:00 0
7fc877f94000-7fc877f95000 r--p 00021000 08:01 1963623 /usr/lib64/ld-2.17.so
7fc877f95000-7fc877f96000 rw-p 00022000 08:01 1963623 /usr/lib64/ld-2.17.so
7fc877f96000-7fc877f97000 rw-p 00000000 00:00 0
7ffc6acdc000-7ffc6acfd000 rw-p 00000000 00:00 0 [stack]
7ffc6adfe000-7ffc6ae00000 r-xp 00000000 00:00 0 [vdso]
ffffffffff600000-ffffffffff601000 r-xp 00000000 00:00 0 [vsyscall] Aborted (core dumped)
gdb的版本号:
(gdb) show version
GNU gdb (GDB) Red Hat Enterprise Linux 7.6.1-64.el7
Copyright (C) 2013 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law. Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-redhat-linux-gnu".
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>.
看一下堆栈:
[xuzhina@localhost sample]$ gdb /usr/bin/gdb core-gdb-4332-1436781341-6
GNU gdb (GDB) Red Hat Enterprise Linux 7.6.1-64.el7
Copyright (C) 2013 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law. Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-redhat-linux-gnu".
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>...
Reading symbols from /usr/bin/gdb...Reading symbols from /usr/bin/gdb...(no debugging symbols found)...done.
(no debugging symbols found)...done.
[New LWP 4332]
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib64/libthread_db.so.1".
Core was generated by `gdb new_address'.
Program terminated with signal 6, Aborted.
#0 0x00007fc875bc55d7 in raise () from /lib64/libc.so.6
Missing separate debuginfos, use: debuginfo-install gdb-7.6.1-64.el7.x86_64
(gdb) bt
#0 0x00007fc875bc55d7 in raise () from /lib64/libc.so.6
#1 0x00007fc875bc6cc8 in abort () from /lib64/libc.so.6
#2 0x00007fc875c05e07 in __libc_message () from /lib64/libc.so.6
#3 0x00007fc875c0d1fd in _int_free () from /lib64/libc.so.6
#4 0x0000000000605089 in find_pc_section ()
#5 0x000000000060898d in lookup_minimal_symbol_by_pc_section ()
#6 0x000000000059eba9 in find_pc_sect_symtab ()
#7 0x0000000000699a11 in select_frame ()
#8 0x0000000000699a89 in get_selected_frame ()
#9 0x00000000005e5447 in get_current_arch ()
#10 0x000000000052ba1e in py_free_pspace ()
#11 0x00000000006bea63 in registry_clear_data ()
#12 0x00000000006beadf in registry_container_free_data ()
#13 0x00000000006ba8b2 in release_program_space ()
#14 0x00000000006ba99c in prune_program_spaces ()
#15 0x00000000006ba9de in maintenance_info_program_spaces_command ()
#16 0x00000000006901ba in execute_command ()
#17 0x00000000005d85d1 in command_handler ()
#18 0x00000000005d8a8c in command_line_handler ()
#19 0x00007fc877b57c6e in rl_callback_read_char () from /lib64/libreadline.so.6
#20 0x00000000005d8639 in rl_callback_read_char_wrapper ()
#21 0x00000000005d71f4 in process_event ()
#22 0x00000000005d7587 in gdb_do_one_event ()
#23 0x00000000005d77b7 in start_event_loop ()
#24 0x00000000005d0623 in captured_command_loop ()
#25 0x00000000005cee0a in catch_errors ()
#26 0x00000000005d12d6 in captured_main ()
#27 0x00000000005cee0a in catch_errors ()
#28 0x00000000005d1f04 in gdb_main ()
#29 0x00000000004572ee in main ()
从堆栈能够看到。是在释放内存时出现故障,那么出现故障的地方应该是第4祯,find_pc_section函数里。
跳转到第4祯:
(gdb) frame 4
#4 0x0000000000605089 in find_pc_section ()
看一下汇编:
(gdb) disassemble
Dump of assembler code for function find_pc_section:
0x0000000000604ff0 <+0>: push %r15
0x0000000000604ff2 <+2>: push %r14
0x0000000000604ff4 <+4>: push %r13
0x0000000000604ff6 <+6>: push %r12
0x0000000000604ff8 <+8>: push %rbp
0x0000000000604ff9 <+9>: push %rbx
0x0000000000604ffa <+10>: sub $0x98,%rsp
0x0000000000605001 <+17>: mov %rdi,0x88(%rsp)
0x0000000000605009 <+25>: callq 0x5a8830 <find_pc_mapped_section>
0x000000000060500e <+30>: test %rax,%rax
0x0000000000605011 <+33>: je 0x605028 <find_pc_section+56>
0x0000000000605013 <+35>: add $0x98,%rsp
0x000000000060501a <+42>: pop %rbx
0x000000000060501b <+43>: pop %rbp
0x000000000060501c <+44>: pop %r12
0x000000000060501e <+46>: pop %r13
0x0000000000605020 <+48>: pop %r14
0x0000000000605022 <+50>: pop %r15
0x0000000000605024 <+52>: retq
0x0000000000605025 <+53>: nopl (%rax)
0x0000000000605028 <+56>: mov 0x635fb1(%rip),%rdi # 0xc3afe0 <current_program_space>
0x000000000060502f <+63>: callq 0x6043e0 <get_objfile_pspace_data>
0x0000000000605034 <+68>: mov 0x10(%rax),%edi
0x0000000000605037 <+71>: mov %rax,0x78(%rsp)
0x000000000060503c <+76>: test %edi,%edi
0x000000000060503e <+78>: jne 0x60505b <find_pc_section+107>
0x0000000000605040 <+80>: mov 0xc(%rax),%esi
0x0000000000605043 <+83>: test %esi,%esi
0x0000000000605045 <+85>: je 0x60513b <find_pc_section+331>
0x000000000060504b <+91>: mov 0x78(%rsp),%rax
0x0000000000605050 <+96>: mov 0x14(%rax),%ecx
0x0000000000605053 <+99>: test %ecx,%ecx
0x0000000000605055 <+101>: jne 0x60513b <find_pc_section+331>
0x000000000060505b <+107>: mov 0x635f7e(%rip),%rbx # 0xc3afe0 <current_program_space>
0x0000000000605062 <+114>: mov %rbx,%rdi
0x0000000000605065 <+117>: callq 0x6043e0 <get_objfile_pspace_data>
0x000000000060506a <+122>: mov 0x10(%rax),%edx
0x000000000060506d <+125>: test %edx,%edx
0x000000000060506f <+127>: jne 0x60507c <find_pc_section+140>
0x0000000000605071 <+129>: mov 0xc(%rax),%eax
0x0000000000605074 <+132>: test %eax,%eax
---Type <return> to continue, or q <return> to quit---
0x0000000000605076 <+134>: je 0x6055d5 <find_pc_section+1509>
0x000000000060507c <+140>: mov 0x78(%rsp),%rax
0x0000000000605081 <+145>: mov (%rax),%rdi
0x0000000000605084 <+148>: callq 0x6bd1b0 <xfree>
=> 0x0000000000605089 <+153>: mov 0x40(%rbx),%r8
0x000000000060508d <+157>: test %r8,%r8
0x0000000000605090 <+160>: je 0x60510f <find_pc_section+287>
0x0000000000605092 <+162>: mov 0x61bbd4(%rip),%edi # 0xc20c6c <overlay_debugging>
0x0000000000605098 <+168>: xor %ecx,%ecx
0x000000000060509a <+170>: nopw 0x0(%rax,%rax,1)
0x00000000006050a0 <+176>: mov 0x80d8(%r8),%rax
0x00000000006050a7 <+183>: mov 0x80e0(%r8),%r9
0x00000000006050ae <+190>: cmp %r9,%rax
0x00000000006050b1 <+193>: jae 0x6050f8 <find_pc_section+264>
0x00000000006050b3 <+195>: mov 0x48(%r8),%r10
0x00000000006050b7 <+199>: nopw 0x0(%rax,%rax,1)
0x00000000006050c0 <+208>: mov (%rax),%rdx
0x00000000006050c3 <+211>: test %edi,%edi
0x00000000006050c5 <+213>: mov 0x30(%rdx),%rsi
0x00000000006050c9 <+217>: je 0x6050e0 <find_pc_section+240>
0x00000000006050cb <+219>: test %rsi,%rsi
0x00000000006050ce <+222>: je 0x6050e0 <find_pc_section+240>
0x00000000006050d0 <+224>: cmp 0x28(%rdx),%rsi
0x00000000006050d4 <+228>: je 0x6050e0 <find_pc_section+240>
0x00000000006050d6 <+230>: testb $0x8,0x55(%r10)
0x00000000006050db <+235>: je 0x6050ef <find_pc_section+255>
0x00000000006050dd <+237>: nopl (%rax)
0x00000000006050e0 <+240>: mov 0x20(%rdx),%edx
0x00000000006050e3 <+243>: and $0x400,%edx
0x00000000006050e9 <+249>: cmp $0x1,%edx
0x00000000006050ec <+252>: adc $0x0,%ecx
0x00000000006050ef <+255>: add $0x18,%rax
0x00000000006050f3 <+259>: cmp %r9,%rax
0x00000000006050f6 <+262>: jb 0x6050c0 <find_pc_section+208>
0x00000000006050f8 <+264>: mov (%r8),%r8
0x00000000006050fb <+267>: test %r8,%r8
0x00000000006050fe <+270>: jne 0x6050a0 <find_pc_section+176>
0x0000000000605100 <+272>: test %ecx,%ecx
0x0000000000605102 <+274>: mov %ecx,0x84(%rsp)
0x0000000000605109 <+281>: jne 0x6051b0 <find_pc_section+448>
0x000000000060510f <+287>: mov 0x78(%rsp),%rax
0x0000000000605114 <+292>: xor %ebx,%ebx
coredump位置在这一段汇编:
0x000000000060507c <+140>: mov 0x78(%rsp),%rax
0x0000000000605081 <+145>: mov (%rax),%rdi
0x0000000000605084 <+148>: callq 0x6bd1b0 <xfree>
=> 0x0000000000605089 <+153>: mov 0x40(%rbx),%r8
看一下代码,下载gdb-7.6.1代码来看,在objfiles.c里有定义find_pc_section
struct obj_section *
find_pc_section (CORE_ADDR pc)
{
struct objfile_pspace_info *pspace_info;
struct obj_section *s, **sp; /* Check for mapped overlay section first. */
s = find_pc_mapped_section (pc);
if (s)
return s; pspace_info = get_objfile_pspace_data (current_program_space);
if (pspace_info->objfiles_changed_p != 0)
{
update_section_map (current_program_space,
&pspace_info->sections,
&pspace_info->num_sections); /* Don't need updates to section map until objfiles are added,
removed or relocated. */
pspace_info->objfiles_changed_p = 0;
} /* The C standard (ISO/IEC 9899:TC2) requires the BASE argument to
bsearch be non-NULL. */
if (pspace_info->sections == NULL)
{
gdb_assert (pspace_info->num_sections == 0);
return NULL;
} sp = (struct obj_section **) bsearch (&pc,
pspace_info->sections,
pspace_info->num_sections,
sizeof (*pspace_info->sections),
bsearch_cmp);
if (sp != NULL)
return *sp;
return NULL;
}
但似乎没看到哪里有调用xfree.
再看一下出问题的地址上面的汇编:
0x0000000000604ff0 <+0>: push %r15
0x0000000000604ff2 <+2>: push %r14
0x0000000000604ff4 <+4>: push %r13
0x0000000000604ff6 <+6>: push %r12
0x0000000000604ff8 <+8>: push %rbp
0x0000000000604ff9 <+9>: push %rbx
0x0000000000604ffa <+10>: sub $0x98,%rsp
0x0000000000605001 <+17>: mov %rdi,0x88(%rsp)
0x0000000000605009 <+25>: callq 0x5a8830 <find_pc_mapped_section>
0x000000000060500e <+30>: test %rax,%rax
0x0000000000605011 <+33>: je 0x605028 <find_pc_section+56>
0x0000000000605013 <+35>: add $0x98,%rsp
0x000000000060501a <+42>: pop %rbx
0x000000000060501b <+43>: pop %rbp
0x000000000060501c <+44>: pop %r12
0x000000000060501e <+46>: pop %r13
0x0000000000605020 <+48>: pop %r14
0x0000000000605022 <+50>: pop %r15
0x0000000000605024 <+52>: retq
0x0000000000605025 <+53>: nopl (%rax)
0x0000000000605028 <+56>: mov 0x635fb1(%rip),%rdi # 0xc3afe0 <current_program_space>
0x000000000060502f <+63>: callq 0x6043e0 <get_objfile_pspace_data>
0x0000000000605034 <+68>: mov 0x10(%rax),%edi
0x0000000000605037 <+71>: mov %rax,0x78(%rsp)
0x000000000060503c <+76>: test %edi,%edi
0x000000000060503e <+78>: jne 0x60505b <find_pc_section+107>
0x0000000000605040 <+80>: mov 0xc(%rax),%esi
0x0000000000605043 <+83>: test %esi,%esi
0x0000000000605045 <+85>: je 0x60513b <find_pc_section+331>
0x000000000060504b <+91>: mov 0x78(%rsp),%rax
0x0000000000605050 <+96>: mov 0x14(%rax),%ecx
0x0000000000605053 <+99>: test %ecx,%ecx
0x0000000000605055 <+101>: jne 0x60513b <find_pc_section+331>
0x000000000060505b <+107>: mov 0x635f7e(%rip),%rbx # 0xc3afe0 <current_program_space>
0x0000000000605062 <+114>: mov %rbx,%rdi
0x0000000000605065 <+117>: callq 0x6043e0 <get_objfile_pspace_data>
0x000000000060506a <+122>: mov 0x10(%rax),%edx
0x000000000060506d <+125>: test %edx,%edx
0x000000000060506f <+127>: jne 0x60507c <find_pc_section+140>
0x0000000000605071 <+129>: mov 0xc(%rax),%eax
0x0000000000605074 <+132>: test %eax,%eax
能够看到,在这几行汇编里:
0x0000000000605009 <+25>: callq 0x5a8830 <find_pc_mapped_section>
0x000000000060502f <+63>: callq 0x6043e0 <get_objfile_pspace_data>
0x0000000000605065 <+117>: callq 0x6043e0 <get_objfile_pspace_data>
依次调用了find_pc_mapped_section,get_objfile_pspace_data。get_objfile_pspace_data
再看一下第一次调用get_objfile_pspace_data的汇编片段:
0x000000000060502f <+63>: callq 0x6043e0 <get_objfile_pspace_data>
0x0000000000605034 <+68>: mov 0x10(%rax),%edi
0x0000000000605037 <+71>: mov %rax,0x78(%rsp)
0x000000000060503c <+76>: test %edi,%edi
0x000000000060503e <+78>: jne 0x60505b <find_pc_section+107>
0x0000000000605040 <+80>: mov 0xc(%rax),%esi
0x0000000000605043 <+83>: test %esi,%esi
0x0000000000605045 <+85>: je 0x60513b <find_pc_section+331>
0x000000000060504b <+91>: mov 0x78(%rsp),%rax
0x0000000000605050 <+96>: mov 0x14(%rax),%ecx
0x0000000000605053 <+99>: test %ecx,%ecx
0x0000000000605055 <+101>: jne 0x60513b <find_pc_section+331>
0x000000000060505b <+107>: mov 0x635f7e(%rip),%rbx # 0xc3afe0 <current_program_space>
可见,
=> 0x0000000000605089 <+153>: mov 0x40(%rbx),%r8
不是由
0x0000000000605045 <+85>: je 0x60513b <find_pc_section+331>
0x0000000000605055 <+101>: jne 0x60513b <find_pc_section+331>
跳转过去的。
那么。coredump地址应该是位于这一段代码里:
if (pspace_info->objfiles_changed_p != 0)
{
update_section_map (current_program_space,
&pspace_info->sections,
&pspace_info->num_sections); /* Don't need updates to section map until objfiles are added,
removed or relocated. */
pspace_info->objfiles_changed_p = 0;
}
考虑到编译器可能会进行代码优化,把一些仅仅调用一次的static函数内联。
看一下update_section_map(假设用source insight看,这个函数确实仅仅被find_pc_section调用。并且仅仅调用一次。
)
static void
update_section_map (struct program_space *pspace,
struct obj_section ***pmap, int *pmap_size)
{
int alloc_size, map_size, i;
struct obj_section *s, **map;
struct objfile *objfile; gdb_assert (get_objfile_pspace_data (pspace)->objfiles_changed_p != 0); map = *pmap;
xfree (map); alloc_size = 0;
ALL_PSPACE_OBJFILES (pspace, objfile)
ALL_OBJFILE_OSECTIONS (objfile, s)
if (insert_section_p (objfile->obfd, s->the_bfd_section))
alloc_size += 1; /* This happens on detach/attach (e.g. in gdb.base/attach.exp). */
if (alloc_size == 0)
{
*pmap = NULL;
*pmap_size = 0;
return;
} map = xmalloc (alloc_size * sizeof (*map)); i = 0;
ALL_PSPACE_OBJFILES (pspace, objfile)
ALL_OBJFILE_OSECTIONS (objfile, s)
if (insert_section_p (objfile->obfd, s->the_bfd_section))
map[i++] = s; qsort (map, alloc_size, sizeof (*map), qsort_cmp);
map_size = filter_debuginfo_sections(map, alloc_size);
map_size = filter_overlapping_sections(map, map_size); if (map_size < alloc_size)
/* Some sections were eliminated. Trim excess space. */
map = xrealloc (map, map_size * sizeof (*map));
else
gdb_assert (alloc_size == map_size); *pmap = map;
*pmap_size = map_size;
}
在这里。有这么一段代码:
map = *pmap;
xfree (map);
可见,coredump是发生在这一行代码。
那么,到底是什么原因导致coredump。
看一下coredump的那段汇编:
0x000000000060507c <+140>: mov 0x78(%rsp),%rax
0x0000000000605081 <+145>: mov (%rax),%rdi
0x0000000000605084 <+148>: callq 0x6bd1b0 <xfree>
=> 0x0000000000605089 <+153>: mov 0x40(%rbx),%r8
因为在x86 64-bit,非常多时候为了安全和高速,传參数是用rdi寄存器来传。但在这里。rdi,rax可能会变。所以看一下rsp的内容:
(gdb) x /gx $rsp+0x78
0x7ffc6acfb3d8: 0x0000000003019e60
(gdb) x /gx 0x0000000003019e60
0x3019e60: 0x0000000003c6bcf0
PS:用/gx是由于要查看64地址的原因。
能够看到,0x0000000003c6bcf0和
(gdb) maintenance info program-spaces
*** Error in `gdb': free(): invalid pointer: 0x0000000003c6bcf0 ***
的地址是一样的。
那么,先看一下0x0000000003c6bcf0的内容:
(gdb) x /gx 0x0000000003c6bcf0
0x3c6bcf0: 0x000000000003ca90
有内容。说明地址是有效啊。为什么无法释放呢?
依据最開始的coredump信息来看:
(gdb) maintenance info program-spaces
*** Error in `gdb': free(): invalid pointer: 0x0000000003c6bcf0 ***
它所信息打印的代码是在glibc里malloc.c的_int_free函数里的这一段:
if (__builtin_expect ((uintptr_t) p > (uintptr_t) -size, 0)
|| __builtin_expect (misaligned_chunk (p), 0))
{
errstr = "free(): invalid pointer";
在malloc.c里面,一个内存块的定义是这种:
struct malloc_chunk { INTERNAL_SIZE_T prev_size; /* Size of previous chunk (if free). */
INTERNAL_SIZE_T size; /* Size in bytes, including overhead. */ struct malloc_chunk* fd; /* double links -- used only if free. */
struct malloc_chunk* bk; /* Only used for large blocks: pointer to next larger size. */
struct malloc_chunk* fd_nextsize; /* double links -- used only if free. */
struct malloc_chunk* bk_nextsize;
};
当中INTERNAL_SIZE_T的定义例如以下:
#define INTERNAL_SIZE_T size_t
在x86 64位Linux系统里,size_t是8个字节。也就是说,0x0000000003c6bcf0地址向前-16,才是真实内存块地址。
(gdb) x /4gx 0x0000000003c6bcf0-16
0x3c6bce0: 0x0000000000000000 0x0000000000000000
0x3c6bcf0: 0x000000000003ca90 0x0000000000000020
可见,0x0000000003c6bcf0所在的内存块的头部已经被抹掉了。到底是哪里被抹掉。
由update_section_map可知,是pmap的问题。而pmap又是由&pspace_info->sections得来的。
也就是说,sections的内容有可能是因为pspace的上一个或上几个元素使用memset之类给覆盖了。
而pspace_info对象所属的结构体objfile_pspace_info仅仅定义在objfiles.c:
struct objfile_pspace_info
{
int objfiles_changed_p;
struct obj_section **sections;
int num_sections;
};
而唯一初始化这个结构体对象的函数是:
static struct objfile_pspace_info *
get_objfile_pspace_data (struct program_space *pspace)
{
struct objfile_pspace_info *info; info = program_space_data (pspace, objfiles_pspace_data);
if (info == NULL)
{
info = XZALLOC (struct objfile_pspace_info);
set_program_space_data (pspace, objfiles_pspace_data, info);
} return info;
}
中的
set_program_space_data (pspace, objfiles_pspace_data, info);
也就是说。sections的内容应该是在set_program_space_data里面分配。由它的分配和初始化。有可能会找到sections所指向的内存块的上一块内存块所使用的程序。
但因为在gdb的代码中。找不到set_program_space_data的定义。
因为问题比較难重现,对gdb代码也不熟悉,否则。能够在sections分配之后打数据断点。watchpoint来跟踪。
gdb在运行maintenance info program-spaces命令时coredump的更多相关文章
- gdb调试运行时的程序小技巧
使用gdb调试运行时的程序小技巧 标签: 未分类 gdb pstack | 发表时间:2012-10-15 04:32 | 作者:士豪 分享到: 出处:http://rdc.taobao.com/bl ...
- 执行Spark运行在yarn上的命令报错 spark-shell --master yarn-client
1.执行Spark运行在yarn上的命令报错 spark-shell --master yarn-client,错误如下所示: // :: ERROR SparkContext: Error init ...
- gdb调试运行程序带参数(调用动态链接库),debug过程记录
library多线程file1.gdb (运行程序名称) 例如 gdb cbenchmark 2.设置运行参数 set args -c 1 -n 1 -F ./libaliww.so -l 1 3.如 ...
- Jenkins服务使用 宿主机的docker、docker-compose (Jenkins 执行sudo命令时出现“sudo: no tty present and no askpass program specified”,以及 docker-compose command not found解决办法)
若要转载本文,请务必声明出处:https://www.cnblogs.com/zhongyuanzhao000/p/11681474.html 原因: 本人最近正在尝试CI/CD,所以就使用了 Jen ...
- 震惊,当我运行了这条Linux命令后,服务器竟然... (Linux中的删除命令)
震惊,当我运行了这条Linux命令后,服务器竟然... 0X00 写在前面 大家都听说过删库命令rm -rf /*,但是谁又真正实践过呢?但作为一个程序员,不看看这条命令执行后会发生什么,怎么能甘心呢 ...
- 解决Docker运行命令时提示"Got permission denied while trying to connect to the Docker daemon socket"类情况
Docker安装命令: 解决Docker运行命令时提示"Got permission denied while trying to connect to the Docker daemon ...
- 打开office时提示错误窗口“向程序发送命令时出现问题”的解决方案
今天同事问了我一件很怪异的事情,说她的office打不开了,如打开word或excel时,突然出现错误提示错误窗口"向程序发送命令时出现问题",分析原因才知道她安装了 AVG pc ...
- excel2003出现“向程序发送命令时出现错误”解决方法
电脑已经预装了office2010,因为想要学习 <Excel 图标之道>,安装了Excel2003,刚刚安装好,打开出现“向程序发送命令时出现错误”,虽然点击确定就可以用了,可总是觉得不 ...
- cmd中用PING命令时,出现'Ping' 不是内部或外部命令 解决方案
在cmd中用PING命令时,出现'Ping' 不是内部或外部命令,也不是可运行的程序或批处理文件.先了解一下内容:1.可执行文件.命令文件和批处理文件以.exe或者.com或者.bat为扩展名的文件分 ...
随机推荐
- Storm的本地运行模式示例
以word count为例,本地化运行模式(不需要安装zookeeper.storm集群),maven工程, pom.xml文件如下: <project xmlns="http://m ...
- CXF之一 基础理论介绍
WebService介绍 WebService让一个程序可以透明地调用互联网程序,不用管具体的实现细节.只要WebService公开了服务接口,远程客户端就可以调用服务.WebService是基于 ...
- C++ 使用Htmlcxx解析Html内容(VS编译库文件)
1.下载Htmlcxx,http://sourceforge.net/projects/htmlcxx/ 2.解压htmlcxx-0.85.tar.gz 3.打开htmlcxx.vcproj,注意是h ...
- spoj 839 Optimal Marks(二进制位,最小割)
[题目链接] http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=17875 [题意] 给定一个图,图的权定义为边的两端点相抑或值的 ...
- fedora20安装hadoop-2.5.1
(博客园-番茄酱原创) 首先感谢作者lxdhdgss,他的博文直接帮助了我如何安装hadoop,下面是他的博文修改版,用于安装在fedora20上面的,jdk1.8版本. 到hadoop官网去copy ...
- 【恒天云技术分享系列10】OpenStack块存储技术
原文:http://www.hengtianyun.com/download-show-id-101.html 块存储,简单来说就是提供了块设备存储的接口.用户需要把块存储卷附加到虚拟机(或者裸机)上 ...
- Android JNI之调用JAVA方法的返回类型签名
从http://blog.csdn.net/lonelyroamer/article/details/7932787截取的 如何签名: 下面看看Sign签名如何写,来表示要取得的属性或方法的类型. 1 ...
- 搭建Titanium开发环境
轻松制作 App 再也不是梦! Titanium Mobile 让你能够使用你所熟悉的 web 技术,制作出如同使用Objective-C 或 Java 写出的 Native App. 除了有多达三百 ...
- 第二百六十六天 how can I 坚持
有些小郁闷,上班没事干,技术.要买房,还要结婚,买了房哪还有彩礼钱,还得借钱,愁人. 该咋办,毕梦琪. 哎.今天还和程秀通说好的去看房呢,整天犹豫不定的.烦. 今天平安夜啊.吃了个苹果,一生平平安安, ...
- 第二百五十八天 how can I 坚持
装虚拟机了.CentOs,32位,这电脑装4台能不能带起来啊. 早上,流鼻血了,不知道咋回事.太干了... 明天得早起会,得利索着点,不能托托拉拉的. 还有,今天又忘带钥匙了.悲剧. 睡觉.hadoo ...