Advanced Debugging
About AdvDbg Consult Train Services Products Tools Community Contact  
欢迎光临 高端调试 登录 | 注册 | FAQ
 
  ACPI调试
Linux内核调试
Windows内核调试
 
  调试战役
调试原理
新工具观察
 
  Linux
Windows Vista
Windows
 
  Linux驱动
WDF
WDM
 
  PCI Express
PCI/PCI-X
USB
无线通信协议
 
  64位CPU
ARM
IA-32
  CPU Info Center
 
  ACPI标准
系统认证
Desktop
服务器
 
  Embedded Linux
嵌入式开发工具
VxWorks
WinCE
嵌入式Windows
 
  格蠹调试套件(GDK)
  格蠹学院
  小朱书店
  老雷的微博
  《软件调试》
  《格蠹汇编》
  《软件调试(第二版)》
沪ICP备11027180号-1

C/C++本地代码调试

帖子发起人: HiJack   发起时间: 2014-11-21 15:40 下午   回复: 6

Print Search
帖子排序:    
   2014-11-21, 15:40 下午
lhwqqq 离线,最后访问时间: 2022/10/20 7:57:16 HiJack

发帖数前50位
注册: 2013-12-27
发 贴: 21
Embarrassed [:$] 张老师,请教一个问题
Reply Quote
今天在分析一个dump时,遇到一个奇怪的问题,烦请张老师帮忙看一下。

ExceptionAddress: 08ff0bff (activity!ActivityUIManager::onAnnualCeremonyZhanbaoMsg+0x000000b5)
   ExceptionCode: c0000005 (Access violation)
   ExceptionFlags: 00000000
   NumberParameters: 2
   Parameter[0]: 00000001
   Parameter[1]: 46a0c575
Attempt to write to address 46a0c575

LAST_CONTROL_TRANSFER:  from 08fd973c to 08ff0bff

FOLLOWUP_IP: 
activity!ActivityUIManager::onAnnualCeremonyZhanbaoMsg+b5
08ff0bff ff8d4decc645    dec     dword ptr [ebp+45C6EC4Dh]

STACK_TEXT:  
00d9d928 08fd973c  05da4750  07550678 00d9d990 activity!ActivityUIManager::onAnnualCeremonyZhanbaoMsg+0xb5 
00d9d944 08ff3f0a   05da4750  0000000a  09022088 activity!ActivityModule::createInstance+0x31 
00d9d95c 01675bcb 05da4750  00e9fd50   05dc8bcc  activity!OnLoadMusicAddon+0x1d 

这是windbg给出的信息,但我在onAnnualCeremonyZhanbaoMsg上反汇编,发现onAnnualCeremonyZhanbaoMsg+0xb5 这个偏移不是一条完整的汇编指令,完整的指令是
 439 08ff0bfb e89d69feff      call    activity!QMap<QString,QVariant>::insert (08fd759d)
 439 08ff0c00 8d4dec           lea     ecx,[ebp-14h]
 439 08ff0c03 c645fc03        mov     byte ptr [ebp-4],3

也就是说,指令截断了,所以FOLLOWUP_IP才会显示成
activity!ActivityUIManager::onAnnualCeremonyZhanbaoMsg+b5
08ff0bff ff8d4decc645    dec     dword ptr [ebp+45C6EC4Dh]

这是怎么回事,是windbg的bug吗?谢谢张老师




  
 






IP 地址: 已记录   报告
   2014-11-23, 00:14 上午
lhwqqq 离线,最后访问时间: 2022/10/20 7:57:16 HiJack

发帖数前50位
注册: 2013-12-27
发 贴: 21
Indifferent [:|] Re: 张老师,请教一个问题
Reply Quote
没人遇到过吗
IP 地址: 已记录   报告
   2014-11-24, 17:13 下午
Raymond 离线,最后访问时间: 2020/7/3 3:40:25 格蠹老雷

发帖数前10位
注册: 2005-12-19
发 贴: 1,303
Re: 张老师,请教一个问题
Reply Quote
看起来确实是程序指针指错位了,可能是溢出导致的


IP 地址: 已记录   报告
   2014-11-26, 17:08 下午
lhwqqq 离线,最后访问时间: 2022/10/20 7:57:16 HiJack

发帖数前50位
注册: 2013-12-27
发 贴: 21
Indifferent [:|] Re: 张老师,请教一个问题
Reply Quote
那是什么溢出导致eip错位呢?感觉不像是覆盖返回地址的溢出
IP 地址: 已记录   报告
   2015-01-02, 15:01 下午
qstesiro 离线,最后访问时间: 2015/4/15 5:07:35 qstesiro

发帖数前75位
注册: 2014-04-16
发 贴: 18
Re: 张老师,请教一个问题
Reply Quote
通常能够导致ip不正确都是因为栈损,而栈损一般分三种:
1、错误约定(调用约定不一致);
2、溢出;
3、脏数据(并发访问导致栈数据被破坏);
现在这个情况ip比正常的返回地址少了一个字节,因为从程序来看是一是同一模块所有基本可以排除错误约定问题,你可以看看那个insert函数中是否有溢出或是分析一下程序是对于那个map有并发操作,如果问题可以复现,可以对于通过对于特定的位置下数据断点,看是那部分代码对于栈上的返回地址作过修改;

IP 地址: 已记录   报告
   2015-05-11, 11:33 上午
lhwqqq 离线,最后访问时间: 2022/10/20 7:57:16 HiJack

发帖数前50位
注册: 2013-12-27
发 贴: 21
Re: 张老师,请教一个问题
Reply Quote
谢谢,又学到东西了
IP 地址: 已记录   报告
   2015-05-12, 08:59 上午
xadvdbg 离线,最后访问时间: 2015/4/16 14:41:14 goandgo

发帖数前50位
注册: 2015-04-07
发 贴: 24
Re: 张老师,请教一个问题
Reply Quote
学习到新东西了
IP 地址: 已记录   报告
高端调试 » 软件调试 » C/C++本地代码调试 » Re: 张老师,请教一个问题

 
Legal Notice Privacy Statement Corporate Governance Corporate Governance
(C)2004-2020 ADVDBG.ORG All Rights Reserved.