Что хороший путь состоит в том, чтобы вывести файл ядра Linux из процесса?

addValueEventListener является асинхронным и возвращается немедленно. Обратный вызов, который вы передали ему, будет вызываться через некоторое неизвестное время, когда данные будут доступны. Это означает, что ваш метод retrieve также немедленно возвращается с начальным значением trips, которое является пустым. Чтобы сформулировать это по-другому - при первом вызове retrieve он возвращает пустой список объектов Trip.

Если вы хотите, чтобы ваш ListView отображал данные, вам следует вместо этого установить его адаптер после того, как вы собрали все эти поездки. Это означает, что вы должны сделать это внутри обратного вызова addValueEventListener.

13
задан Jeremy Mullin 25 November 2008 в 20:50
поделиться

6 ответов

Google имеет библиотеку для генерации coredumps из рабочего процесса, названного google-coredumper. Это должно проигнорировать ulimit и другие механизмы.

Документация для вызова, который генерирует базовый файл, здесь. Согласно документации, кажется, что выполнимо генерировать базовый файл в обработчике сигналов, хотя это, как гарантируют, всегда не будет работать.

9
ответ дан 1 December 2019 в 21:25
поделиться

Я видел сообщение pmbrett и думал "эй, это прохладно", но не могло найти что утилита где угодно в моей системе (хинду).

Таким образом, я сделал немного подталкивания и обнаружил, что GDB имеет эту опцию в нем.

gdb --pid=4049 --batch -ex gcore

Казалось, хорошо работал для меня.

Не однако очень полезный, потому что это захватывает очень самую низкую функцию, которая использовалась в то время, но это все еще делает хорошее задание вне того (Без ограничений памяти, Выведенных 350M снимок процесса Firefox с ним)

5
ответ дан 1 December 2019 в 21:25
поделиться

Некоторые возможные solutions^W способы справиться с этой ситуацией:

  1. Зафиксируйте ulimit!!!
  2. Признайте, что Вы не получаете базовый файл и работаете внутри gdb, заданный сценарием, чтобы сделать "поток, который все применяют купленный" на SIGSEGV
  3. Признайте, что Вы не получаете базовый файл и получили отслеживание стека из приложения. Статья Stack Backtracing Inside Your Program довольно стара, но это должно быть возможно в эти дни также.
3
ответ дан 1 December 2019 в 21:25
поделиться

Можно также изменить ulimit () из программы с setrlimit (2). Как команда оболочки ulimit, это может понизить пределы или повысить их настолько трудно, как жесткий предел позволяет. При запуске setrlimit () для разрешения базового дампа, и Вы в порядке.

2
ответ дан 1 December 2019 в 21:25
поделиться

система ("уничтожают-6"),

Я дал бы ему попытку, если Вы все еще ищете что-то

0
ответ дан 1 December 2019 в 21:25
поделиться

Попытайтесь использовать команду Linux gcore

использование: gcore [-o имя файла] pid

Необходимо будет использовать систему (или должностное лицо) и getpid () для создания правильной командной строки для вызова его из процесса

4
ответ дан 1 December 2019 в 21:25
поделиться
Другие вопросы по тегам:

Похожие вопросы: