core dump
От: Аноним  
Дата: 11.09.12 07:50
Оценка:
подскажите пожалуйста где искать дамп упавшего приложения в ubuntu и инструмент, которым его можно прочитать

11.09.12 18:53: Перенесено модератором из 'C/C++. Прикладные вопросы' — Кодт
Re: core dump
От: TimurSPB Интернет  
Дата: 11.09.12 08:10
Оценка:
Здравствуйте, Аноним, Вы писали:

А>подскажите пожалуйста где искать дамп упавшего приложения в ubuntu и инструмент, которым его можно прочитать

Набери ulimit -a
Если там "core file size (blocks, -c) 0", то надо установить размер корок. "ulimit -c 100000"
Core лежат там же где и само приложение, либо в /var/crash. Инструмент — gdb.
Make flame.politics Great Again!
Re[2]: core dump
От: Аноним  
Дата: 11.09.12 08:21
Оценка:
Здравствуйте, TimurSPB, Вы писали:

TSP>Набери ulimit -a

TSP>Если там "core file size (blocks, -c) 0", то надо установить размер корок. "ulimit -c 100000"

так и есть, спасибо, буду смотреть
Re[2]: core dump
От: ilnar Россия  
Дата: 11.09.12 08:53
Оценка:
Здравствуйте, TimurSPB, Вы писали:

TSP>Здравствуйте, Аноним, Вы писали:


А>>подскажите пожалуйста где искать дамп упавшего приложения в ubuntu и инструмент, которым его можно прочитать

TSP>Набери ulimit -a
TSP>Если там "core file size (blocks, -c) 0", то надо установить размер корок. "ulimit -c 100000"
TSP>Core лежат там же где и само приложение, либо в /var/crash. Инструмент — gdb.

место может быть указано еще через переменную sysctl: kernel.core_pattern
Re[3]: core dump
От: Аноним  
Дата: 11.09.12 10:49
Оценка:
Здравствуйте, ilnar, Вы писали:

I>место может быть указано еще через переменную sysctl: kernel.core_pattern


прога упала, а в папке с бинарником и /var/crash нету, как посмотреть значение этой переменной?
что будет если core больше чем указанный ulimit ом размер? как его увеличить? пишет что operation not permitted
Re[4]: core dump
От: TimurSPB Интернет  
Дата: 11.09.12 11:15
Оценка:
А>прога упала, а в папке с бинарником и /var/crash нету, как посмотреть значение этой переменной?
А>что будет если core больше чем указанный ulimit ом размер? как его увеличить? пишет что operation not permitted
sudo ulimit -c 10000
Make flame.politics Great Again!
Re: core dump
От: MasterZiv СССР  
Дата: 11.09.12 11:23
Оценка:
> подскажите пожалуйста где искать дамп упавшего приложения в ubuntu

Либо в каталоге, где было запущено приложение (в текущем каталоге приложения),
либо в вашем HOME,
либо в /tmp

вроде бы не соврал. Почему он может быть НЕ в текущем каталоге:
может не быть места (а корки большие)
может не быть прав на запись в этот каталог,
может уже существует предыдущая корка, от предыдущего падения, а имя корки не
настроено как следует.

Ну и ещё -- чтобы корки вообще создавались, их надо включать (ulimit) --
по умолчанию они выключены после установки, не только в ubuntu.

и инструмент,
> которым его можно прочитать

Инструмент -- GDB.

gdb <path-to-the-binary> --core=<path-to-the-core>
Posted via RSDN NNTP Server 2.1 beta
Re[4]: core dump
От: MasterZiv СССР  
Дата: 11.09.12 11:33
Оценка:
> прога упала, а в папке с бинарником и /var/crash нету, как посмотреть значение
> этой переменной?

Она написана в системном конфигурационном файле, /etc/sysctl.conf

> что будет если core больше чем указанный ulimit ом размер? как его увеличить?

> пишет что operation not permitted

Надо иметь привилегии рута для этого.


Заодно пошлю тебе мои собственные напоминашки:

How to enable core dumps for everyone.
--------------------------------------
http://www.youtube.com/watch?v=98ICLve-YH8&amp;feature=g-vrec

in session:
ulimit -c unlimited
(but still can be overridden)
globally:
/etc/security/limits.conf
+ soft core unlimited
+ hard core unlimited
/etc/sysctl.conf
+ kernel.core_pattern = ./core-%e-%s-%u-%g-%p-%t

% specifiers :

%% — A single % character
%p — PID of dumped process
%u — real UID of dumped process
%g — real GID of dumped process
%s — number of signal causing dump
%t — time of dump (seconds since 0:00h, 1 Jan 1970)
%h — hostname (same as ’nodename’ returned by uname(2))
%e — executable filename
Posted via RSDN NNTP Server 2.1 beta
Re[4]: core dump
От: ilnar Россия  
Дата: 11.09.12 11:37
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Здравствуйте, ilnar, Вы писали:


I>>место может быть указано еще через переменную sysctl: kernel.core_pattern


А>прога упала, а в папке с бинарником и /var/crash нету, как посмотреть значение этой переменной?

А>что будет если core больше чем указанный ulimit ом размер? как его увеличить? пишет что operation not permitted

/sbin/sysctl -a | grep core_pattern


если превышает, кажется, обрезает. Для 0 просто не кладет
Re[5]: core dump
От: MasterZiv СССР  
Дата: 11.09.12 11:43
Оценка:
On 09/11/2012 03:37 PM, ilnar wrote:

> если превышает, кажется, обрезает. Для 0 просто не кладет


Обрезать корку бессмысленно -- либо всё, либо ничего.
А вот писать с меньшей детализацией -- запросто.
На сколько я помню, так и делается, если места не хватает.
Хотя я видал случаи, когда приложение падало, а корки просто не
было, не было места. Может и так бывает.
Posted via RSDN NNTP Server 2.1 beta
Re[2]: core dump
От: ДимДимыч Украина http://klug.org.ua
Дата: 11.09.12 16:40
Оценка:
Здравствуйте, TimurSPB, Вы писали:

TSP>"ulimit -c 100000"


Тогда уж "ulimit -c unlimited"

TSP>Core лежат там же где и само приложение,


Это вряд ли. По умолчанию в текущем каталоге.
Обязательно бахнем! И не раз. Весь мир в труху! Но потом. (ДМБ)
Re[3]: core dump
От: TimurSPB Интернет  
Дата: 11.09.12 16:59
Оценка:
ДД>Тогда уж "ulimit -c unlimited"
Ubuntu отказался так делать.
Make flame.politics Great Again!
Re[4]: core dump
От: ДимДимыч Украина http://klug.org.ua
Дата: 11.09.12 17:08
Оценка:
Здравствуйте, TimurSPB, Вы писали:

ДД>>Тогда уж "ulimit -c unlimited"

TSP>Ubuntu отказался так делать.

Подозреваю, потому что оболочка по умолчанию — гребаный dash.
Обязательно бахнем! И не раз. Весь мир в труху! Но потом. (ДМБ)
Re[5]: core dump
От: Аноним  
Дата: 12.09.12 21:45
Оценка:
Здравствуйте, MasterZiv, Вы писали:


>> прога упала, а в папке с бинарником и /var/crash нету, как посмотреть значение

>> этой переменной?

MZ>Она написана в системном конфигурационном файле, /etc/sysctl.conf


>> что будет если core больше чем указанный ulimit ом размер? как его увеличить?

>> пишет что operation not permitted

MZ>Надо иметь привилегии рута для этого.



MZ>Заодно пошлю тебе мои собственные напоминашки:


MZ>How to enable core dumps for everyone.

MZ>--------------------------------------
MZ>http://www.youtube.com/watch?v=98ICLve-YH8&amp;feature=g-vrec

MZ>in session:

MZ>ulimit -c unlimited
MZ>(but still can be overridden)
MZ>globally:
MZ>/etc/security/limits.conf
MZ>+ soft core unlimited
MZ>+ hard core unlimited
MZ>/etc/sysctl.conf
MZ>+ kernel.core_pattern = ./core-%e-%s-%u-%g-%p-%t

MZ>% specifiers :


MZ> %% — A single % character

MZ> %p — PID of dumped process
MZ> %u — real UID of dumped process
MZ> %g — real GID of dumped process
MZ> %s — number of signal causing dump
MZ> %t — time of dump (seconds since 0:00h, 1 Jan 1970)
MZ> %h — hostname (same as ’nodename’ returned by uname(2))
MZ> %e — executable filename

спасибо
прочитав ваше сообщение проверил ulimit, после закрытия сессии значение обнулилось :\

MZ>Она написана в системном конфигурационном файле, /etc/sysctl.conf

посмотрел, переменная не задана, в этом случае будет использован путь по-умолчанию? какой именно? выше было написано что текущий или /var/crash

MZ>/etc/sysctl.conf

MZ>+ kernel.core_pattern = ./core-%e-%s-%u-%g-%p-%t

это касается только имени core файла, чтоб после каждого падения все они были уникальны? без этого они будут создаваться с одним именем?
Re[6]: core dump
От: Аноним  
Дата: 12.09.12 21:59
Оценка:
А>прочитав ваше сообщение проверил ulimit, после закрытия сессии значение обнулилось :\

MZ>>Она написана в системном конфигурационном файле, /etc/sysctl.conf

А>посмотрел, переменная не задана, в этом случае будет использован путь по-умолчанию? какой именно? выше было написано что текущий или /var/crash

MZ>>/etc/sysctl.conf

MZ>>+ kernel.core_pattern = ./core-%e-%s-%u-%g-%p-%t

А>это касается только имени core файла, чтоб после каждого падения все они были уникальны? без этого они будут создаваться с одним именем?


туплю

чтобы параметры подхватились надо перезагрузить систему?
если сделать
kernel.core_pattern = var/crash/core-%e-%s-%u-%g-%p-%t
они все будут создаваться в /var/crash?

глобальные настройки имеют преимущество перед локальными? т.е. если заданы глобальные, но ulimit -a выдает
core file size (blocks, -c) 0
то core создастся?
Re[5]: core dump
От: Аноним  
Дата: 12.09.12 22:20
Оценка:
Здравствуйте, MasterZiv, Вы писали:

MZ>Заодно пошлю тебе мои собственные напоминашки:


сделал все описанные вами настройки, сделал программу, единственное назначение которой — упасть с segmentation fault, но core так и не нашел
Re[5]: core dump
От: Аноним  
Дата: 13.09.12 07:08
Оценка:
протупил с комментарием, строчку поменял, а комментарий остался
раскомментировал, перезапустил машину, core пробного бинарника создался

спасибо за ответы

какой командой можно подхватить новые настройки без перезапуска?
Re[6]: core dump
От: MasterZiv СССР  
Дата: 13.09.12 07:16
Оценка:
> MZ>Она написана в системном конфигурационном файле, /etc/sysctl.conf
> посмотрел, переменная не задана, в этом случае будет использован путь
> по-умолчанию? какой именно? выше было написано что текущий или /var/crash

Не знаю. Вообще обычно текущий каталог приложения.

> это касается только имени core файла, чтоб после каждого падения все они были

> уникальны? без этого они будут создаваться с одним именем?

Да. Без этого будут под одним, если в твоём дистрибутиве не задан конечно же
core_pattern. Обычно сейчас в дистрибутивах корки выключают, и они не настроены.
Posted via RSDN NNTP Server 2.1 beta
Re[7]: core dump
От: MasterZiv СССР  
Дата: 13.09.12 07:18
Оценка:
On 09/13/2012 01:59 AM, Аноним 164 wrote:

> чтобы параметры подхватились надо перезагрузить систему?


Да, или вызвать комманду переконфигурации ядра, была какая-то, но
я забыл. Можешь поискать. Или man почитай -- там наверняка написано.
man sysctl.conf

> если сделать

> kernel.core_pattern = var/crash/core-%e-%s-%u-%g-%p-%t
> они все будут создаваться в /var/crash?

да, только

kernel.core_pattern = /var/crash/core-%e-%s-%u-%g-%p-%t

ну и надо дать права всем пользователям туда.

> глобальные настройки имеют преимущество перед локальными? т.е. если заданы

> глобальные, но ulimit -a выдает
> core file size (blocks, -c) 0
> то core создастся?

Глобальные ограничивают локальные, на сколько я понимаю.
Posted via RSDN NNTP Server 2.1 beta
Re[6]: core dump
От: MasterZiv СССР  
Дата: 13.09.12 07:19
Оценка:
> MZ>Заодно пошлю тебе мои собственные напоминашки:
>
> сделал все описанные вами настройки, сделал программу, единственное назначение
> которой — упасть с segmentation fault, но core так и не нашел

Ну... блин... воспитывай её, себя, свою силу воли, читай маны.
Posted via RSDN NNTP Server 2.1 beta
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.