![](/img/trans.png)
[英]Visual Studio 2010 C# Debugger Does not Stop on New Breakpoints
[英]Why does Visual Studio 2010 C# debugger show different order than in class definition?
我们正在构造一个字节缓冲区,以便通过.Net Socket Send()方法发送到某些工厂设备,因此字节顺序很重要。 但是我注意到,即使使用“ [StructLayout( LayoutKind.Sequential ”“),Visual Studio 2010调试器也会显示与我指定的顺序不同的顺序。例如,
[StructLayout(LayoutKind.Sequential, Pack = 1)]
public class K_NEWFILEGET_START
{
public K_HEADER Header = new K_HEADER();
[System.Runtime.InteropServices.MarshalAs(UnmanagedType.ByValArray, SizeConst = 32)]
public byte[] fileName = new byte[32];
public globals.INT2_Type crc = new globals.INT2_Type();
}
然后我做一个
K_NEWFILEGET_START msg = new K_NEWFILEGET_START();
在调试器中显示。 。 。
- msg {xxxxx.yyy.K_NEWFILEGET_START}
+ crc {xxxxx.globals.INT2_Type}
+ fileName {byte[32]}
+ Header {xxxxx.yyy.K_HEADER}
(专有内容xxx'出来)在本示例中,它的顺序相反,但在其他示例中,调试器中显示的顺序以不同的方式加扰。
如果我更进一步,并使用网络嗅探器检查网络上的实际输出,则似乎是我指定的正确顺序,因此调试器似乎是问题所在,但我希望正确看到它。 顺便说一句,我确实在调试器选项中设置了“在变量窗口中显示对象的原始结构”。 提前致谢!
调试器按字母顺序显示成员。
在调试其中包含很多内容的大型结构时,这通常更方便。
当然看起来是按字母顺序排列的...
如果网络嗅探器正确显示它,则调试器很可能只是通过按字母顺序排列变量名来尝试“帮助”您,以便您可以更轻松地找到它们。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.