REST API ошибок трассировки стека

Как показать информацию трассировки стека, когда есть ошибка в API (написано в nodejs)? Я использовал curl для публикации сообщения между прочим.

Я попробовал параметр cli узла, --stack-trace-limit, но ничего не показывается, кроме недружелюбного сообщения об ошибке одного лайнера. Я мог бы использовать консоль. * И строки отладчика в коде, но это слишком много времени. Я попробовал нод-инспектор. Хотя у него приятный графический интерфейс, он довольно сильно падает. Я считаю, что должен быть более простой способ?

Спасибо. J

1 ответ

Решение

Не видя некоторого кода, трудно ответить конкретно. Однако вы также можете получить трассировку стека, используя

var stack = new Error().stack

Полезные модули

  1. Memwatch Полезно для вывода различий в куче в различных местах вашего кода
  2. узел heapdump Позволяет отправить kill -SIGUSR2 [pid] в работающий процесс узла для создания heapdump, который затем можно просмотреть в инструментах разработчика Chrome, открыв вкладку профилей и щелкнув правой кнопкой мыши на левой панели и выбрав Загрузить профиль
  3. Стандартный отладчик v8 запускает ваш процесс с node debug module_name.js Тогда где угодно debugger; утверждение в вашем коде вызовет отладку
  4. node-webkit-agent Инструмент профилирования кучи и процессора, который использует интерфейс инструментов разработчика Chrome для профилирования вашего приложения node.js. Отладка в настоящее время не поддерживается, но, видимо, уже в пути
  5. Длинные трассировки стека Иногда вы можете получить ошибки, с которыми не связан ни один стек. У меня была эта проблема с http-запросами иногда. Лонгджон исправляет эту проблему
  6. node-ofe Автоматически генерирует дамп кучи, когда ваше приложение аварийно завершает работу.

Структура кода

То, как вы пишете асинхронный код node.js, может сильно повлиять на простоту отладки. Именованные функции - это хорошо, анонимные вложенные функции - плохо. Посетите http://callbackhell.com/ для хорошего руководства о том, как написать чистый отлаживаемый код node.js.

Другие вопросы по тегам