Есть ли способ получить трассировку стека в виде строки?Трассировка стека как строка
Глядя на пакет отладки (https://golang.org/pkg/runtime/debug/), его можно распечатать только на стандартный выход.
Есть ли способ получить трассировку стека в виде строки?Трассировка стека как строка
Глядя на пакет отладки (https://golang.org/pkg/runtime/debug/), его можно распечатать только на стандартный выход.
runtime.Stack()
помещает отформатированную трассировку стека в комплект поставки []byte
. Затем вы можете преобразовать это в строку.
Вы также можете использовать debug.Stack()
, который выделяет достаточно большой буфер для хранения всего стека, помещает след в его использовании runtime.Stack
, и возвращает буфер ([]byte
).
Спасибо! Я должен был посмотреть на источник для PrintStack (https://golang.org/src/runtime/debug/stack.go). Функция 'debug.Stack' полагается на' runtime.Stack', но накладывает весь буфер. Я думаю, что в идеале это нужно использовать. Можете ли вы отредактировать свой ответ, и я буду отмечать его как таковой? –