如何使用gdb或delve将断点置于go方法中

时间:2019-03-23 07:35:30

标签: go gdb delve

我想调试go代码。我想在导入包中的方法(属于命名类型)上设置断点。我浏览了许多在线资料,他们只在文件的行号上设置了断点(例如:<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <link href="https://netdna.bootstrapcdn.com/twitter-bootstrap/2.3.2/css/bootstrap-combined.min.css" rel="stylesheet" /> <script src="https://netdna.bootstrapcdn.com/twitter-bootstrap/2.3.2/js/bootstrap.min.js"></script> <div class="container fill"> <div id="myCarousel" class="carousel slide"> <div class="carousel-inner"> <div class="active item"> <div class="fill" style="background-image:url('//placehold.it/1024x700/449955/FFF');"> <div class="container"> </div> </div> </div> <div class="item"> <div class="fill" style="background-image:url('//placehold.it/1024x700');"> <div class="container"> </div> </div> </div> <div class="item"> <div class="fill" style="background-image:url('//placehold.it/1024x700/CC1111/FFF');"> <div class="container"> </div> </div> </div> </div> <div class="pull-center"> <a class="carousel-control left" href="#myCarousel" data-slide="prev">‹</a> <a class="carousel-control right" href="#myCarousel" data-slide="next">›</a> </div> </div> </div>)。

我已经在'C'中进行了很多调试,在C中我在函数上设置了断点。可以进行这种调试吗?

我的主程序包中包含以下代码。

breakpoint a.go:15

我想给断点

1)函数clientContext := sdk.Context(fabsdk.WithUser("Admin"), fabsdk.WithOrg("ordererorg")),属于文件WithUser()中的软件包fabsdk
2)方法github.com/hyperledger/fabric-sdk-go/pkg/fabsdk/context.go属于程序包Context()中文件FabricSDK中的类型github.com/hyperledger/fabric-sdk-go/pkg/fabsdk/fabsdk.go

是否可以将断点置于方法fabsdkWithUser()或仅在文件的行号处允许的断点?我可以使用gdb或delve或任何其他调试器。

1 个答案:

答案 0 :(得分:1)

如果您拥有用于构建Go二进制文件的github.com/hyperledger/fabric-sdk-go/pkg/fabsdk/context.go版本(例如,在srcvendor目录中),则只需打开该文件,找到{ {3}}函数,并将断点放在第一行。