Axel Beckert hat am Sat 12. Feb, 04:34 (+0100) geschrieben: > Package: apt > Version: 0.8.11 > Severity: important > > In Sid on the sparc and powerpc architectures I can no more update the > package lists as apt-get update (as well as aptitude update and aptitude > -u) fail with the following error messages. Me (powerpc) has the same problem. The problem is that in rred.cc:258 an incomplete object dyn is created, due to _error->PendingError() in contrib/mmap.cc:223 returns true. The object has the attribute Base=0 which is feed to mmap in contrib/mmap.cc:270 on object destruction. This call causes the segfault. I don't know if Base == 0 is a valid state for a DynamicMMap object and the destructor has to check this value or if there's something else rotten and Base == 0 signals a deeper broken state. More stuff after further research: Executing _GetErrorObj()->DumpErrors() yields this message: E: Couldn't make mmap of 2393964544 bytes - mmap (12: Cannot allocate memory) The last 4 bytes of the patch are 0x8eb10000 == 2393964544: % hd /var/lib/apt/lists/ftp.de.debian.org_debian_dists_unstable_main_source_Sources.ed |tail 00003800 10 35 1d 08 f9 c6 18 36 cd 29 1f 6a 15 be 45 c6 |.5.....6.).j..E.| 00003810 8d 01 50 c8 34 7a a7 a0 6c 02 b8 50 18 65 d9 73 |..P.4z..l..P.e.s| 00003820 37 50 ad 34 e7 68 7f 7c 7d 0a 18 51 52 11 75 ea |7P.4.h.|}..QR.u.| 00003830 29 19 8c 31 64 14 43 f2 4a 00 94 2b 9e 78 09 f4 |)..1d.C.J..+.x..| 00003840 1a d4 0c ea d3 c1 6e 5d 07 17 b4 25 68 40 64 0d |......n]...%h@d.| 00003850 8a f4 86 7a 52 32 7b c7 10 07 de c5 50 df b1 a9 |...zR2{.....P...| 00003860 ec 5c 1a c7 70 07 28 ad 9b 47 41 2b b7 71 ca 81 |.\..p.(..GA+.q..| 00003870 1c 58 c5 af 7a 6e 48 12 fe 0b 11 38 e6 a9 8e b1 |.X..znH....8....| 00003880 00 00 |..| 00003882 But % zcat /var/lib/apt/lists/ftp.de.debian.org_debian_dists_unstable_main_source_Sources.ed |wc -c 45454 printf \%x\\n 45454 b18e Hence, you have to do some edianess adoption 45454 == 0x0000b18e != 0x8eb10000 == 2393964544 Here's a backtrace when the SIGSEG happend: #0 munmap () at ../sysdeps/unix/syscall-template.S:83 No locals. #1 0x0fe51cb8 in DynamicMMap::~DynamicMMap (this=0xbf9c8354, __in_chrg=<value optimized out>) at contrib/mmap.cc:270 EndOfFile = 273999192 #2 0x10002fdc in RredMethod::patchMMap (this=0xbf9c872c, Patch=..., From=..., out_file=..., hash=0xbf9c8520) at rred.cc:258 mapSize = 2393964544 dyn = {<MMap> = {_vptr.MMap = 0xffe7a28, Flags = 9, iSize = 0, Base = 0x0, SyncToFd = 0x0}, Fd = 0x0, WorkSpace = 2393964544, GrowFactor = 0, Limit = 0, Pools = 0xbf9c85e8, PoolCount = 4146} ed_cmds = {_vptr.MMap = 0xffe7a38, Flags = 9, iSize = 0, Base = 0x0, SyncToFd = 0x0} commands = 0xfdddb00 command_alloc = 3214705392 begin = 0x20000422 "" i = 0 iov_size = 0 amount = 0 line = 0 in_file = warning: can't find linker symbol for virtual table for `MMap' value {_vptr.MMap = 0x4800ed6c, Flags = 266128560, iSize = 3214705456, Base = 0xbf9c8350, SyncToFd = 0xfe559ac} input = 0x0 input_end = 0x0 remaining = 0 cmd = 0x0 command_count = 0 end = 0x0 ed_end = 0x0 iov = 0x0 #3 0x10003f64 in RredMethod::Fetch (this=0xbf9c872c, Itm=0x1054e518) at rred.cc:487 Path = {static npos = <optimized out>, _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>}, _M_p = 0x1054e91c ""}} To = {_vptr.FileFd = 0x100174b8, iFd = 5, Flags = 21, FileName = {static npos = <optimized out>, _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>}, _M_p = 0x1054e824 ""}}, TemporaryFileName = {static npos = <optimized out>, _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>}, _M_p = 0x1054c454 ""}}, gz = 0x0} Hash = {MD5 = {Buf = {1732584193, 4023233417, 2562383102, 271733878}, Bytes = "\000\000\000\000\000\000\000", In = "\263\205\r:\000\000\000\001H\003` \000\000\000\001\000\000\000\000H\003wp\277\234\206\030\017\336@\357H\002\037\360\277\234\205`\277\234\206\020H\000\264 \000\000\000\001\000\000\000\000\000\000\000\001H\003` ", Done = false}, SHA1 = {Buffer = "\017\233\242<H\003m`H\002\037\360\277\234\205\220\277\234\206@H\000\264 \000\000\000\001\000\000\000\000\000\000\000\001H\003` \377\377\377\377\000\000\000\000\017ܴ@H\003` \017\262\350x\017\262\350x", State = "gE#\001\357ͫ\211\230\272\334\376\020\062Tv\303\322\341", <incomplete sequence \360>, Count = "\000\000\000\000\000\000\000", Done = false}, SHA256 = {Sum = {count = {0, 0}, state = {1779033703, 3144134277, 1013904242, 2773480762, 1359893119, 2600822924, 528734635, 1541459225}, buf = '\000' <repeats 127 times>}, Done = false}} TimeBuf = {actime = 0, modtime = 0} Get = {Access = {static npos = <optimized out>, _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>}, _M_p = 0x1054e8a4 ""}}, User = {static npos = <optimized out>, _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>}, _M_p = 0xfd6813c ""}}, Password = {static npos = <optimized out>, _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>}, _M_p = 0xfd6813c ""}}, Host = {static npos = <optimized out>, _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>}, _M_p = 0xfd6813c ""}}, Path = {static npos = <optimized out>, _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>}, _M_p = 0x1054e8bc ""}}, Port = 0} From = {_vptr.FileFd = 0x100174b8, iFd = 3, Flags = 1, FileName = {static npos = <optimized out>, _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>}, _M_p = 0x1054e91c ""}}, TemporaryFileName = {static npos = <optimized out>, _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>}, _M_p = 0xfd6813c ""}}, gz = 0x0} Patch = {_vptr.FileFd = 0x100174b8, iFd = 4, Flags = 1, FileName = {static npos = <optimized out>, _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>}, _M_p = 0x1054e97c ""}}, TemporaryFileName = {static npos = <optimized out>, _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>}, _M_p = 0xfd6813c ""}}, gz = 0x1054ea38} BufBase = {st_dev = 5188744839348686138, __pad1 = 49052, st_ino = 1208004652, st_mode = 1208180768, st_nlink = 0, st_uid = 0, st_gid = 1, st_rdev = 5653385148272, __pad2 = 18435, st_size = 266223855, st_blksize = 261876284, st_blocks = 266114544, st_atim = {tv_sec = 1, tv_nsec = 1208004652}, st_mtim = {tv_sec = 6, tv_nsec = 0}, st_ctim = {tv_sec = 0, tv_nsec = 1}, __unused4 = 681, __unused5 = 0} Res = {MD5Sum = {static npos = <optimized out>, _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>}, _M_p = 0xfd6813c ""}}, SHA1Sum = {static npos = <optimized out>, _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>}, _M_p = 0xfd6813c ""}}, SHA256Sum = {static npos = <optimized out>, _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>}, _M_p = 0xfd6813c ""}}, GPGVOutput = {<std::_Vector_base<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > > >> = {_M_impl = {<std::allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >> = {<__gnu_cxx::new_allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >> = {<No data fields>}, <No data fields>}, _M_start = 0x0, _M_finish = 0x0, _M_end_of_storage = 0x0}}, <No data fields>}, LastModified = 0, IMSHit = false, Filename = {static npos = <optimized out>, _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>}, _M_p = 0x1054e824 ""}}, Size = 0, ResumePoint = 0} result = 1208098800 BufPatch = {st_dev = 13807057033437656985, __pad1 = 18434, st_ino = 3214705792, st_mode = 3214705968, st_nlink = 1208005664, st_uid = 1, st_gid = 0, st_rdev = 5503151456, __pad2 = 65535, st_size = 0, st_blksize = -1080261424, st_blocks = 1208184160, st_atim = {tv_sec = -1080261416, tv_nsec = -1866355779}, st_mtim = {tv_sec = -1080261424, tv_nsec = 1208004652}, st_ctim = {tv_sec = 1208180768, tv_nsec = 0}, __unused4 = 10, __unused5 = 3214706048} #4 0x0fecbd28 in pkgAcqMethod::Run (this=0xbf9c872c, Single=false) at acquire-method.cc:395 Tmp = 0x1054e518 I = 0xbf9c873c Message = {static npos = <optimized out>, _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>}, _M_p = 0x1054a554 ""}} End = 0x1054a557 "" Number = 600 #5 0x1000463c in main (argc=1, argv=0xbf9c89d4) at rred.cc:568 Mth = {<pkgAcqMethod> = {_vptr.pkgAcqMethod = 0x100064e0, Messages = {<std::_Vector_base<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > > >> = {_M_impl = {<std::allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >> = {<__gnu_cxx::new_allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >> = {<No data fields>}, <No data fields>}, _M_start = 0x1054a640, _M_finish = 0x1054a640, _M_end_of_storage = 0x1054a648}}, <No data fields>}, Queue = 0x1054e518, QueueBack = 0x1054e518, FailReason = {static npos = <optimized out>, _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>}, _M_p = 0xfd6813c ""}}, UsedMirror = {static npos = <optimized out>, _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>}, _M_p = 0xfd6813c ""}}, IP = {static npos = <optimized out>, _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>}, _M_p = 0xfd6813c ""}}}, Debug = false, static BUF_SIZE = 1024} And this was my gdb session: % gdb /usr/lib/apt/methods/rred.orig GNU gdb (GDB) 7.2-debian Copyright (C) 2010 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 "powerpc-linux-gnu". For bug reporting instructions, please see: <http://www.gnu.org/software/gdb/bugs/>... Reading symbols from /usr/lib/apt/methods/rred.orig...done. (gdb) target re record record-core remote (gdb) target remote To open a remote debug connection, you need to specify what serial device is attached to the remote system (e.g. /dev/ttyS0, /dev/ttya, COM1, etc.). (gdb) target remote localhost:4432 localhost:4432: Die Wartezeit für die Verbindung ist abgelaufen. (gdb) target remote localhost:4432 localhost:4432: Die Wartezeit für die Verbindung ist abgelaufen. (gdb) set remotetimeout 120 (gdb) target remote localhost:4432 localhost:4432: Die Wartezeit für die Verbindung ist abgelaufen. (gdb) set remotetimeout 240 (gdb) target remote localhost:4432 Remote debugging using localhost:4432 Reading symbols from /lib/ld.so.1...Reading symbols from /usr/lib/debug/lib/ld-2.11.2.so...done. done. Loaded symbols for /lib/ld.so.1 _start () at ../sysdeps/powerpc/powerpc32/dl-start.S:33 33 ../sysdeps/powerpc/powerpc32/dl-start.S: Datei oder Verzeichnis nicht gefunden. in ../sysdeps/powerpc/powerpc32/dl-start.S (gdb) b rred.cc:258 Breakpoint 1 at 0x10002f54: file rred.cc, line 258. (gdb) cont Continuing. Remote connection closed (gdb) bt No stack. (gdb) target remote localhost:4432 Remote debugging using localhost:4432 Reading symbols from /lib/ld.so.1...Reading symbols from /usr/lib/debug/lib/ld-2.11.2.so...done. done. Loaded symbols for /lib/ld.so.1 _start () at ../sysdeps/powerpc/powerpc32/dl-start.S:33 33 ../sysdeps/powerpc/powerpc32/dl-start.S: Datei oder Verzeichnis nicht gefunden. in ../sysdeps/powerpc/powerpc32/dl-start.S (gdb) b rred.cc:258 Note: breakpoint 1 also set at pc 0x10002f54. Breakpoint 2 at 0x10002f54: file rred.cc, line 258. (gdb) cont Continuing. Breakpoint 1, RredMethod::patchMMap (this=0xbf9c872c, Patch=..., From=..., out_file=..., hash=0xbf9c8520) at rred.cc:258 258 DynamicMMap dyn(0, mapSize, 0); (gdb) bt #0 RredMethod::patchMMap (this=0xbf9c872c, Patch=..., From=..., out_file=..., hash=0xbf9c8520) at rred.cc:258 #1 0x10003f64 in RredMethod::Fetch (this=0xbf9c872c, Itm=0x1054e518) at rred.cc:487 #2 0x0fecbd28 in pkgAcqMethod::Run (this=0xbf9c872c, Single=false) at acquire-method.cc:395 #3 0x1000463c in main (argc=1, argv=0xbf9c89d4) at rred.cc:568 (gdb) bt full #0 RredMethod::patchMMap (this=0xbf9c872c, Patch=..., From=..., out_file=..., hash=0xbf9c8520) at rred.cc:258 mapSize = 2393964544 dyn = warning: can't find linker symbol for virtual table for `DynamicMMap' value {<MMap> = {_vptr.MMap = 0x48015860, Flags = 1073742882, iSize = 120, Base = 0xbf9c85e8, SyncToFd = 0x14}, Fd = 0x20000422, WorkSpace = 0, GrowFactor = 3214705552, Limit = 33607730, Pools = 0xbf9c85e8, PoolCount = 4146} ed_cmds = {_vptr.MMap = 0xffe7a38, Flags = 4, iSize = 2393964544, Base = 0xffffffff, SyncToFd = 0x0} commands = 0xfdddb00 command_alloc = 3214705392 begin = 0x20000422 <Address 0x20000422 out of bounds> i = 0 iov_size = 0 amount = 0 line = 0 in_file = warning: can't find linker symbol for virtual table for `MMap' value {_vptr.MMap = 0x4800ed6c, Flags = 266128560, iSize = 3214705456, Base = 0xbf9c8350, SyncToFd = 0xfe559ac} input = 0x0 input_end = 0x0 remaining = 0 cmd = 0x0 command_count = 0 end = 0x0 ed_end = 0x0 iov = 0x0 #1 0x10003f64 in RredMethod::Fetch (this=0xbf9c872c, Itm=0x1054e518) at rred.cc:487 Path = {static npos = <optimized out>, _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>}, _M_p = 0x1054e91c "/var/lib/apt/lists/ftp.de.debian.org_debian_dists_unstable_main_source_Sources"}} To = {_vptr.FileFd = 0x100174b8, iFd = 5, Flags = 21, FileName = {static npos = <optimized out>, _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>}, _M_p = 0x1054e824 "/var/lib/apt/lists/partial/ftp.de.debian.org_debian_dists_unstable_main_source_Sources.diff_2011-02-11-2016.59"}}, TemporaryFileName = {static npos = <optimized out>, _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>}, _M_p = 0x1054c454 "/var/lib/apt/lists/partial/ftp.de.debian.org_debian_dists_unstable_main_source_Sources.diff_2011-02-11-2016.59.zmerXv"}}, gz = 0x0} Hash = {MD5 = {Buf = {1732584193, 4023233417, 2562383102, 271733878}, Bytes = "\000\000\000\000\000\000\000", ---Type <return> to continue, or q <return> to quit--- In = "\263\205\r:\000\000\000\001H\003` \000\000\000\001\000\000\000\000H\003wp\277\234\206\030\017\336@\357H\002\037\360\277\234\205`\277\234\206\020H\000\264 \000\000\000\001\000\000\000\000\000\000\000\001H\003` ", Done = false}, SHA1 = { Buffer = "\017\233\242<H\003m`H\002\037\360\277\234\205\220\277\234\206@H\000\264 \000\000\000\001\000\000\000\000\000\000\000\001H\003` \377\377\377\377\000\000\000\000\017ܴ@H\003` \017\262\350x\017\262\350x", State = "gE#\001\357ͫ\211\230\272\334\376\020\062Tv\303\322\341", <incomplete sequence \360>, Count = "\000\000\000\000\000\000\000", Done = false}, SHA256 = {Sum = {count = {0, 0}, state = { 1779033703, 3144134277, 1013904242, 2773480762, 1359893119, 2600822924, 528734635, 1541459225}, buf = '\000' <repeats 127 times>}, Done = false}} TimeBuf = {actime = 0, modtime = 0} Get = {Access = {static npos = <optimized out>, _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>}, _M_p = 0x1054e8a4 "rred"}}, User = {static npos = <optimized out>, _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>}, _M_p = 0xfd6813c ""}}, Password = {static npos = <optimized out>, _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>}, _M_p = 0xfd6813c ""}}, Host = {static npos = <optimized out>, _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>}, _M_p = 0xfd6813c ""}}, Path = {static npos = <optimized out>, _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>}, _M_p = 0x1054e8bc "/var/lib/apt/lists/ftp.de.debian.org_debian_dists_unstable_main_source_Sources"}}, Port = 0} From = {_vptr.FileFd = 0x100174b8, iFd = 3, Flags = 1, FileName = {static npos = <optimized out>, _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>}, _M_p = 0x1054e91c "/var/lib/apt/lists/ftp.de.debian.org_debian_dists_unstable_main_source_Sources"}}, TemporaryFileName = {static npos = <optimized out>, _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>}, _M_p = 0xfd6813c ""}}, gz = 0x0} Patch = {_vptr.FileFd = 0x100174b8, iFd = 4, Flags = 1, FileName = {static npos = <optimized out>, _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>}, _M_p = 0x1054e97c "/var/lib/apt/lists/ftp.de.debian.org_debian_dists_unstable_main_source_Sources.ed"}}, TemporaryFileName = {static npos = <optimized out>, _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>}, _M_p = 0xfd6813c ""}}, gz = 0x1054ea38} BufBase = {st_dev = 5188744839348686138, __pad1 = 49052, st_ino = 1208004652, st_mode = 1208180768, ---Type <return> to continue, or q <return> to quit--- st_nlink = 0, st_uid = 0, st_gid = 1, st_rdev = 5653385148272, __pad2 = 18435, st_size = 266223855, st_blksize = 261876284, st_blocks = 266114544, st_atim = {tv_sec = 1, tv_nsec = 1208004652}, st_mtim = {tv_sec = 6, tv_nsec = 0}, st_ctim = {tv_sec = 0, tv_nsec = 1}, __unused4 = 681, __unused5 = 0} Res = {MD5Sum = {static npos = <optimized out>, _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>}, _M_p = 0xfd6813c ""}}, SHA1Sum = {static npos = <optimized out>, _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>}, _M_p = 0xfd6813c ""}}, SHA256Sum = {static npos = <optimized out>, _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>}, _M_p = 0xfd6813c ""}}, GPGVOutput = {<std::_Vector_base<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > > >> = { _M_impl = {<std::allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >> = {<__gnu_cxx::new_allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >> = {<No data fields>}, <No data fields>}, _M_start = 0x0, _M_finish = 0x0, _M_end_of_storage = 0x0}}, <No data fields>}, LastModified = 0, IMSHit = false, Filename = {static npos = <optimized out>, _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>}, _M_p = 0x1054e824 "/var/lib/apt/lists/partial/ftp.de.debian.org_debian_dists_unstable_main_source_Sources.diff_2011-02-11-2016.59"}}, Size = 0, ResumePoint = 0} result = 1208098800 BufPatch = {st_dev = 13807057033437656985, __pad1 = 18434, st_ino = 3214705792, st_mode = 3214705968, st_nlink = 1208005664, st_uid = 1, st_gid = 0, st_rdev = 5503151456, __pad2 = 65535, st_size = 0, st_blksize = -1080261424, st_blocks = 1208184160, st_atim = {tv_sec = -1080261416, tv_nsec = -1866355779}, st_mtim = {tv_sec = -1080261424, tv_nsec = 1208004652}, st_ctim = { tv_sec = 1208180768, tv_nsec = 0}, __unused4 = 10, __unused5 = 3214706048} #2 0x0fecbd28 in pkgAcqMethod::Run (this=0xbf9c872c, Single=false) at acquire-method.cc:395 Tmp = 0x1054e518 I = 0xbf9c873c Message = {static npos = <optimized out>, _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>}, _M_p = 0x1054a554 "600 URI Acquire\nURI: rred:/var/lib/apt/lists/ftp.de.debian.org_debian_dists_unstable_main_source_Sources\nFilename: /var/lib/apt/lists/partial/ftp.de.debian.org_debian_dists_unstable_main_source_Source"...}} End = 0x1054a557 " URI Acquire\nURI: rred:/var/lib/apt/lists/ftp.de.debian.org_debian_dists_unstable_main_source_Sources\nFilename: /var/lib/apt/lists/partial/ftp.de.debian.org_debian_dists_unstable_main_source_Sources---Type <return> to continue, or q <return> to quit--- .d"... Number = 600 #3 0x1000463c in main (argc=1, argv=0xbf9c89d4) at rred.cc:568 Mth = {<pkgAcqMethod> = {_vptr.pkgAcqMethod = 0x100064e0, Messages = {<std::_Vector_base<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > > >> = { _M_impl = {<std::allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >> = {<__gnu_cxx::new_allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >> = {<No data fields>}, <No data fields>}, _M_start = 0x1054a640, _M_finish = 0x1054a640, _M_end_of_storage = 0x1054a648}}, <No data fields>}, Queue = 0x1054e518, QueueBack = 0x1054e518, FailReason = {static npos = <optimized out>, _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>}, _M_p = 0xfd6813c ""}}, UsedMirror = {static npos = <optimized out>, _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>}, _M_p = 0xfd6813c ""}}, IP = {static npos = <optimized out>, _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>}, _M_p = 0xfd6813c ""}}}, Debug = false, static BUF_SIZE = 1024} (gdb) step DynamicMMap::DynamicMMap (this=0xbf9c8354, Flags=0, WorkSpace=@0xbf9c8338, Grow=@0xbf9c830c, Limit=@0xbf9c8308) at contrib/mmap.cc:221 221 GrowFactor(Grow), Limit(Limit) (gdb) bt #0 DynamicMMap::DynamicMMap (this=0xbf9c8354, Flags=0, WorkSpace=@0xbf9c8338, Grow=@0xbf9c830c, Limit=@0xbf9c8308) at contrib/mmap.cc:221 #1 0x10002f8c in RredMethod::patchMMap (this=0xbf9c872c, Patch=..., From=..., out_file=..., hash=0xbf9c8520) at rred.cc:258 #2 0x10003f64 in RredMethod::Fetch (this=0xbf9c872c, Itm=0x1054e518) at rred.cc:487 #3 0x0fecbd28 in pkgAcqMethod::Run (this=0xbf9c872c, Single=false) at acquire-method.cc:395 #4 0x1000463c in main (argc=1, argv=0xbf9c89d4) at rred.cc:568 (gdb) cont Continuing. Program received signal SIGSEGV, Segmentation fault. Cannot remove breakpoints because program is no longer writable. Further execution is probably impossible. munmap () at ../sysdeps/unix/syscall-template.S:83 83 ../sysdeps/unix/syscall-template.S: Datei oder Verzeichnis nicht gefunden. in ../sysdeps/unix/syscall-template.S (gdb) bt #0 munmap () at ../sysdeps/unix/syscall-template.S:83 #1 0x0fe51cb8 in DynamicMMap::~DynamicMMap (this=0xbf9c8354, __in_chrg=<value optimized out>) at contrib/mmap.cc:270 #2 0x10002fdc in RredMethod::patchMMap (this=0xbf9c872c, Patch=..., From=..., out_file=..., hash=0xbf9c8520) at rred.cc:258 #3 0x10003f64 in RredMethod::Fetch (this=0xbf9c872c, Itm=0x1054e518) at rred.cc:487 #4 0x0fecbd28 in pkgAcqMethod::Run (this=0xbf9c872c, Single=false) at acquire-method.cc:395 #5 0x1000463c in main (argc=1, argv=0xbf9c89d4) at rred.cc:568 (gdb) bt full #0 munmap () at ../sysdeps/unix/syscall-template.S:83 No locals. #1 0x0fe51cb8 in DynamicMMap::~DynamicMMap (this=0xbf9c8354, __in_chrg=<value optimized out>) at contrib/mmap.cc:270 EndOfFile = 273999192 #2 0x10002fdc in RredMethod::patchMMap (this=0xbf9c872c, Patch=..., From=..., out_file=..., hash=0xbf9c8520) at rred.cc:258 mapSize = 2393964544 dyn = {<MMap> = {_vptr.MMap = 0xffe7a28, Flags = 9, iSize = 0, Base = 0x0, SyncToFd = 0x0}, Fd = 0x0, WorkSpace = 2393964544, GrowFactor = 0, Limit = 0, Pools = 0xbf9c85e8, PoolCount = 4146} ed_cmds = {_vptr.MMap = 0xffe7a38, Flags = 9, iSize = 0, Base = 0x0, SyncToFd = 0x0} commands = 0xfdddb00 command_alloc = 3214705392 begin = 0x20000422 "" i = 0 iov_size = 0 amount = 0 line = 0 in_file = warning: can't find linker symbol for virtual table for `MMap' value {_vptr.MMap = 0x4800ed6c, Flags = 266128560, iSize = 3214705456, Base = 0xbf9c8350, SyncToFd = 0xfe559ac} input = 0x0 input_end = 0x0 remaining = 0 cmd = 0x0 command_count = 0 end = 0x0 ed_end = 0x0 iov = 0x0 #3 0x10003f64 in RredMethod::Fetch (this=0xbf9c872c, Itm=0x1054e518) at rred.cc:487 Path = {static npos = <optimized out>, _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>}, _M_p = 0x1054e91c ""}} To = {_vptr.FileFd = 0x100174b8, iFd = 5, Flags = 21, FileName = {static npos = <optimized out>, _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>}, _M_p = 0x1054e824 ""}}, TemporaryFileName = {static npos = <optimized out>, _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>}, _M_p = 0x1054c454 ""}}, gz = 0x0} Hash = {MD5 = {Buf = {1732584193, 4023233417, 2562383102, 271733878}, ---Type <return> to continue, or q <return> to quit---q Bytes = "\000\000\000\000\000\000\0Quit (gdb) set pagination off (gdb) bt full #0 munmap () at ../sysdeps/unix/syscall-template.S:83 No locals. #1 0x0fe51cb8 in DynamicMMap::~DynamicMMap (this=0xbf9c8354, __in_chrg=<value optimized out>) at contrib/mmap.cc:270 EndOfFile = 273999192 #2 0x10002fdc in RredMethod::patchMMap (this=0xbf9c872c, Patch=..., From=..., out_file=..., hash=0xbf9c8520) at rred.cc:258 mapSize = 2393964544 dyn = {<MMap> = {_vptr.MMap = 0xffe7a28, Flags = 9, iSize = 0, Base = 0x0, SyncToFd = 0x0}, Fd = 0x0, WorkSpace = 2393964544, GrowFactor = 0, Limit = 0, Pools = 0xbf9c85e8, PoolCount = 4146} ed_cmds = {_vptr.MMap = 0xffe7a38, Flags = 9, iSize = 0, Base = 0x0, SyncToFd = 0x0} commands = 0xfdddb00 command_alloc = 3214705392 begin = 0x20000422 "" i = 0 iov_size = 0 amount = 0 line = 0 in_file = warning: can't find linker symbol for virtual table for `MMap' value {_vptr.MMap = 0x4800ed6c, Flags = 266128560, iSize = 3214705456, Base = 0xbf9c8350, SyncToFd = 0xfe559ac} input = 0x0 input_end = 0x0 remaining = 0 cmd = 0x0 command_count = 0 end = 0x0 ed_end = 0x0 iov = 0x0 #3 0x10003f64 in RredMethod::Fetch (this=0xbf9c872c, Itm=0x1054e518) at rred.cc:487 Path = {static npos = <optimized out>, _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>}, _M_p = 0x1054e91c ""}} To = {_vptr.FileFd = 0x100174b8, iFd = 5, Flags = 21, FileName = {static npos = <optimized out>, _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>}, _M_p = 0x1054e824 ""}}, TemporaryFileName = {static npos = <optimized out>, _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>}, _M_p = 0x1054c454 ""}}, gz = 0x0} Hash = {MD5 = {Buf = {1732584193, 4023233417, 2562383102, 271733878}, Bytes = "\000\000\000\000\000\000\000", In = "\263\205\r:\000\000\000\001H\003` \000\000\000\001\000\000\000\000H\003wp\277\234\206\030\017\336@\357H\002\037\360\277\234\205`\277\234\206\020H\000\264 \000\000\000\001\000\000\000\000\000\000\000\001H\003` ", Done = false}, SHA1 = {Buffer = "\017\233\242<H\003m`H\002\037\360\277\234\205\220\277\234\206@H\000\264 \000\000\000\001\000\000\000\000\000\000\000\001H\003` \377\377\377\377\000\000\000\000\017ܴ@H\003` \017\262\350x\017\262\350x", State = "gE#\001\357ͫ\211\230\272\334\376\020\062Tv\303\322\341", <incomplete sequence \360>, Count = "\000\000\000\000\000\000\000", Done = false}, SHA256 = {Sum = {count = {0, 0}, state = {1779033703, 3144134277, 1013904242, 2773480762, 1359893119, 2600822924, 528734635, 1541459225}, buf = '\000' <repeats 127 times>}, Done = false}} TimeBuf = {actime = 0, modtime = 0} Get = {Access = {static npos = <optimized out>, _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>}, _M_p = 0x1054e8a4 ""}}, User = {static npos = <optimized out>, _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>}, _M_p = 0xfd6813c ""}}, Password = {static npos = <optimized out>, _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>}, _M_p = 0xfd6813c ""}}, Host = {static npos = <optimized out>, _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>}, _M_p = 0xfd6813c ""}}, Path = {static npos = <optimized out>, _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>}, _M_p = 0x1054e8bc ""}}, Port = 0} From = {_vptr.FileFd = 0x100174b8, iFd = 3, Flags = 1, FileName = {static npos = <optimized out>, _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>}, _M_p = 0x1054e91c ""}}, TemporaryFileName = {static npos = <optimized out>, _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>}, _M_p = 0xfd6813c ""}}, gz = 0x0} Patch = {_vptr.FileFd = 0x100174b8, iFd = 4, Flags = 1, FileName = {static npos = <optimized out>, _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>}, _M_p = 0x1054e97c ""}}, TemporaryFileName = {static npos = <optimized out>, _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>}, _M_p = 0xfd6813c ""}}, gz = 0x1054ea38} BufBase = {st_dev = 5188744839348686138, __pad1 = 49052, st_ino = 1208004652, st_mode = 1208180768, st_nlink = 0, st_uid = 0, st_gid = 1, st_rdev = 5653385148272, __pad2 = 18435, st_size = 266223855, st_blksize = 261876284, st_blocks = 266114544, st_atim = {tv_sec = 1, tv_nsec = 1208004652}, st_mtim = {tv_sec = 6, tv_nsec = 0}, st_ctim = {tv_sec = 0, tv_nsec = 1}, __unused4 = 681, __unused5 = 0} Res = {MD5Sum = {static npos = <optimized out>, _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>}, _M_p = 0xfd6813c ""}}, SHA1Sum = {static npos = <optimized out>, _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>}, _M_p = 0xfd6813c ""}}, SHA256Sum = {static npos = <optimized out>, _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>}, _M_p = 0xfd6813c ""}}, GPGVOutput = {<std::_Vector_base<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > > >> = {_M_impl = {<std::allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >> = {<__gnu_cxx::new_allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >> = {<No data fields>}, <No data fields>}, _M_start = 0x0, _M_finish = 0x0, _M_end_of_storage = 0x0}}, <No data fields>}, LastModified = 0, IMSHit = false, Filename = {static npos = <optimized out>, _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>}, _M_p = 0x1054e824 ""}}, Size = 0, ResumePoint = 0} result = 1208098800 BufPatch = {st_dev = 13807057033437656985, __pad1 = 18434, st_ino = 3214705792, st_mode = 3214705968, st_nlink = 1208005664, st_uid = 1, st_gid = 0, st_rdev = 5503151456, __pad2 = 65535, st_size = 0, st_blksize = -1080261424, st_blocks = 1208184160, st_atim = {tv_sec = -1080261416, tv_nsec = -1866355779}, st_mtim = {tv_sec = -1080261424, tv_nsec = 1208004652}, st_ctim = {tv_sec = 1208180768, tv_nsec = 0}, __unused4 = 10, __unused5 = 3214706048} #4 0x0fecbd28 in pkgAcqMethod::Run (this=0xbf9c872c, Single=false) at acquire-method.cc:395 Tmp = 0x1054e518 I = 0xbf9c873c Message = {static npos = <optimized out>, _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>}, _M_p = 0x1054a554 ""}} End = 0x1054a557 "" Number = 600 #5 0x1000463c in main (argc=1, argv=0xbf9c89d4) at rred.cc:568 Mth = {<pkgAcqMethod> = {_vptr.pkgAcqMethod = 0x100064e0, Messages = {<std::_Vector_base<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > > >> = {_M_impl = {<std::allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >> = {<__gnu_cxx::new_allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >> = {<No data fields>}, <No data fields>}, _M_start = 0x1054a640, _M_finish = 0x1054a640, _M_end_of_storage = 0x1054a648}}, <No data fields>}, Queue = 0x1054e518, QueueBack = 0x1054e518, FailReason = {static npos = <optimized out>, _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>}, _M_p = 0xfd6813c ""}}, UsedMirror = {static npos = <optimized out>, _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>}, _M_p = 0xfd6813c ""}}, IP = {static npos = <optimized out>, _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>}, _M_p = 0xfd6813c ""}}}, Debug = false, static BUF_SIZE = 1024} (gdb) up #1 0x0fe51cb8 in DynamicMMap::~DynamicMMap (this=0xbf9c8354, __in_chrg=<value optimized out>) at contrib/mmap.cc:270 270 munmap(Base, WorkSpace); (gdb) frame 1 #1 0x0fe51cb8 in DynamicMMap::~DynamicMMap (this=0xbf9c8354, __in_chrg=<value optimized out>) at contrib/mmap.cc:270 270 munmap(Base, WorkSpace); (gdb) frame 2 #2 0x10002fdc in RredMethod::patchMMap (this=0xbf9c872c, Patch=..., From=..., out_file=..., hash=0xbf9c8520) at rred.cc:258 258 DynamicMMap dyn(0, mapSize, 0); (gdb) list 253 FileFd &out_file, Hashes *hash) const { 254 #ifdef _POSIX_MAPPED_FILES 255 MMap ed_cmds(Patch, MMap::ReadOnly); 256 if (Patch.gzFd() != NULL) { 257 unsigned long mapSize = Patch.Size(); 258 DynamicMMap dyn(0, mapSize, 0); 259 gzread(Patch.gzFd(), dyn.Data(), mapSize); 260 ed_cmds = dyn; 261 } 262 MMap in_file(From, MMap::ReadOnly); (gdb) print mapSize $1 = 2393964544 (gdb) print Patch $2 = (FileFd &) @0xbf9c840c: {_vptr.FileFd = 0x100174b8, iFd = 4, Flags = 1, FileName = {static npos = <optimized out>, _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>}, _M_p = 0x1054e97c ""}}, TemporaryFileName = {static npos = <optimized out>, _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>}, _M_p = 0xfd6813c ""}}, gz = 0x1054ea38} (gdb) print Patch.Size() Program received signal SIGILL, Illegal instruction. FileFd::Size (this=0x20000422) at contrib/fileutl.cc:951 951 { The program being debugged was signaled while in a function called from GDB. GDB remains in the frame where the signal was received. To change this behavior use "set unwindonsignal on". Evaluation of the expression containing the function (FileFd::Size()) will be abandoned. When the function is done executing, GDB will silently stop. (gdb) cont Continuing. Program terminated with signal SIGILL, Illegal instruction. The program no longer exists. (gdb) frame 1 No registers. (gdb) target remote localhost:4432; cont Remote debugging using localhost:4432; cont Reading symbols from /lib/ld.so.1...Reading symbols from /usr/lib/debug/lib/ld-2.11.2.so...done. done. Loaded symbols for /lib/ld.so.1 _start () at ../sysdeps/powerpc/powerpc32/dl-start.S:33 33 ../sysdeps/powerpc/powerpc32/dl-start.S: Datei oder Verzeichnis nicht gefunden. in ../sysdeps/powerpc/powerpc32/dl-start.S (gdb) cont Continuing. Remote connection closed (gdb) target remote localhost:4432 Remote debugging using localhost:4432 Reading symbols from /lib/ld.so.1...Reading symbols from /usr/lib/debug/lib/ld-2.11.2.so...done. done. Loaded symbols for /lib/ld.so.1 _start () at ../sysdeps/powerpc/powerpc32/dl-start.S:33 33 ../sysdeps/powerpc/powerpc32/dl-start.S: Datei oder Verzeichnis nicht gefunden. in ../sysdeps/powerpc/powerpc32/dl-start.S (gdb) cont Continuing. Breakpoint 1, RredMethod::patchMMap (this=0xbfc455ec, Patch=..., From=..., out_file=..., hash=0xbfc453e0) at rred.cc:258 258 DynamicMMap dyn(0, mapSize, 0); (gdb) p mapSize $3 = 2393964544 (gdb) step DynamicMMap::DynamicMMap (this=0xbfc45214, Flags=0, WorkSpace=@0xbfc451f8, Grow=@0xbfc451cc, Limit=@0xbfc451c8) at contrib/mmap.cc:221 221 GrowFactor(Grow), Limit(Limit) (gdb) list 216 cooler than the fallback solution to simply allocate a char array 217 and could come in handy later than we are able to grow such an mmap */ 218 DynamicMMap::DynamicMMap(unsigned long Flags,unsigned long const &WorkSpace, 219 unsigned long const &Grow, unsigned long const &Limit) : 220 MMap(Flags | NoImmMap | UnMapped), Fd(0), WorkSpace(WorkSpace), 221 GrowFactor(Grow), Limit(Limit) 222 { 223 if (_error->PendingError() == true) 224 return; 225 (gdb) n 223 if (_error->PendingError() == true) (gdb) 224 return; (gdb) print _error No symbol "_error" in current context. (gdb) n 260 } (gdb) RredMethod::patchMMap (this=0xbfc455ec, Patch=..., From=..., out_file=..., hash=0xbfc453e0) at rred.cc:259 259 gzread(Patch.gzFd(), dyn.Data(), mapSize); (gdb) n 260 ed_cmds = dyn; (gdb) l 255 MMap ed_cmds(Patch, MMap::ReadOnly); 256 if (Patch.gzFd() != NULL) { 257 unsigned long mapSize = Patch.Size(); 258 DynamicMMap dyn(0, mapSize, 0); 259 gzread(Patch.gzFd(), dyn.Data(), mapSize); 260 ed_cmds = dyn; 261 } 262 MMap in_file(From, MMap::ReadOnly); 263 264 if (ed_cmds.Size() == 0 || in_file.Size() == 0) (gdb) step MMap::operator= (this=0xbfc451d0) at ../build/include/apt-pkg/mmap.h:39 39 class MMap (gdb) RredMethod::patchMMap (this=0xbfc455ec, Patch=..., From=..., out_file=..., hash=0xbfc453e0) at rred.cc:258 258 DynamicMMap dyn(0, mapSize, 0); (gdb) DynamicMMap::~DynamicMMap (this=0xbfc45214, __in_chrg=<value optimized out>) at contrib/mmap.cc:265 265 DynamicMMap::~DynamicMMap() (gdb) 267 if (Fd == 0) (gdb) l 262 // DynamicMMap::~DynamicMMap - Destructor /*{{{*/ 263 // --------------------------------------------------------------------- 264 /* We truncate the file to the size of the memory data set */ 265 DynamicMMap::~DynamicMMap() 266 { 267 if (Fd == 0) 268 { 269 #ifdef _POSIX_MAPPED_FILES 270 munmap(Base, WorkSpace); 271 #else (gdb) p Fd $4 = (FileFd *) 0x0 (gdb) p Base $5 = (void *) 0x0 (gdb) n 270 munmap(Base, WorkSpace); (gdb) p WorkSpace $6 = 2393964544 (gdb) bt #0 DynamicMMap::~DynamicMMap (this=0xbfc45214, __in_chrg=<value optimized out>) at contrib/mmap.cc:270 #1 0x10002fdc in RredMethod::patchMMap (this=0xbfc455ec, Patch=..., From=..., out_file=..., hash=0xbfc453e0) at rred.cc:258 #2 0x10003f64 in RredMethod::Fetch (this=0xbfc455ec, Itm=0x10680518) at rred.cc:487 #3 0x0fecbd28 in pkgAcqMethod::Run (this=0xbfc455ec, Single=false) at acquire-method.cc:395 #4 0x1000463c in main (argc=1, argv=0xbfc45894) at rred.cc:568 (gdb) cont Continuing. Program received signal SIGSEGV, Segmentation fault. Cannot remove breakpoints because program is no longer writable. Further execution is probably impossible. munmap () at ../sysdeps/unix/syscall-template.S:83 83 ../sysdeps/unix/syscall-template.S: Datei oder Verzeichnis nicht gefunden. in ../sysdeps/unix/syscall-template.S (gdb) bt #0 munmap () at ../sysdeps/unix/syscall-template.S:83 #1 0x0fe51cb8 in DynamicMMap::~DynamicMMap (this=0xbfc45214, __in_chrg=<value optimized out>) at contrib/mmap.cc:270 #2 0x10002fdc in RredMethod::patchMMap (this=0xbfc455ec, Patch=..., From=..., out_file=..., hash=0xbfc453e0) at rred.cc:258 #3 0x10003f64 in RredMethod::Fetch (this=0xbfc455ec, Itm=0x10680518) at rred.cc:487 #4 0x0fecbd28 in pkgAcqMethod::Run (this=0xbfc455ec, Single=false) at acquire-method.cc:395 #5 0x1000463c in main (argc=1, argv=0xbfc45894) at rred.cc:568 (gdb) cont Continuing. Program terminated with signal SIGSEGV, Segmentation fault. The program no longer exists. (gdb) core-file /var/tmp/Körnerhaufen.rred. Körnerhaufen.rred.1297470035 Körnerhaufen.rred.1297509658 Körnerhaufen.rred.orig.1297520685 Körnerhaufen.rred.1297470123 Körnerhaufen.rred.1297519241 Körnerhaufen.rred.orig.1297521862 (gdb) core-file /var/tmp/Körnerhaufen.rred.1297521862 /var/tmp/Körnerhaufen.rred.1297521862: Datei oder Verzeichnis nicht gefunden. (gdb) core-file /var/tmp/Körnerhaufen.rred.1297 Körnerhaufen.rred.1297470035 Körnerhaufen.rred.1297509658 Körnerhaufen.rred.1297470123 Körnerhaufen.rred.1297519241 (gdb) core-file /var/tmp/Körnerhaufen.rred.12975 Körnerhaufen.rred.1297509658 Körnerhaufen.rred.1297519241 (gdb) core-file /var/tmp/Körnerhaufen.rred.orig.129752 Körnerhaufen.rred.orig.1297520685 Körnerhaufen.rred.orig.1297521862 (gdb) core-file /var/tmp/Körnerhaufen.rred.orig.1297521862 [New Thread 15377] Reading symbols from /lib/ld.so.1...Reading symbols from /usr/lib/debug/lib/ld-2.11.2.so...done. done. Loaded symbols for /lib/ld.so.1 Failed to read a valid object file image from memory. Core was generated by `/usr/lib/apt/methods/rred.orig'. Program terminated with signal 11, Segmentation fault. #0 0x0fa9b0cc in ?? () (gdb) bt #0 0x0fa9b0cc in ?? () #1 0x0fe51cb8 in ?? () #2 0x10002fdc in RredMethod::patchMMap (this=0x9, Patch=..., From=..., out_file=..., hash=0x0) at rred.cc:258 #3 0x10680a20 in ?? () Backtrace stopped: previous frame inner to this frame (corrupt stack?) (gdb) target remote localhost:4432 Remote debugging using localhost:4432 Reading symbols from /lib/ld.so.1...Reading symbols from /usr/lib/debug/lib/ld-2.11.2.so...done. done. Loaded symbols for /lib/ld.so.1 _start () at ../sysdeps/powerpc/powerpc32/dl-start.S:33 33 ../sysdeps/powerpc/powerpc32/dl-start.S: Datei oder Verzeichnis nicht gefunden. in ../sysdeps/powerpc/powerpc32/dl-start.S (gdb) cont Continuing. Remote connection closed (gdb) target remote localhost:4432 Remote debugging using localhost:4432 Reading symbols from /lib/ld.so.1...Reading symbols from /usr/lib/debug/lib/ld-2.11.2.so...done. done. Loaded symbols for /lib/ld.so.1 _start () at ../sysdeps/powerpc/powerpc32/dl-start.S:33 33 ../sysdeps/powerpc/powerpc32/dl-start.S: Datei oder Verzeichnis nicht gefunden. in ../sysdeps/powerpc/powerpc32/dl-start.S (gdb) b rred.cc:258 Note: breakpoints 1 and 2 also set at pc 0x10002f54. Breakpoint 3 at 0x10002f54: file rred.cc, line 258. (gdb) b Breakpoint 4 at 0x480176b4: file ../sysdeps/powerpc/powerpc32/dl-start.S, line 33. (gdb) inf br Num Type Disp Enb Address What 1 breakpoint keep y 0x10002f54 in RredMethod::patchMMap(FileFd&, FileFd&, FileFd&, Hashes*) const at rred.cc:258 breakpoint already hit 2 times 2 breakpoint keep y 0x10002f54 in RredMethod::patchMMap(FileFd&, FileFd&, FileFd&, Hashes*) const at rred.cc:258 breakpoint already hit 2 times 3 breakpoint keep y 0x10002f54 in RredMethod::patchMMap(FileFd&, FileFd&, FileFd&, Hashes*) const at rred.cc:258 4 breakpoint keep y 0x480176b4 ../sysdeps/powerpc/powerpc32/dl-start.S:33 (gdb) delete b 4 Ambiguous delete command "b 4": bookmark, breakpoints. (gdb) delete bre 4 (gdb) delete bre 3 (gdb) delete bre 2 (gdb) b contrib/mmap.cc:223 No source file named contrib/mmap.cc. Make breakpoint pending on future shared library load? (y or [n]) n (gdb) b mmap.cc:223 No source file named mmap.cc. Make breakpoint pending on future shared library load? (y or [n]) n (gdb) cont Continuing. Breakpoint 1, RredMethod::patchMMap (this=0xbfc75dcc, Patch=..., From=..., out_file=..., hash=0xbfc75bc0) at rred.cc:258 258 DynamicMMap dyn(0, mapSize, 0); (gdb) b mmap.cc:223 Breakpoint 5 at 0xfe51a40: file contrib/mmap.cc, line 223. (gdb) inf br Num Type Disp Enb Address What 1 breakpoint keep y 0x10002f54 in RredMethod::patchMMap(FileFd&, FileFd&, FileFd&, Hashes*) const at rred.cc:258 breakpoint already hit 3 times 5 breakpoint keep y 0x0fe51a40 in DynamicMMap::DynamicMMap(unsigned long, unsigned long const&, unsigned long const&, unsigned long const&) at contrib/mmap.cc:223 (gdb) cont Continuing. Breakpoint 5, DynamicMMap::DynamicMMap (this=0xbfc759f4, Flags=0, WorkSpace=@0xbfc759d8, Grow=@0xbfc759ac, Limit=@0xbfc759a8) at contrib/mmap.cc:223 223 if (_error->PendingError() == true) (gdb) l 218 DynamicMMap::DynamicMMap(unsigned long Flags,unsigned long const &WorkSpace, 219 unsigned long const &Grow, unsigned long const &Limit) : 220 MMap(Flags | NoImmMap | UnMapped), Fd(0), WorkSpace(WorkSpace), 221 GrowFactor(Grow), Limit(Limit) 222 { 223 if (_error->PendingError() == true) 224 return; 225 226 // disable Moveable if we don't grow 227 if (Grow == 0) (gdb) p _error No symbol "_error" in current context. (gdb) p _GetErrorObj() $7 = (GlobalError *) 0x10051a20 (gdb) p *_GetErrorObj() $8 = {Messages = {<std::_List_base<GlobalError::Item, std::allocator<GlobalError::Item> >> = {_M_impl = {<std::allocator<std::_List_node<GlobalError::Item> >> = {<__gnu_cxx::new_allocator<std::_List_node<GlobalError::Item> >> = {<No data fields>}, <No data fields>}, _M_node = {_M_next = 0x10051430, _M_prev = 0x10051430}}}, <No data fields>}, PendingFlag = true, Stacks = {<std::_List_base<GlobalError::MsgStack, std::allocator<GlobalError::MsgStack> >> = {_M_impl = {<std::allocator<std::_List_node<GlobalError::MsgStack> >> = {<__gnu_cxx::new_allocator<std::_List_node<GlobalError::MsgStack> >> = {<No data fields>}, <No data fields>}, _M_node = {_M_next = 0x10051a2c, _M_prev = 0x10051a2c}}}, <No data fields>}} (gdb) p _GetErrorObj()->Messages $9 = {<std::_List_base<GlobalError::Item, std::allocator<GlobalError::Item> >> = {_M_impl = {<std::allocator<std::_List_node<GlobalError::Item> >> = {<__gnu_cxx::new_allocator<std::_List_node<GlobalError::Item> >> = {<No data fields>}, <No data fields>}, _M_node = {_M_next = 0x10051430, _M_prev = 0x10051430}}}, <No data fields>} (gdb) p _GetErrorObj()->Messages.first There is no member or method named first. (gdb) p _GetErrorObj()->Messages.first() Couldn't find method std::list<GlobalError::Item, std::allocator<GlobalError::Item> >::first (gdb) p _GetErrorObj()->Messages.head() Couldn't find method std::list<GlobalError::Item, std::allocator<GlobalError::Item> >::head (gdb) p _GetErrorObj()->Messages.front() $10 = (GlobalError::Item &) @0x10051438: {Text = {static npos = <optimized out>, _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>}, _M_p = 0x100513dc "Couldn't make mmap of 2393964544 bytes - mmap (12: Cannot allocate memory)"}}, Type = GlobalError::ERROR} (gdb) p _GetErrorObj()->DumpErrors(GlobalError::DEBUG); A syntax error in expression, near `DEBUG);'. (gdb) p _GetErrorObj()->DumpErrors(GlobalError::MsgType.DEBUG); A syntax error in expression, near `.DEBUG);'. (gdb) p _GetErrorObj()->DumpErrors(GlobalError::MsgType::DEBUG); A syntax error in expression, near `DEBUG);'. (gdb) p _GetErrorObj()->DumpErrors(0); Invalid character ';' in expression. (gdb) p _GetErrorObj()->DumpErrors(0) Cannot evaluate function -- may be inlined (gdb) p _GetErrorObj()->DumpErrors(stdout, 0) Cannot resolve method GlobalError::DumpErrors to any overloaded instance (gdb) p _GetErrorObj()->DumpErrors(stdout, 0, true) Cannot resolve method GlobalError::DumpErrors to any overloaded instance (gdb) p _GetErrorObj()->DumpErrors() $11 = void (gdb) cont Continuing. Breakpoint 1, RredMethod::patchMMap (this=0xbfc75dcc, Patch=..., From=..., out_file=..., hash=0xbfc75bc0) at rred.cc:258 258 DynamicMMap dyn(0, mapSize, 0); (gdb) cont Continuing. Breakpoint 5, DynamicMMap::DynamicMMap (this=0xbfc759f4, Flags=0, WorkSpace=@0xbfc759d8, Grow=@0xbfc759ac, Limit=@0xbfc759a8) at contrib/mmap.cc:223 223 if (_error->PendingError() == true) (gdb) cont Continuing. Program received signal SIGSEGV, Segmentation fault. Cannot remove breakpoints because program is no longer writable. Further execution is probably impossible. munmap () at ../sysdeps/unix/syscall-template.S:83 83 ../sysdeps/unix/syscall-template.S: Datei oder Verzeichnis nicht gefunden. in ../sysdeps/unix/syscall-template.S (gdb) cont Continuing. Program terminated with signal SIGSEGV, Segmentation fault. The program no longer exists. (gdb) target remote localhost:4432 Remote debugging using localhost:4432 Reading symbols from /lib/ld.so.1...Reading symbols from /usr/lib/debug/lib/ld-2.11.2.so...done. done. Loaded symbols for /lib/ld.so.1 _start () at ../sysdeps/powerpc/powerpc32/dl-start.S:33 33 ../sysdeps/powerpc/powerpc32/dl-start.S: Datei oder Verzeichnis nicht gefunden. in ../sysdeps/powerpc/powerpc32/dl-start.S (gdb) info br Num Type Disp Enb Address What 1 breakpoint keep y 0x10002f54 in RredMethod::patchMMap(FileFd&, FileFd&, FileFd&, Hashes*) const at rred.cc:258 breakpoint already hit 4 times 5 breakpoint keep y <PENDING> mmap.cc:223 breakpoint already hit 2 times (gdb) br rred.cc:257 Breakpoint 6 at 0x10002f44: file rred.cc, line 257. (gdb) cont Continuing. Remote connection closed (gdb) br rred.cc:257 Note: breakpoint 6 also set at pc 0x10002f44. Breakpoint 7 at 0x10002f44: file rred.cc, line 257. (gdb) target remote localhost:4432 Remote debugging using localhost:4432 Reading symbols from /lib/ld.so.1...Reading symbols from /usr/lib/debug/lib/ld-2.11.2.so...done. done. Loaded symbols for /lib/ld.so.1 _start () at ../sysdeps/powerpc/powerpc32/dl-start.S:33 33 in ../sysdeps/powerpc/powerpc32/dl-start.S (gdb) inf br Num Type Disp Enb Address What 1 breakpoint keep y 0x10002f54 in RredMethod::patchMMap(FileFd&, FileFd&, FileFd&, Hashes*) const at rred.cc:258 breakpoint already hit 4 times 5 breakpoint keep y <PENDING> mmap.cc:223 breakpoint already hit 2 times 6 breakpoint keep y 0x10002f44 in RredMethod::patchMMap(FileFd&, FileFd&, FileFd&, Hashes*) const at rred.cc:257 7 breakpoint keep y 0x10002f44 in RredMethod::patchMMap(FileFd&, FileFd&, FileFd&, Hashes*) const at rred.cc:257 (gdb) del 7 (gdb) inf br Num Type Disp Enb Address What 1 breakpoint keep y 0x10002f54 in RredMethod::patchMMap(FileFd&, FileFd&, FileFd&, Hashes*) const at rred.cc:258 breakpoint already hit 4 times 5 breakpoint keep y <PENDING> mmap.cc:223 breakpoint already hit 2 times 6 breakpoint keep y 0x10002f44 in RredMethod::patchMMap(FileFd&, FileFd&, FileFd&, Hashes*) const at rred.cc:257 (gdb) cont Continuing. Breakpoint 6, RredMethod::patchMMap (this=0xbfee7dcc, Patch=..., From=..., out_file=..., hash=0xbfee7bc0) at rred.cc:257 257 unsigned long mapSize = Patch.Size(); (gdb) p Patch $12 = (FileFd &) @0xbfee7aac: {_vptr.FileFd = 0x100174b8, iFd = 4, Flags = 1, FileName = {static npos = <optimized out>, _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>}, _M_p = 0x1045897c "/var/lib/apt/lists/ftp.de.debian.org_debian_dists_unstable_main_source_Sources.ed"}}, TemporaryFileName = {static npos = <optimized out>, _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>}, _M_p = 0xfd6813c ""}}, gz = 0x10458a38} (gdb) step FileFd::Size (this=0xbfee7aac) at contrib/fileutl.cc:952 952 unsigned long size = FileSize(); (gdb) l 947 // FileFd::Size - Return the size of the content in the file /*{{{*/ 948 // --------------------------------------------------------------------- 949 /* */ 950 unsigned long FileFd::Size() 951 { 952 unsigned long size = FileSize(); 953 954 // only check gzsize if we are actually a gzip file, just checking for 955 // "gz" is not sufficient as uncompressed files will be opened with 956 // gzopen in "direct" mode as well (gdb) n 957 if (gz && !gzdirect(gz) && size > 0) (gdb) 962 off_t orig_pos = lseek(iFd, 0, SEEK_CUR); (gdb) 963 if (lseek(iFd, -4, SEEK_END) < 0) (gdb) 965 if (read(iFd, &size, 4) != 4) (gdb) 967 size &= 0xFFFFFFFF; (gdb) 969 if (lseek(iFd, orig_pos, SEEK_SET) < 0) (gdb) 971 return size; (gdb) p size $13 = 2393964544 (gdb) p gz $14 = (gzFile) 0x10458a38 (gdb) p ntoh ntohl ntohs (gdb) p hton htonl htonl.c htons htons.c (gdb) p hton htonl htonl.c htons htons.c (gdb) p htonl(size) $15 = 2393964544 (gdb) p ntohl(size) $16 = -1901002752 (gdb) p /x size $17 = 0x8eb10000 (gdb) p size $18 = 2393964544 Regards, Jörg. -- Alles, wovor wir Angst haben müssen, ist die Angst selbst. (Franklin D. Roosevelt)
Attachment:
signature.asc
Description: Digital signature http://en.wikipedia.org/wiki/OpenPGP