有没有理由在安装程序中不包含pdb文件?我有C ++日志功能,可以遍历堆栈,并报告行号和文件名。如果我的客户可以向我发送包含此信息的日志,那就太棒了。但是,他们需要pdb文件。部署它们是否有任何缺点(除了安装程序包大小)?
答案 0 :(得分:3)
两个可能的缺点:
如果那些不打扰你,我看不出任何不利因素。请注意,你并不需要这个。正如John Seigel所说,你应该能够从崩溃转储中重建堆栈跟踪。
答案 1 :(得分:2)
您应该能够在没有PDB文件的情况下获得“行号和文件名”。尝试使用_FUNCTION_,_LINE_和_FILE_。在这里阅读更多内容:
答案 2 :(得分:0)
您的错误处理代码可以创建小型转储,而不是运送PDB文件。见功能MiniDumpWriteDump。 Minidumps非常小,可以通过电子邮件轻松发送。 如果从客户那里获得转储文件,则只需要PDB文件。
恕我直言,在您的应用程序中捕获断言或意外错误,自动创建一个小型转储并让您的应用程序将此转储发送给您是一个非常好的主意。如果您真的很喜欢,那么您可以构建一个自动错误跟踪数据库,其中存储了这些小型转储。然后,您可以找出哪些错误最常见,需要先修复。无意中,您会发现很多关于运行应用程序的环境。哪些操作系统版本最常见,哪些病毒扫描程序会挂钩您的应用程序等。
显然,这需要用户的同意,因为minidump可能包含私人信息(但堆栈上的信息很少)。实现可以捕获例如堆栈溢出异常的工作错误处理程序并非易事。