【发布时间】:2022-09-29 01:53:21
【问题描述】:
调试帮助库允许从外部存储加载符号。您只需调用SymSetSearchPath,指定符号服务器,然后SymLoadModuleExW 从指定位置加载符号。
下载符号可能需要一些时间,我目前正在寻找一种取消下载符号的方法。但突然间我找不到任何 API。
有没有办法取消下载符号?
-
我怀疑有。您可以做的最好的事情是将符号加载卸载到您愿意放弃的牺牲执行线程上。由于\"All DbgHelp functions, such as this one, are single threaded\" 我无法想象如何在 API 中实现或公开操作的取消。
-
@IInspectable,我已经预料到了,但仍然希望我有机会。我目前正在使用一个单独的进程来下载符号并在下载取消时终止它。但我不喜欢这个解决方案,它看起来有点脏。
-
终止sacrificial process 远没有terminating a thread 脏。有时,当您处理并非实际设计的设计时,您将不得不在美学上做出妥协。
-
您不能取消加载模块,VisualStudio 也不能。