小编Jon*_*ams的帖子

在Windows调试器CDB中解析符号

我试图通过Windows调试器CDB在我附加的进程中调用C++函数.

该功能定义为:

void LockerImpl<IsForMMAPV1>::dump() const { ... }
Run Code Online (Sandbox Code Playgroud)

使用CDB命令在CDB中找到符号,如下所示

x mongod!*dump

00007ff6`2d006be0 mongod!mongo::LockerImpl<0>::dump (void)
00007ff6`2d006640 mongod!mongo::LockerImpl<1>::dump (void)

x /v mongod!mongo::LockerImpl<0>::dump
prv func   00007ff6`cfcf6be0  597 mongod!mongo::LockerImpl<0>::dump (void)          

x /v mongod!mongo::LockerImpl<1>::dump
prv func   00007ff6`cfcf6640  597 mongod!mongo::LockerImpl<1>::dump (void)
Run Code Online (Sandbox Code Playgroud)

调用这些符号会产生错误:

.call /v mongod!mongo::LockerImpl<0>::dump()
Run Code Online (Sandbox Code Playgroud)

无法解决'mongod!mongo :: LockerImpl <0> :: dump()'中的错误

我也尝试使用"装饰名称"调用它,但结果相同.其他变化也失败了:

.call /v @!("mongod!mongo::LockerImpl<1>::dump()")

.call /v mongod!mongo::LockerImpl<0>::dump(mongod!mongo::`anonymous namespace'::globalLockManager)
Run Code Online (Sandbox Code Playgroud)

无法解决'mongod!mongo :: LockerImpl <0> :: dump(mongod!mongo ::`anonymous namespace':: globalLockManager)'中的错误

我也尝试传递globalLockManager实例的地址,即

u mongod!mongo::getGlobalLockManager
mongod!mongo::getGlobalLockManager [c:\data\mci\c286593757a3793e6b070bc761c736b0\src\src\mongo\db\concurrency\lock_state.cpp @ 940]:
00007ff6`cfcf76a0 488d0539b0e301  lea     rax,[mongod!mongo::`anonymous namespace'::globalLockManager (00007ff6`d1b326e0)]

ln 0x00007ff6d1b326e0
(00007ff6`d1b326e0)   mongod!mongo::`anonymous namespace'::globalLockManager …
Run Code Online (Sandbox Code Playgroud)

c++ windows debugging windbg

9
推荐指数
0
解决办法
241
查看次数

如何确定是否已使用clang或gcc编译了UBSAN?

我们使用以下代码来确定是否-fsanitize=address在编译时为clang和gcc指定了.我们如何确定是否-fsanitize=undefined已指定?

    bool isSanitized = false;
#if defined(__has_feature)
#if __has_feature(address_sanitizer)
    isSanitized = true;
#endif
#elif defined(__SANITIZE_ADDRESS__)
    isSanitized = true;
#endif
Run Code Online (Sandbox Code Playgroud)

c++ clang address-sanitizer ubsan

6
推荐指数
1
解决办法
494
查看次数

标签 统计

c++ ×2

address-sanitizer ×1

clang ×1

debugging ×1

ubsan ×1

windbg ×1

windows ×1