关于用MAP文件定位异常行
我的工程生成了map文件,异常不定时发生,一天或者几天才发生一次,我不知道出错在什么地方,出错后,我看系统日志的内存地址是0x00008432,这个地址对应我的map文件中的实际地址是不是该0x00408432呢?
我假设是这样的,我去map中找该地址就应该是出在函数SendWork中,对吧;
然后计算偏移位置用
0x00408432-004078a0=B92
如果还要减基址0x1000这样岂不是为负数了吗?这样计算不是有问题了吗?
下面是我的map文件部分,望大师协助分析下。
Address Publics by Value Rva+Base Lib:Object
0001:00006740 ?Init@@YAXPAUDeviceID_t@@@Z 00407740 f Send_Sub.obj
0001:00006810 ?DrawMain_Info@@YAXPAUSEND_STRUCT@@@Z 00407810 f Send_Sub.obj
0001:000068a0 ?SendWork@@YAXPAUSEND_STRUCT@@PAUAcs_Evt_t@@@Z 004078a0 f Send_Sub.obj
0001:00007890 ?ReciveWork@@YAXPAUSEND_STRUCT@@@Z 00408890 f Send_Sub.obj
Line numbers for .\Release\Send_Sub.obj(C:\test\Send_Sub.cpp) segment .text
163 0001:000028d0 165 0001:000028e2 167 0001:000028ec 169 0001:00002932
170 0001:00002952 174 0001:00002972 176 0001:0000298e 177 0001:000029a6
178 0001:000029b0 180 0001:000029ba 182 0001:000029d7 186 0001:000029ea
188 0001:00002a0c 190 0001:00002a1f 192 0001:00002a37 193 0001:00002a4f
.............................................................................
............................................................................
4359 0001:0000b4c0 4368 0001:0000b4ce 4371 0001:0000b4d0 4373 0001:0000b4df
4376 0001:0000b4e0 4389 0001:0000b4f1 4392 0001:0000b509 4394 0001:0000b525
4398 0001:0000b530 4399 0001:0000b546 4407 0001:0000b56a 4408 0001:0000b57b
4412 0001:0000b590 4413 0001:0000b5a7 4414 0001:0000b5ee