当我在别人的机器上调试问题时,我做的第一件事就是查看modules窗口。按版本排序并看到一个不属于的dll可以帮助立即诊断配置问题,并节省许多调试痛苦。

下面介绍下各列的意思:

  • Name:
    模块名称。
  • Path:
    PE在文件系统上的位置。当您希望找到正确的PE以开始使用命令行工具进行查询时,这非常有用。
  • Optimized:这是针对托管代码的。它告诉您,当从MSIL转到目标平台本机指令集时,JIT编译器是否使用了优化。
  • User Code:在调试器选项中,它也被称为“只是我的代码”。如果您刚刚打开了我的代码,并且dll已优化或没有符号,我们将把它视为“非用户”代码。这意味着调用堆栈窗口中的所有帧都将折叠到一个[非用户代码]帧之后。默认情况下,这个特性是关闭的C++,以及VB和C用户配置文件。您可以在Tools/options/Debugging/Enable-Just-My-Code下切换它。“JMC”的全部分支比简单地隐藏调用堆栈帧要大得多。它包括遍历非用户代码,一直到代码开始运行的地方(并且执行得很快)。Mike Stall在博客中提到了其中一些。
  • Symbol Status:这将告诉您是否加载了符号。它还可以告诉您它们是否被剥离(实际上只是一个本地dll问题),或者devenv是否只是加载了导出。如果您正在执行崩溃转储调试,它还可以判断是否已找到二进制文件。右键单击上下文菜单,您可以加载符号,跳转到“符号设置…”对话框,还可以查看我们搜索符号的位置。
  • Symbol File:pdb文件所在的位置。上下文菜单项“符号加载信息…”可以告诉您调试器查找符号的位置。
  • Order:加载顺序
  • Version: dll的版本信息。这对于将相关组件组合在一起非常有用,并且通常会在有人的版本不好时向您显示。查看我们在visual studio版本字符串中保留的信息量。
  • Timestamp: 这是真正的交易-链接器(或.Net编译器)生成并将PE发送到世界上时的内部时间戳。
    看看这个:
    C:\Program Files\Internet Explorer>dir iexplore.exe
     Volume in drive C has no label.
     Volume Serial Number is 2CAB-3E87

    Directory of C:\Program Files\Internet Explorer

    08/04/2004  05:00 AM            93,184 IEXPLORE.EXE
    文件系统的时间戳是什么。如果你想知道它什么时候落在你的硬盘上就好了。对于确定它比过程中的所有相关组件都晚2天构建来说,没有那么有用。
    C:\Program Files\Internet Explorer>dumpbin /headers IEXPLORE.EXE | findstr time
            41107B81 time date stamp Tue Aug 03 23:00:33 2004
    这是你真正想要的。好...这是我真正想要的。这就是你在这个专栏里看到的。在VS之前的版本中,托管代码的时间戳是不太有用的文件系统时间戳。

  • Address:
    进程内存中PE的加载地址范围。最左边是一列没有标题的图标。如果图标看起来像一个小页面,则此地址是首选加载地址。如果它有一个带有红色感叹号的页面,那么这个PE在加载时被重新定位。如果你拥有这个PE,找到一个它自己的地方,它可能加载得更快。
  • Process:
    进程名:其中之一(本机或托管)。注意:如果您正在进行混合模式调试,那么许多dll实际上会在“模块”窗口中有行。一个用于“本机”dll加载。。。在某种程度上,一切都是土生土长的。一个用于托管dll加载。您可以知道它们是同一个dll,因为地址范围将匹配。基名可能不匹配,因为有时NGen的dll显示时,名称中添加了“ni”扩展名。(例如Microsoft.Build.utilities.ni.dll。)

通过单击并拖动列,可以更改“模块”窗口中列的顺序。还可以通过拖动边框来调整列的大小。另一个巧妙的技巧是通过标题栏上的上下文菜单将窗口设置为选项卡式文档。你可以在devenv的任何一个窗口中完成这项工作。

VS中的Modules窗口的更多相关文章

  1. (转载)JavaScript中的Window窗口对象

    (转载)http://www.ijavascript.cn/jiaocheng/javascript-window-65.html 例子: <html> <head> < ...

  2. C#在父窗口中调用子窗口的过程(无法访问已释放的对象)异常,不存在从对象类型System.Windows.Forms.DateTimePicker到已知的托管提供程序本机类型的映射。

    一:C#在父窗口中调用子窗口的过程(无法访问已释放的对象)异常 其实,这个问题与C#的垃圾回收有关.垃圾回收器管 理所有的托管对象,所有需要托管数据的.NET语言(包括 C#)都受运行库的 垃圾回收器 ...

  3. (转)C#在父窗口中调用子窗口的过程(无法访问已释放的对象)

    C#在父窗口中调用子窗口的过程: 1. 创建子窗口对象 2. 显示子窗口对象   笔者的程序中,主窗体MainFrm通过菜单调用子窗口ChildFrm.在窗体中定义了子窗口对象,然后在菜单项点击事件中 ...

  4. C#中关闭子窗口而不释放子窗口对象的方法

    1 在主窗口中实例化子窗口 在主窗口中实例化子窗口,而不是在按钮中实例化子窗口对象. Form2 f2 = new Form2(); 2 通过按钮来显示主窗口 在按钮中需要实现的是窗口的显示 priv ...

  5. DELPHI中MDI子窗口的关闭和打开

    DELPHI中MDI子窗口的关闭 和打开       Delphi中MDI子窗口的关闭方式默认为缩小而不是关闭,所以当你单击子窗口右上角的关闭按钮时会   发觉该子窗口只是最小化,而不是你预期的那样被 ...

  6. DELPHI中MDI子窗口的关闭 和打开

    Delphi中MDI子窗口的关闭方式默认为缩小而不是关闭,所以当你单击子窗口右上角的关闭按钮时会发觉该子窗口只是最小化,而不是你预期的那样被关闭.解决办法是在子窗口的OnClose事件处理过程中加入如 ...

  7. Android中简单活动窗口的切换--Android

    本例实现Android中简单Activity窗口切换:借助intent(意图)对应用操作(这里用按钮监听)等的描述,Android根据描述负责找对应的组件,完成组件的调用来实现活动的切换……案例比较简 ...

  8. Qt中的主窗口之菜单栏

    1.Qt中的主窗口 主窗口为建立应用程序用户界面提供了一个框架 Qt开发平台中直接支持主窗口的概念 QMainWindow是Qt中主窗口的基类 QMainWindow继承于QWidget是一种容器类型 ...

  9. MFC如何在有界面的应用程序中开启控制台窗口

    在有界面的应用程序中开启控制台窗口有时候非常有用,尤其是在调试多线程应用程序中,由于通过断点的方式调试程序时会导致线程挂起从而导致各种难于预料的结果.这时候就可以通过开启控制台窗口往窗口输出信息来查看 ...

随机推荐

  1. mac下mysql安装、卸载、基本操作

    2018-06-08 10:57:26 张广森 阅读数 6584更多 分类专栏: mac mysql   版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本 ...

  2. setInterval()调用其他函数时候报错

    (function(){ function shortcut() { // 配件优化 window.topValue = 0// 上次滚动条到顶部的距离 window.interval = null; ...

  3. linux kernel debug

    1. sysrq http://www.chinaunix.net/old_jh/4/902287.html 常用的SysRq命令(序列)  重启机器的SysRq命令序列是 k(SAK) s(sync ...

  4. JS 学习笔记

    在JS中两个对象不能用“==” 或者“===” 来比较,如果硬是要比较的话,始终返回的是false var x = new String("Bill"); var y = new ...

  5. JS中判断是中文数字的函数

    function checkcnnum(str) { ; const zh = ['零', '一', '二', '三', '四', '五', '六', '七', '八', '九','十','百','千 ...

  6. net core 记录自定义端口多个方式

    1.直接修改 . 2.代码定义 public class Program { public static void Main(string[] args) { CreateWebHostBuilder ...

  7. 解决Hangfire 导致服务器内存飙涨

    最近因为项目需要调度作业服务,之前看张队推荐过一篇https://www.cnblogs.com/yudongdong/p/10942028.html 故直接拿过来实操,发现很好用,简单.方便  执行 ...

  8. ListView 根据 文件路径 或 扩展名 显示系统文件图标

    private void 获取文件button1_Click(object sender, EventArgs e)         {            folderBrowserDialog1 ...

  9. jquery点击放大图片

    参考地址:https://blog.csdn.net/qq_42249896/article/details/86569636 一.应用场景:点击图片可以对图片进行放大显示. 二.实现代码: 说明:我 ...

  10. PIE截图方法的优化

    因为我们组的项目要通过截图获取数据,所以要经常使用截图工具,之前截图都是根据教程(https://www.cnblogs.com/PIESat/p/10243308.html)用的地图显示范围截图,而 ...