求解一个小弟我觉的很奇怪的有关问题,求大侠指点
求解一个我觉的很奇怪的问题,求大侠指点
最近在测试一个东西,偶然间发现我从pdb中找出的函数地址或者map中的函数地址(两者相同)与实际程序中的函数地址不一样。但是调式的时候鼠标移至函数名,函数的地址又是和pdb中的一致。
例如:
int test(int x);
我用一个指针保存
int (*pFn)(int x);
pFn = test;
鼠标移至test显示的地址和pFn赋值的地址竟然不一致。
求解,是不是哪个编译选项没有设置?
这两个选项我已经设置
Randomized Base Address: /DYNAMICBASE:NO
Fixed Base Address: /FIXED:YES
------解决方案--------------------
楼主,你怎么返回函数地址的?
我点击上去看不到呀? method+ offset,显示这个了
函数指针的内容肯定能看到没问题。
------解决方案--------------------
VS的Debug函数函数的汇编第一句就是jmp XXXXXXXX。
调试器自动定位到XXXXXXXX,而函数地址返回的是保存jmp指令的地址
------解决方案--------------------
是不是你的PDB和应用程序是不同时期的? 重新清理编译下看看
------解决方案--------------------
是不是 ?
http://www.cppblog.com/shongbee2/archive/2010/12/11/136157.html?opt=admin
------解决方案--------------------
lz你看全了么
http://see.xidian.edu.cn/cpp/html/496.html
------解决方案--------------------


最近在测试一个东西,偶然间发现我从pdb中找出的函数地址或者map中的函数地址(两者相同)与实际程序中的函数地址不一样。但是调式的时候鼠标移至函数名,函数的地址又是和pdb中的一致。
例如:
int test(int x);
我用一个指针保存
int (*pFn)(int x);
pFn = test;
鼠标移至test显示的地址和pFn赋值的地址竟然不一致。
求解,是不是哪个编译选项没有设置?
这两个选项我已经设置
Randomized Base Address: /DYNAMICBASE:NO
Fixed Base Address: /FIXED:YES
pdb
函数地址
------解决方案--------------------
楼主,你怎么返回函数地址的?
我点击上去看不到呀? method+ offset,显示这个了
函数指针的内容肯定能看到没问题。
------解决方案--------------------
VS的Debug函数函数的汇编第一句就是jmp XXXXXXXX。
调试器自动定位到XXXXXXXX,而函数地址返回的是保存jmp指令的地址
------解决方案--------------------
是不是你的PDB和应用程序是不同时期的? 重新清理编译下看看
------解决方案--------------------
是不是 ?
http://www.cppblog.com/shongbee2/archive/2010/12/11/136157.html?opt=admin
------解决方案--------------------
lz你看全了么
http://see.xidian.edu.cn/cpp/html/496.html
------解决方案--------------------
004110DC jmp std::basic_ios<char,std::char_traits<char> >::tie (413FECh)
004110E1 jmp std::ios_base::width (413FAAh)
004110E6 jmp GetCurrentProcess (414058h)
004110EB jmp std::basic_streambuf<char,std::char_traits<char> >::sputc (413FC2h)
004110F0 jmp _encode_pointer (413584h)
004110F5 jmp std::ios_base::width (413FDAh)
004110FA jmp test (4114C0h) //这就是问题的答案