相关疑难解决方法(0)

我可以从Process Explorer可以使用的Delphi应用程序中发出调试符号吗?

我正在调查使用Delphi 2010编写的应用程序的性能问题.Delphi是否会发出Process Explorer在查看当前正在运行的线程时可以使用的符号,以便我可以看到函数名称?

我已经阻止了我的可执行文件的名称,但是你可以看到它只给了我函数的内存地址,如果可能的话我想要解析函数名(就像我对ole32.dll和ntdll一样). dll,因为我正在使用MS符号服务器).

我知道这可以用于VC++应用程序和WinDbg ......可以用Delphi应用程序和Process Explorer完成吗?

在此输入图像描述

delphi debugging winapi

18
推荐指数
1
解决办法
1142
查看次数

如何编写将崩溃并生成转储文件的示例代码?

我开始学习windbg并找到了这篇好文章 如何使用WinDbg来分析VC++应用程序的崩溃转储?

现在我想按照说明一步一步地做.这是问题所在:我需要编写一些可以立即崩溃的示例代码,并创建一些可以由windbg使用的转储文件.

怎么写这样的代码?

void Example4()
{
    int* i = NULL;
    *i = 80;
}
Run Code Online (Sandbox Code Playgroud)

上面的代码会立即崩溃; 但是,我不知道在哪里可以找到转储文件?

谢谢

c++ windbg visual-c++

16
推荐指数
1
解决办法
2万
查看次数

如何在WinDbg启动时使'.cmdtree'窗口停靠?

我跟随Tess Ferrandez的博客,在WinDbg中设置自定义主题.

我也开始使用-c".cmdtree c:\ mycmdtree.txt"自动启动WinDbg

这正确地打开我的cmdtree文件作为命令窗口,但我不能让它正确停靠.问题似乎是"命令"窗口只能在打开DMP文件后打开,但打开DMP文件会将您切换出"基础"工作区,因此不会保存对工作区的任何更改.

有任何想法吗?

windbg dmp

5
推荐指数
1
解决办法
1437
查看次数

如何在C#程序中使用SOS.dll进行自动调试?

为了追踪内存泄漏,我一直在使用Visual Studio和SOS.dll来提供对象堆的转储,并查看GCR射击特定对象的原因.

我开始使用AutoIt自动执行此过程来控制我的鼠标和键盘.这是我脚本第一部分的近似值:

在Visual Studio中,按F5开始执行
让程序完全加载
切换到Visual Studio并中断执行

将焦点切换到即时窗口
加载SOS.dll
调用!dumpheap -stat
将转储结果复制到剪贴板
粘贴到记事本中并另存为dump1.txt

恢复执行
多次执行漏洞操作
切换到Visual Studio并中断执行

将焦点切换到即时窗口
清除输出
调用!dumpheap -stat
将转储结果复制到剪贴板
粘贴到记事本中并另存为dump2.txt

运行Python脚本,比较两个转储并找到泄漏的对象

不过,我对目前的方法有些担忧.我不仅依赖于Visual Studio的安装,而且在脚本运行时,我不能使用鼠标或键盘而不会使自动化失序.

有没有办法在C#程序而不是Visual Studio中使用SOS.dll?理想情况下,此解决方案将附加到指定的进程并将结果输出!dumpheap -stat到文本文件,而无需自动化Visual Studio.

.net c# debugging memory-leaks sos

3
推荐指数
1
解决办法
2264
查看次数

标签 统计

debugging ×2

windbg ×2

.net ×1

c# ×1

c++ ×1

delphi ×1

dmp ×1

memory-leaks ×1

sos ×1

visual-c++ ×1

winapi ×1