LINUX.ORG.RU

Куда записываются Core dump-ы?

 


0

2

программа при старте выдала сообщение:

$ ./test
Segmentation fault (core dumped)

Прочитал страницы:
SEGMENTATION FAULT!!!!!!!!!!!!!!!!!!!!!
https://en.wikipedia.org/wiki/Segmentation_fault
https://linux.die.net/man/2/sigaction
https://linux.die.net/man/3/sigaction

Мои вопросы:
1) кто записывает core-dump-ы? Какой-то модуль ядра? Какой?
man systemd-coredump
2) куда записываются core-dump-ы? (в какую директорию)

$ cat  /etc/sysctl.conf | grep core
$
$ cat /usr/lib/sysctl.d/50-coredump.conf | grep core
# and systemd-coredump(8) and core(5) for the explanation of the
kernel.core_pattern=|/lib/systemd/systemd-coredump %P %u %g %s %t %c %h %e
$ cat /etc/security/limits.conf | grep core
#        - core - limits the core file size (KB)
#*               soft    core            0
$ cat /proc/sys/kernel/core_pattern
|/lib/systemd/systemd-coredump %P %u %g %s %t %c %h %e
3) в каком формате записываются core-dump-ы (как формат называется и в каком документе описан)?
https://en.wikipedia.org/wiki/Core_dump#Format

ELF in modern Linux

что-то не похоже:

$ ls -1 /var/lib/systemd/coredump
core.test.1000.453a4e91959547cc891ae1668783d8e2.19592.1530964135000000.lz4
4) какой утилитой эти дампы просматривают.
$ coredumpctl -1
TIME                            PID   UID   GID SIG COREFILE  EXE
Sat 2018-07-07 14:48:56 MSK   19592  1000  1001  11 present   /home/user/asmtest/test

Ответ на: комментарий от post-factum

я не умею пользоваться gdb, что делать дальше?

$ coredumpctl gdb
           PID: 19592 (test)
           UID: 1000 (user)
           GID: 1001 (user)
        Signal: 11 (SEGV)
     Timestamp: Sat 2018-07-07 14:48:55 MSK (37min ago)
  Command Line: ./test
    Executable: /home/user/asmtest/test
 Control Group: /user.slice/user-1000.slice/session-3.scope
          Unit: session-3.scope
         Slice: user-1000.slice
       Session: 3
     Owner UID: 1000 (user)
       Boot ID: 453a4e91959547cc891ae1668783d8e2
    Machine ID: 8ae3444f6ee746c6842365ac6c8850d8
      Hostname: sabayon.local
       Storage: /var/lib/systemd/coredump/core.test.1000.453a4e91959547cc891ae1668783d8e2.19592.1530964135000000.lz4
       Message: Process 19592 (test) of user 1000 dumped core.

GNU gdb (Gentoo 8.1 p1) 8.1
Copyright (C) 2018 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-pc-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<https://bugs.gentoo.org/>.
Find the GDB manual and other documentation resources online at:
<http://www.gnu.org/software/gdb/documentation/>.
For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from /home/user/asmtest/test...(no debugging symbols found)...done.
[New LWP 19592]
Core was generated by `./test'.
Program terminated with signal SIGSEGV, Segmentation fault.
#0  0x0000000000000001 in ?? ()
(gdb)

https://stackoverflow.com/questions/8305866/how-to-analyze-a-programs-core-dump-file-with-gdb

(gdb) where
#0  0x0000000000000001 in ?? ()
#1  0x00007ffc5b963b4c in ?? ()
#2  0x0000000000000000 in ?? ()
(gdb) bt full
#0  0x0000000000000001 in ?? ()
No symbol table info available.
#1  0x00007ffc5b963b4c in ?? ()
No symbol table info available.
#2  0x0000000000000000 in ?? ()
No symbol table info available.
Einstok_Fair ★★☆ ()
Последнее исправление: Einstok_Fair (всего исправлений: 3 )

man 5 core

Смотреть gdb (ключ -c) совместно с исполняемым файлом программы, получившей сигнал.

d_a ★★★★★ ()
Ответ на: комментарий от post-factum

ну я думал, что мне посоветуют какую-нибудь огромную IDE, я её запущу и мне всё объяснят, что произошло и из-за чего возникла ошибка.

Einstok_Fair ★★☆ ()
Ответ на: комментарий от Einstok_Fair

Ну, нет. Программа, к тому же, должна была бы быть скомпилена с дебаг-символами, а у тебя, похоже, не этот случай.

post-factum ★★★★★ ()
Ответ на: комментарий от post-factum

а у тебя, похоже, не этот случай.

почему это?

Я добавлял ключ -as в командную строку as

as -msyntax=intel -as test.s
ld a.out -o test

-a[cdghlmns] Turn on listings, in any of a variety of ways: -as include symbols

и файл у меня не обрезаный:

$ file test
test: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), statically linked, not stripped
$ nm test
0000000000600079 T __bss_start
0000000000600079 T _edata
0000000000600080 T _end
0000000000600080 t _GLOBAL_OFFSET_TABLE_
0000000000400078 T _start
Einstok_Fair ★★☆ ()
Последнее исправление: Einstok_Fair (всего исправлений: 1 )
Ответ на: комментарий от i-rinat

Ну уж нет! И вообще, я же тебя неоднократно просил в мои треды не отвечать. Тут даже тегов твоих любимых нет.

Einstok_Fair ★★☆ ()
Ответ на: комментарий от post-factum

Непонятен use case, в общем.

Это нормально. Каждый раз когда я пишу на LOR, вам всегда ничего непонятно, всегда вы хотите в чужой карман залезть.

Einstok_Fair ★★☆ ()
Ответ на: комментарий от post-factum

Гугл буквально первым результатом выдаёт подробную инструкцию об отладке программ на ассемблере. Сегодня я так узнал, что GNU assembler умеет писать достаточно отладочной информации, чтобы отлаживаясь, можно было ходить по строчкам с помощью s, а не si.

Но там на английском, а его ТС наотрез отказывается учить.

i-rinat ★★★★★ ()
Ответ на: комментарий от i-rinat

так я не тебе пишу, пишу людям, чтобы видели.

У тебя в голове не укладывается, что телепатии не существует и другим не ясно, какой именно запрос ты имел в виду.

Таким образом люди посмотрят на твой ответ и лучше поймут твои мотивы, такие как гордыня, желание покрасоваться.

Einstok_Fair ★★☆ ()
Последнее исправление: Einstok_Fair (всего исправлений: 1 )
Ответ на: комментарий от Einstok_Fair

В правилах LOR нет ограничения на минимальный уровень IQ и грамотности

Когда/если я стану выдвигаться в модераторы, введение такого пункта обязательно будет в моей предвыборной программе. Не исключено, что даже прямо на обязательном фото в купальнике.

redgremlin ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.