Windbg:如何在C ++函数的重载之一上设置断点?

时间:2020-03-06 15:01:07  来源:igfitidea点击:

我有两个c ++函数的重载,并且我想在其中之一上设置一个断点:

0:000> bu myexe!displayerror
Matched: 00000000`ff3c6100 myexe!displayError (int, HRESULT, wchar_t *)
Matched: 00000000`ff3c60d0 myexe!displayError (int, HRESULT)
Ambiguous symbol error at 'myexe!displayerror'

哎呀,我可以在所有重载上设置断点,但是我似乎无法弄清楚如何:

0:000> bu myexe!displayerror*
Matched: 00000000`ff3c6100 myexe!displayError (int, HRESULT, wchar_t *)
Matched: 00000000`ff3c60d0 myexe!displayError (int, HRESULT)
Ambiguous symbol error at 'myexe!displayerror*'

解决方案

尝试:

bu 0xff3c6100

如果我没记错的话,WinDbg也允许按地址设置断点。

我们是否尝试过" bm myexe!displayerror *"?

bm myexe!displayerror

这将设置所有所有重载的断点,而不是使用bc清除不需要的重载

bc 1-3

或者只是禁用它们

bd 1-3

bm的问题在于它产生的断点有时无法评估并触发中断。有时候很烦。