调用munmap后程序立即崩溃

时间:2019-07-01 12:50:34

标签: crash system-calls

我正在运行的程序,读取少量文件并将输出扔到控制台。程序中没有太多的智能功能,只是文件具有十六进制转储数据,并以格式正确的方式显示在控制台上。对于文件中的每个部分,都有一个用于格式化数据的插件(.so)。我面临的问题是文件打印后程序崩溃。在程序崩溃之前,我将其粘贴到程序的strace输出的有限部分下面。

open("/tmp/5000701d-314.trace.20", O_WRONLY|O_CREAT|O_TRUNC|O_LARGEFILE, 0666) = 10 <0.000026>
write(10, "\1(\4BDCCL\0\0\0\0\0\0\0\0\0\0\0\0\0\0\3\360\0\0\0\0\0\0\3\360"..., 1008) = 1008 <0.000024>
close(10)                               = 0 <0.000019>
write(1, "Calling fsp-trace -s /nfs/trexSt"..., 445) = 445 <0.000145>
rt_sigaction(SIGINT, {SIG_IGN, [], 0}, {SIG_DFL, [], 0}, 8) = 0 <0.000015>
rt_sigaction(SIGQUIT, {SIG_IGN, [], 0}, {SIG_DFL, [], 0}, 8) = 0 <0.000013>
rt_sigprocmask(SIG_BLOCK, [CHLD], [], 8) = 0 <0.000013>
clone(child_stack=0, flags=CLONE_PARENT_SETTID|SIGCHLD, parent_tidptr=0xbfe25714) = 317 <0.001806>
waitpid(317, [{WIFEXITED(s) && WEXITSTATUS(s) == 0}], 0) = 317 <0.507366>
rt_sigaction(SIGINT, {SIG_DFL, [], 0}, NULL, 8) = 0 <0.000016>
rt_sigaction(SIGQUIT, {SIG_DFL, [], 0}, NULL, 8) = 0 <0.000014>
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0 <0.000014>
--- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_EXITED, si_pid=317, si_status=0, si_utime=0, si_stime=0} ---
unlink("/tmp/5000701d-314.trace.3")     = 0 <0.000056>
unlink("/tmp/5000701d-314.trace.4")     = 0 <0.000034>
unlink("/tmp/5000701d-314.trace.6")     = 0 <0.000033>
unlink("/tmp/5000701d-314.trace.8")     = 0 <0.000032>
unlink("/tmp/5000701d-314.trace.9")     = 0 <0.000032>
unlink("/tmp/5000701d-314.trace.10")    = 0 <0.000031>
unlink("/tmp/5000701d-314.trace.11")    = 0 <0.000032>
unlink("/tmp/5000701d-314.trace.12")    = 0 <0.000031>
unlink("/tmp/5000701d-314.trace.13")    = 0 <0.000032>
unlink("/tmp/5000701d-314.trace.14")    = 0 <0.000031>
unlink("/tmp/5000701d-314.trace.15")    = 0 <0.000032>
unlink("/tmp/5000701d-314.trace.16")    = 0 <0.000068>
unlink("/tmp/5000701d-314.trace.18")    = 0 <0.000032>
unlink("/tmp/5000701d-314.trace.19")    = 0 <0.000032>
unlink("/tmp/5000701d-314.trace.20")    = 0 <0.000032>
ioctl(3, 0xc0046809, 0xbfe29418)        = 0 <0.000025>
write(1, "returning from errlDisplayEntry "..., 33) = 33 <0.000081>
munmap(0x48046000, 159539)              = 0 <0.000118>
rt_sigprocmask(SIG_UNBLOCK, [ABRT], NULL, 8) = 0 <0.000015>
tgkill(314, 314, SIGABRT)               = 0 <0.000017>

coredump文件不会抛出有效的堆栈回溯。我想知道是否有人对这里可能发生的事情有了解。

0 个答案:

没有答案