gpt4 book ai didi

c++ - 从客户端应用程序调试动态库

转载 作者:可可西里 更新时间:2023-11-01 10:00:35 29 4
gpt4 key购买 nike

假设我在 Debug模式下编译了一个动态库(Windows DLL 和/或 Linux 共享对象文件,.so),供动态链接到它的客户端应用程序使用。我的源代码可供客户端应用程序开发人员使用。

我需要对以下调试场景进行一些说明。我一直理解/假设为了让客户端应用程序调试到我的库中(例如,为了让客户端应用程序开发人员在调试时进入我的源代码,比如在 MS VC++ 中使用 F10),他们必须实际构建一个我的库本身的本地拷贝(可以访问我的源代码),或者至少可以在本地访问我的源代码而无需构建它(不确定这是否足够?)。

我说得对吗?换句话说,如果客户端应用程序动态链接到我的应用程序,我认为仅仅提供带有调试符号的库(MS VC++ 中的 PDB 文件)是不够的,而我的应用程序本身是动态构建的。感谢是否有人可以帮助我解决这个问题?在Linux中情况如何?我的理解又和上面一样。现在,如果我编译了一个静态库(Windows LIB 和/或 Linux 库 .a);我的理解是他们不需要我的源代码的本地构建拷贝(我还没有尝试过这个)?

我的前提是否正确?如果没有,有人可以提供一些详细的解释,最好是举个例子吗?感谢您的输入。

最佳答案

应要求,这是我的评论作为答复。由于它只解决 Windows 方面的问题,任何拥有 Linux(或 Mac!)部分答案的人都可以自由编辑它(我已将其标记为社区维基答案)。


对于 VC++,调试构建 DLL + 匹配的 PDB + 匹配的源是你所需要的。困难的部分是让它们全部匹配 ;-)

此外,如果源文件与编译 DLL 时的路径相同,则工作会更顺利,但如果有源文件,Visual Studio 也完全能够提示您手动浏览到源文件。

关于c++ - 从客户端应用程序调试动态库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11354535/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com