PDA

Просмотр полной версии : [Вопрос] Sentry client



pawnoholic
26.11.2018, 13:57
Хочу попробовать сделать реализацию sentry на pawn, есть ли вообще возможности реализовать хотя бы 50% функционала?

Реализация Stacktrace (https://docs.sentry.io/development/sdk-dev/interfaces/stacktrace/) под большим вопросом.

Daniel_Cortez
26.11.2018, 18:25
Зачем вообще пытаться прикрутить к серверу Sentry, если можно банально обойтись Crashdetect'ом? Вызов пользовательского обработчика ошибок? Есть. Трассировка стека? Тоже есть. Остаётся только организовать саму обработку ошибок.

#include <crashdetect>

public OnRuntimeError()
{
new backtrace[1024];
GetBacktrace(backtrace);
// Код отправки на E-Mail, сохранения в лог ошибок и т.д.
}

pawnoholic
27.11.2018, 11:42
Зачем вообще пытаться прикрутить к серверу Sentry, если можно банально обойтись Crashdetect'ом? Вызов пользовательского обработчика ошибок? Есть. Трассировка стека? Тоже есть. Остаётся только организовать саму обработку ошибок.

Удобно в реал тайме получать сообщения об ошибках, просмотр статистики через дашборд и т.д.

Больше всего интересует как можно сделать захват куска исходного кода, т.е. Stacktrace.


{
"pre_context": [
"line1",
"line2"
],
"context_line": "line3",
"post_context": [
"line4",
"line5"
]
}

Daniel_Cortez
28.11.2018, 13:00
Удобно в реал тайме получать сообщения об ошибках, просмотр статистики через дашборд и т.д.

Больше всего интересует как можно сделать захват куска исходного кода, т.е. Stacktrace.


{
"pre_context": [
"line1",
"line2"
],
"context_line": "line3",
"post_context": [
"line4",
"line5"
]
}
Как вариант - получить в текстовом виде трассировку с помощью того же CrashDetect и распарсить её.
Если же речь о содержимом строк с исходным кодом, то для этого можно скомпилировать скрипт с полной отладочной информацией (ключ "-d2"), а затем из этой информации вытаскивать строки кода с помощью функций из amxdbg.h (https://github.com/Daniel-Cortez/pawn-3.2-plus/blob/master/source/amx/amxdbg.h). Но я бы не советовал так делать: если *.amx попадёт в чужие руки, по полной отладочной инфе можно будет восстановить весь исходный код, вплоть до названий переменных, потеряются только комментарии.