Visual Studio.如何构建DLL(在命令行中),通过附加到进程来调试工作
Visual Studio. How to build DLL (in commandline) that debugging works by attaching to process?
Visual Studio。如何建立DLL(在命令行),调试工作附加到进程?就我所知,这是我正在做的。
为了构建*.cpp文件,我放置了这些标志cl/Zi/Od
要制作DLL,我把这些link/DEBUG
我有几十个cpp文件,后来被制成DLL。但是附加到进程调试不起作用…
我要放更多的标志吗?如何检查DLL本身是否有足够的调试信息?
谢谢!
您有DLL的PDB文件吗?它是否包含所有objs的调试信息?除了下面提到的选项之外,您还使用cl/c编译文件吗?是编译的结果-在链接它们之前将objs复制到某个地方。pdb也复制了吗?
这些是导致你的问题的各种原因
- 您正在将objs复制到某个目录,然后再链接它们。链接时无法访问pdb。
- 链接前的一些清理导致PDB被删除。
假设你有三个文件a.p p, b.p p &c.p,这是你可以尝试的
cl /c /Zi /Fd c:mypathmydll.pdb a.cpp
cl /c /Zi /Fd c:mypathmydll.pdb b.cpp
cl /c /Zi /Fd c:mypathmydll.pdb c.cpp
link /DEBUG fullpathtoaa.obj fullpathtobb.obj fullpathtobc.obj whatever other options.
然后复制pdb和dll &试着调试一下
另一件事是,在大多数调试器中,你有一个对话框,显示所有已加载的二进制文件和相应的已加载的pdb。
例如。
Binary PDB
a.exe c:abca.pdb
b.dll c:pqrb.pdb
c.dll Default symbols loaded.
默认符号加载意味着它没有找到PDB。你可以右键点击etc &将调试器指向c.pdb
对应的PDB路径。在Visual Studio中,您将在"调试菜单选项->Windows->模块"中看到上述内容。"符号状态"列将显示PDB或"默认加载符号"的路径。它为你的dll显示了什么?
相关文章:
- 将类型化数组写入子进程 stdin 无法正常工作
- 设置 ACL,指定允许在请求队列上接收 I/O 的工作进程
- 读取进程内存无法正常工作,使用 UTF16 字符串
- Dll进程挂钩不工作
- 如何使本机Unix/Linux守护进程在Android上工作
- CPP GDB 崩溃,没有核心和 GDB 附加到工作进程
- MPI 从进程在不再工作时挂起
- 杀死一个Linux进程,停止它在Oracle数据库中的查询工作吗?
- 停止QThread工作进程处理即将删除的资源的正确方法是什么
- 当用std::system启动进程时,我可以指定一个工作目录吗
- c++代码工作正常,但进程以termination结束,而不是返回0
- 如何获取绑定到我正在运行的控制台窗口的进程列表,这些进程也可以在 Windows 2000 中工作?
- 子进程中的Execl仅在特定情况下工作
- 如何在C/ c++中使三个进程工作
- 通知父进程恢复工作
- 进程外内存堆围绕32位地址空间工作
- Visual Studio.如何构建DLL(在命令行中),通过附加到进程来调试工作
- Execl与wget,子进程,为什么它不工作
- 捕获外部进程的工作目录[Qt/WinAPI]
- 如何在Windows上获得进程工作目录