GNU 调试器不显示 C++ 中的所有数据;结构

发布于 2024-10-14 16:03:38 字数 274 浏览 4 评论 0原文

我一直将 WinPcap 库与 C++、Codelite 和 GNU 开发工具一起使用。我有一个描述 IP 标头的 IP4 结构。当我将数据包数据转换为结构时,我无法在调试器中看到所有数据,只能看到随机的数据位。例如,IP4 结构中的源地址和目标地址不会显示在调试器中,但当我运行 printf 语句时,它们显示得非常好。调试器为什么要这样做?结构体中的数据类型重要吗?我发现 printf 结构来确保数据有效很麻烦。 MinGW-4.4.1 和 GNU gdb (GDB) 7.1

I have been using the WinPcap library with C++, Codelite and GNU development tools. I have an IP4 structure describing an IP header. When I cast the packet data into the structure, I can't see all of it in the debugger, just random bits of data. For example, the source and destination addresses in the IP4 struct don't show up in the debugger, but when I run printf statements they show up perfectly fine. Why is the debugger doing this? Does the data type in the struct matter? I find it a hassle to printf the structs to make sure that the data is valid. MinGW-4.4.1 and GNU gdb (GDB) 7.1

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

暮倦 2024-10-21 16:03:38

也许,您应该使用 -gstabs+ gcc 选项重新编译 winpcap 库。这将允许您在调试器中查看库。此选项添加了只有 gdb 可以理解的调试符号(其他调试器会崩溃),但提供了查看代码的最全面的方法。

Probably, you should recompile the winpcap library with -gstabs+ gcc option. That will allow you to view the library in the debugger. This option adds debug symbols that are understood only by gdb (and other debuggers will crash), but provides the most comprehensive way to view the code.

べ繥欢鉨o。 2024-10-21 16:03:38

调试器关心数据结构的类型。仅当使用正确的数据类型时,您才会在调试器中看到完整的数据。

The debugger cares about the type of the data structure. You will see the full data in the debugger only if you use the correct data type.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文