Де я можу знайти основний дамп у ubuntu 16.04LTS?


14

У мене є програма C ++, яка виконує те, що вона повинна робити, але повинна бути певна проблема з покажчиком, оскільки вона виходить з ладу в кінці і створює основний дамп. Моя проблема полягає в тому, що я не можу знайти основний файл, тому не можу його налагодити.

я намагався

ulimit -c unlimited
ulimit -a

і тепер розмірність файлу встановлена ​​необмеженою, але ядро ​​досі не можу знайти. Я намагався в кожній папці, написаній тут, але все ще здається, що не створено жодного основного файлу.

Де я можу його знайти?


Поточний каталог, або/var/crash
waltinator

4
Хоча це правда в більшості випадків @waltinator, іноді це потрібно перевірити /var/log/apport.log, оскільки в сучасних версіях Ubuntu використовується Apport, який може заважати демпінгу ядра не очевидними способами. Докладнішу інформацію див. У розділі stackoverflow.com/a/18368068/1772379 .
Бен Джонсон

Відповіді:


12

У Ubuntu основними дампами обробляються Apport і вони можуть бути розміщені в /var/crash/. Але він відключений за замовчуванням у стабільних випусках.

Щоб увімкнути Apport, запустіть: sudo systemctl enable apport.serviceабо sudo service apport start.


Щоб відключити, запустіть: sudo systemctl disable apport.serviceабо sudo service apport stopдля того, щоб повернутися до звичайного методу демпінгу ядра. Див.: Як увімкнути або вимкнути Apport? .

Щоб остаточно відключити, відредагуйте /etc/apport/crashdb.confфайл та прокоментуйте такий рядок:

'problem_types': ['Bug', 'Package'],

додавши хеш-символ ( #) на початку рядка.

Щоб відключити звіт про аварійне завершення (повернення до звичайного), видаліть хеш-символ (такий же, як був).


Ви також можете перевірити core_pattern, як ядра обробляються ядрами:

$ cat /proc/sys/kernel/core_pattern
|/usr/share/apport/apport %p %s %c

Тож навіть основні файли, відключені програмою ulimit, apportвсе одно захоплюють збій.

Дивіться також:


4

Для цих googlin ': (у моєму випадку - Ubuntu 16.04 та 18.04 та спеціальний додаток) /var/crashвсе ще було порожнім, тому швидкий спосіб впоратися зі створенням ядра (за умови, що ви, наприклад, використовуєте відповідне налаштування ulimit вбудований ),

sudo sysctl -w kernel.core_pattern=core.%u.%p.%t # to enable core generation

і

systemctl restart apport # to restore default apport settings
# which, by the way, were "|/usr/share/apport/apport %p %s %c %d %P" (without quotes)


Джерела:


Простий, прямолінійний, спрацьований.
Taekahn
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.