Здравствуйте, Аноним, Вы писали:
А>подскажите пожалуйста где искать дамп упавшего приложения в 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"
Здравствуйте, 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
А>прога упала, а в папке с бинарником и /var/crash нету, как посмотреть значение этой переменной? А>что будет если core больше чем указанный ulimit ом размер? как его увеличить? пишет что operation not permitted
sudo ulimit -c 10000
> подскажите пожалуйста где искать дамп упавшего приложения в ubuntu
Либо в каталоге, где было запущено приложение (в текущем каталоге приложения),
либо в вашем HOME,
либо в /tmp
вроде бы не соврал. Почему он может быть НЕ в текущем каталоге:
может не быть места (а корки большие)
может не быть прав на запись в этот каталог,
может уже существует предыдущая корка, от предыдущего падения, а имя корки не
настроено как следует.
Ну и ещё -- чтобы корки вообще создавались, их надо включать (ulimit) --
по умолчанию они выключены после установки, не только в ubuntu.
> прога упала, а в папке с бинарником и /var/crash нету, как посмотреть значение > этой переменной?
Она написана в системном конфигурационном файле, /etc/sysctl.conf
> что будет если core больше чем указанный ulimit ом размер? как его увеличить? > пишет что operation not permitted
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
Здравствуйте, Аноним, Вы писали:
А>Здравствуйте, ilnar, Вы писали:
I>>место может быть указано еще через переменную sysctl: kernel.core_pattern
А>прога упала, а в папке с бинарником и /var/crash нету, как посмотреть значение этой переменной? А>что будет если core больше чем указанный ulimit ом размер? как его увеличить? пишет что operation not permitted
/sbin/sysctl -a | grep core_pattern
если превышает, кажется, обрезает. Для 0 просто не кладет
On 09/11/2012 03:37 PM, ilnar wrote:
> если превышает, кажется, обрезает. Для 0 просто не кладет
Обрезать корку бессмысленно -- либо всё, либо ничего.
А вот писать с меньшей детализацией -- запросто.
На сколько я помню, так и делается, если места не хватает.
Хотя я видал случаи, когда приложение падало, а корки просто не
было, не было места. Может и так бывает.
Здравствуйте, 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&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 пробного бинарника создался
спасибо за ответы
какой командой можно подхватить новые настройки без перезапуска?
> MZ>Она написана в системном конфигурационном файле, /etc/sysctl.conf > посмотрел, переменная не задана, в этом случае будет использован путь > по-умолчанию? какой именно? выше было написано что текущий или /var/crash
Не знаю. Вообще обычно текущий каталог приложения.
> это касается только имени core файла, чтоб после каждого падения все они были > уникальны? без этого они будут создаваться с одним именем?
Да. Без этого будут под одним, если в твоём дистрибутиве не задан конечно же
core_pattern. Обычно сейчас в дистрибутивах корки выключают, и они не настроены.
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?
ну и надо дать права всем пользователям туда.
> глобальные настройки имеют преимущество перед локальными? т.е. если заданы > глобальные, но ulimit -a выдает > core file size (blocks, -c) 0 > то core создастся?
Глобальные ограничивают локальные, на сколько я понимаю.
> MZ>Заодно пошлю тебе мои собственные напоминашки: > > сделал все описанные вами настройки, сделал программу, единственное назначение > которой — упасть с segmentation fault, но core так и не нашел
Ну... блин... воспитывай её, себя, свою силу воли, читай маны.