我们有来自客户的故障转储(用户模式),该客户在我们的应用程序中遇到网络问题。在故障转储中,我可以看到所有为网络打开的句柄。
问题:如何调查与句柄关联的套接字?
Windbg !handle 命令不显示有关连接属性的信息。我是说
- 套接字状态
- 绑定/远程IP,
- 绑定/远程端口
- 待处理的数据缓冲区(会很棒)等。
套接字句柄是内核句柄(这就是为什么您可以向它们写入文件),仅使用用户模式转储,您无法从中获取任何信息。事实上,您询问的大多数信息(尤其是待处理的数据缓冲区)几乎肯定会在内核模式下进行管理。
如果您想保留此信息,则必须对应用程序进行检测以将套接字创建参数保存在用户模式内存中。
10年后...
但是对于基于 C# 的套接字泄漏 -
将转储加载到 Windbg 中并运行