【发布时间】:2014-02-01 11:30:37
【问题描述】:
问题:在项目中,我们有特定于框架/动态库的本地化功能。也就是说它们具有相同的名称,但从不同的包/文件夹中获取资源
我想调用特定库中的函数,类似于:
lldb> p my_audio_engine.framework::GetL10nString( stringId );
lldb> expr --shlib my_audio_engine.framework -- GetL10nString();
lldb> p my_audio_engine`L10N_Utils::GetString(40000)
但所有这些变体都不起作用。
在标签中添加 gdb 希望相同的语义(如果存在)也适用于 lldb。
【问题讨论】:
-
如何在代码中引用不同的同名函数?
-
lldb 足够聪明。也就是说,如果有两个函数:void fn(int) 和 void fn(int, int),那么如果我调用 fn(10),将调用第一个版本,如果我调用 >p fn(10,20) 第二个版本将被调用。铸造也可以,即 p (void()(int))&fn (void ()(int)) $0 = 0x00000001000007d0 (test
fn(int) at main.cpp:15); p (void(*)(int, int))&fn (void (*)(int, int)) $1 = 0x0000000100000800 (testfn(int, int) at main.cpp :20)