You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
If the mapper runs across a bad mapblock in the source map file (at least in the case of an sqlite map), it will eventually segfault. Here's an example backtrace, where the map in question is known to have a bad block at or near 0,+31000,0.
root@ks4006351:/home/minetest/minetestmapper# gdb --args /home/minetest/minetestmapper/minetestmapper --drawscale --geometry -5000:-7500+12000+15000 -i /home/minetest/.minetest/worlds/Vanilla_World/ -o /home/vanessa/www/vanessa/hobbies/minetest/worldmaps/Vanilla_World.png
GNU gdb (GDB) 7.4.1-debian
Copyright (C) 2012 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-linux-gnu".
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>...
Reading symbols from /home/minetest/minetestmapper/minetestmapper...done.
(gdb) run
Starting program: /home/minetest/minetestmapper/minetestmapper --drawscale --geometry -5000:-7500+12000+15000 -i /home/minetest/.minetest/worlds/Vanilla_World/ -o /home/vanessa/www/vanessa/hobbies/minetest/worldmaps/Vanilla_World.png
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
Program received signal SIGSEGV, Segmentation fault.
0x00007e1378eef4a2 in ?? () from /lib/x86_64-linux-gnu/libc.so.6
(gdb) bt full
#0 0x00007e1378eef4a2 in ?? () from /lib/x86_64-linux-gnu/libc.so.6
No symbol table info available.
#1 0x00007e13796b23a0 in char* std::string::_S_construct<char const*>(char const*, char const*, std::allocator<char> const&, std::forward_iterator_tag) ()
from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
No symbol table info available.
#2 0x00007e13796b249d in std::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(char const*, unsigned long, std::allocator<char> const&) () from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
No symbol table info available.
#3 0x000000000041f725 in TileGenerator::renderMap (this=0x7fffffffe750)
at /home/minetest/minetestmapper/TileGenerator.cpp:435
nodeId = 31520
nameLen = 23388
name = {static npos = <optimized out>,
_M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>},
_M_p = 0x6533bb8 "414457, [\"_hack_other_info\"] = \"return { [\\\"itemstring\\\"] = \\\"default:sapling 3\\\" }\" }"}}
i = 919
numMappings = 50265
pos = @0xa8d4820: {x = -1, y = 1937, z = 0}
dataOffset = 25614128
---Type <return> to continue, or q <return> to quit---
mapData = {static npos = <optimized out>,
_M_dataplus = {<std::allocator<unsigned char>> = {<__gnu_cxx::new_allocator<unsigned char>> = {<No data fields>}, <No data fields>},
_M_p = 0x6ec7f58 ""}}
mapMetadata = {static npos = <optimized out>,
_M_dataplus = {<std::allocator<unsigned char>> = {<__gnu_cxx::new_allocator<unsigned char>> = {<No data fields>}, <No data fields>},
_M_p = 0x466ea38 ""}}
data = 0x7e13741fd028 "\031\f\002\002x\234\355\301\061\001"
staticObjectCount = 28023
length = 25614370
version = 25 '\031'
decompressor = {
m_data = 0x7e13741fd028 "\031\f\002\002x\234\355\301\061\001",
m_seekPos = 52, m_size = 25614370}
allReaded = true
it = {_M_node = 0xa8d4810}
xPos = -1
blockStack = @0xb1d7ca8: {<std::_List_base<std::pair<BlockPos, std::basic_string<unsigned char, std::char_traits<unsigned char>, std::allocator<unsigned char> > >, std::allocator<std::pair<BlockPos, std::basic_string<unsigned char, std::char_traits<unsigned char>, std::allocator<unsigned char> > > > >> = {
_M_impl = {<std::allocator<std::_List_node<std::pair<BlockPos, std::---Type <return> to continue, or q <return> to quit---
basic_string<unsigned char, std::char_traits<unsigned char>, std::allocator<unsigned char> > > > >> = {<__gnu_cxx::new_allocator<std::_List_node<std::pair<BlockPos, std::basic_string<unsigned char, std::char_traits<unsigned char>, std::allocator<unsigned char> > > > >> = {<No data fields>}, <No data fields>},
_M_node = {_M_next = 0xa8d4810,
_M_prev = 0x722cf10}}}, <No data fields>}
position = {_M_node = 0x85e47e0}
zPos = 256
blocks = {_M_t = {
_M_impl = {<std::allocator<std::_Rb_tree_node<std::pair<short const, std::list<std::pair<BlockPos, std::basic_string<unsigned char, std::char_traits<unsigned char>, std::allocator<unsigned char> > >, std::allocator<std::pair<BlockPos, std::basic_string<unsigned char, std::char_traits<unsigned char>, std::allocator<unsigned char> > > > > > > >> = {<__gnu_cxx::new_allocator<std::_Rb_tree_node<std::pair<short const, std::list<std::pair<BlockPos, std::basic_string<unsigned char, std::char_traits<unsigned char>, std::allocator<unsigned char> > >, std::allocator<std::pair<BlockPos, std::basic_string<unsigned char, std::char_traits<unsigned char>, std::allocator<unsigned char> > > > > > > >> = {<No data fields>}, <No data fields>},
_M_key_compare = {<std::binary_function<short, short, bool>> = {<No data fields>}, <No data fields>}, _M_header = {_M_color = std::_S_red,
_M_parent = 0x8763960, _M_left = 0x2d23800,
_M_right = 0x3abbda0}, _M_node_count = 957}}}
---Type <return> to continue, or q <return> to quit---
zPosition = {_M_node = 0x3d49780}
zlist = {<std::_List_base<int, std::allocator<int> >> = {
_M_impl = {<std::allocator<std::_List_node<int> >> = {<__gnu_cxx::new_allocator<std::_List_node<int> >> = {<No data fields>}, <No data fields>},
_M_node = {_M_next = 0x39c6080,
_M_prev = 0x49da620}}}, <No data fields>}
#4 0x000000000041eb37 in TileGenerator::generate (this=0x7fffffffe750,
input=..., output=...)
at /home/minetest/minetestmapper/TileGenerator.cpp:251
input_path = {static npos = <optimized out>,
_M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>},
_M_p = 0x28688b8 "/home/minetest/.minetest/worlds/Vanilla_World/"}}
#5 0x000000000042a2a9 in main (argc=8, argv=0x7fffffffeaf8)
at /home/minetest/minetestmapper/mapper.cpp:156
generator = {m_bgColor = {r = 255 '\377', g = 255 '\377',
b = 255 '\377', a = 0 '\000'}, m_scaleColor = {r = 0 '\000',
g = 0 '\000', b = 0 '\000', a = 0 '\000'}, m_originColor = {
r = 255 '\377', g = 0 '\000', b = 0 '\000', a = 0 '\000'},
m_playerColor = {r = 255 '\377', g = 0 '\000', b = 0 '\000',
a = 0 '\000'}, m_drawOrigin = false, m_drawPlayers = false,
m_drawScale = true, m_drawAlpha = false, m_shading = true,
m_border = 40, m_backend = {static npos = <optimized out>,
---Type <return> to continue, or q <return> to quit---
_M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>}, _M_p = 0x2868768 "sqlite3"}},
m_db = 0x2868780, m_image = 0x4072e80, m_blockPixelAttributes = {
_vptr.PixelAttributes = 0x42d290, m_pixelAttributes = {0x33071e40,
0x330895d0, 0x330a0d60, 0x330b84f0, 0x330cfc80, 0x330e7410,
0x330feba0, 0x33116330, 0x3312dac0, 0x33145250, 0x3315c9e0,
0x33174170, 0x3318b900, 0x331a3090, 0x331ba820, 0x331d1fb0,
0x331e9740, 0x33200ed0}, m_width = 12017}, m_xMin = -313,
m_xMax = 437, m_zMin = -469, m_zMax = 468, m_yMin = -30000,
m_yMax = 30000, m_geomX = -313, m_geomY = -469, m_geomX2 = 437,
m_geomY2 = 468, m_mapWidth = 12016, m_mapHeight = 15008,
m_positions = {<std::_List_base<std::pair<int, int>, std::allocator<std::pair<int, int> > >> = {
_M_impl = {<std::allocator<std::_List_node<std::pair<int, int> > >> = {<__gnu_cxx::new_allocator<std::_List_node<std::pair<int, int> > >> = {<No data fields>}, <No data fields>}, _M_node = {_M_next = 0x9fd8ac0,
_M_prev = 0x7410f40}}}, <No data fields>}, m_nameMap = {
_M_t = {
_M_impl = {<std::allocator<std::_Rb_tree_node<std::pair<int const, std::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >> = {<__gnu_cxx::new_allocator<std::_Rb_tree_node<std::pair<int const, std::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >> = {<No data fields>}, <No data fields>},
---Type <return> to continue, or q <return> to quit---
_M_key_compare = {<std::binary_function<int, int, bool>> = {<No data fields>}, <No data fields>}, _M_header = {_M_color = std::_S_red,
_M_parent = 0x5421620, _M_left = 0x3c7da20,
_M_right = 0x55f6da0}, _M_node_count = 86}}}, m_colors = {
_M_t = {
_M_impl = {<std::allocator<std::_Rb_tree_node<std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> > const, ColorEntry> > >> = {<__gnu_cxx::new_allocator<std::_Rb_tree_node<std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> > const, ColorEntry> > >> = {<No data fields>}, <No data fields>},
_M_key_compare = {<std::binary_function<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool>> = {<No data fields>}, <No data fields>}, _M_header = {_M_color = std::_S_red, _M_parent = 0x286cd70,
_M_left = 0x286bbe0, _M_right = 0x289df40},
_M_node_count = 2019}}}, m_readedPixels = {
0 <repeats 16 times>}, m_unknownNodes = {_M_t = {
_M_impl = {<std::allocator<std::_Rb_tree_node<std::basic_string<char, std::char_traits<char>, std::allocator<char> > > >> = {<__gnu_cxx::new_allocator<std::_Rb_tree_node<std::basic_string<char, std::char_traits<char>, std::allocator<char> > > >> = {<No data fields>}, <No data fields>},
_M_key_compare = {<std::binary_function<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::basic_string<char, std::cha---Type <return> to continue, or q <return> to quit---
r_traits<char>, std::allocator<char> >, bool>> = {<No data fields>}, <No data fields>}, _M_header = {_M_color = std::_S_red, _M_parent = 0xa481960,
_M_left = 0x64c6ff0, _M_right = 0x4d47b60},
_M_node_count = 27}}}, m_blockAirId = -1, m_blockIgnoreId = -1}
option_index = 12
c = -1
long_options = {{name = 0x42d780 "help", has_arg = 0, flag = 0x0,
val = 104}, {name = 0x42d785 "input", has_arg = 1, flag = 0x0,
val = 105}, {name = 0x42d78b "output", has_arg = 1, flag = 0x0,
val = 111}, {name = 0x42d792 "bgcolor", has_arg = 1, flag = 0x0,
val = 98}, {name = 0x42d79a "scalecolor", has_arg = 1, flag = 0x0,
val = 115}, {name = 0x42d7a5 "origincolor", has_arg = 1,
flag = 0x0, val = 114}, {name = 0x42d7b1 "playercolor",
has_arg = 1, flag = 0x0, val = 112}, {
name = 0x42d7bd "draworigin", has_arg = 0, flag = 0x0, val = 82}, {
name = 0x42d7c8 "drawplayers", has_arg = 0, flag = 0x0, val = 80},
{name = 0x42d7d4 "drawscale", has_arg = 0, flag = 0x0, val = 83}, {
name = 0x42d7de "drawalpha", has_arg = 0, flag = 0x0, val = 101}, {
name = 0x42d7e8 "noshading", has_arg = 0, flag = 0x0, val = 72}, {
name = 0x42d7f2 "geometry", has_arg = 1, flag = 0x0, val = 103}, {
name = 0x42d7fb "min-y", has_arg = 1, flag = 0x0, val = 97}, {
name = 0x42d801 "max-y", has_arg = 1, flag = 0x0, val = 99}, {
name = 0x42d807 "backend", has_arg = 1, flag = 0x0, val = 100}}
---Type <return> to continue, or q <return> to quit---
input = {static npos = <optimized out>,
_M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>},
_M_p = 0x28ac1d8 "/home/minetest/.minetest/worlds/Vanilla_World/"}}
output = {static npos = <optimized out>,
_M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>},
_M_p = 0x2868848 "/home/vanessa/www/vanessa/hobbies/minetest/worldmaps/Vanilla_World.png"}}
The text was updated successfully, but these errors were encountered:
Title says it all :-)
If the mapper runs across a bad mapblock in the source map file (at least in the case of an sqlite map), it will eventually segfault. Here's an example backtrace, where the map in question is known to have a bad block at or near 0,+31000,0.
The text was updated successfully, but these errors were encountered: