Программа вылетает сразу после вызова munmap - PullRequest
0 голосов
/ 01 июля 2019

Программа, которую я запускаю, читает несколько файлов и выводит вывод на консоль.В программе мало встроенного интеллекта, за исключением того, что файлы имеют данные шестнадцатеричного дампа, которые отображаются на консоли в хорошо отформатированном виде.Для каждого раздела в файле есть плагин (.so), используемый для форматирования данных.Проблема, с которой я сталкиваюсь, заключается в том, что после распечатки файлов происходит сбой программы.Я вставляю ниже ограниченного раздела вывода программы непосредственно перед сбоем программы.

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 не генерируют верную трассировку стека.Мне интересно, есть ли у кого-то понимание того, что здесь может происходить.

...