Как поставить точку останова на метод go с помощью gdb или delve

Я хочу отлаживать код go. Я хочу поставить точку останова на метод (принадлежащий именованному типу) в импортированном пакете. Я просмотрел много онлайн-материалов, где точки останова ставятся только на номер строки в файле (например: breakpoint a.go:15).

Я сделал много отладки в «C», где я поставил точки останова на функции. Возможна ли такая отладка в go??

У меня есть следующий код в моем основном пакете.

clientContext := sdk.Context(fabsdk.WithUser("Admin"), fabsdk.WithOrg("ordererorg")).

Я хочу поставить точки останова на

1) функция WithUser(), принадлежащая пакету fabsdk в файле github.com/hyperledger/fabric-sdk-go/pkg/fabsdk/context.go.
2) метод Context() принадлежащий типу FabricSDK в файле github.com/hyperledger/fabric-sdk-go/pkg/fabsdk/fabsdk.go в пакете fabsdk.

Можно ли поставить точки останова на метод WithUser() и context() или точки останова разрешены только на номер строки в файле?? Я мог бы использовать либо gdb, либо delve, либо любой другой отладчик.


person Vignesh k    schedule 23.03.2019    source источник


Ответы (1)


Если у вас есть версия github.com/hyperledger/fabric-sdk-go/pkg/fabsdk/context.go, которая использовалась для сборки вашего бинарного файла Go — например, в вашем каталоге src или vendor — просто откройте этот файл, найдите WithUser и поставьте точку останова на ее первой строке.

person Vasiliy Faronov    schedule 24.03.2019
comment
Василий спасибо за предложение/ответ. Нам нужно указать путь символа в точке останова, например: b github.com/hyperledger/fabric-sdk-go/pkg/fabsdk.WithUser - person Vignesh k; 24.03.2019