soft求救

alessandro 2003-09-02 06:12:10
我使用了bpx设置断点,可是当程序执行得时候无论如何softice也不能被激活,不知道是什么原因,请教一下这方面有经验得高手。谢谢了
...全文
35 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
dunkel 2003-09-03
  • 打赏
  • 举报
回复
设置断点的时机有两个, 一是如果用 loader32 载入程序的话, 可以在加载程序后的 winice 界面下用 bpx 设置; 另外就是程序在运行中了, 想设置断点, 就按下 winice 的热键 (缺省的是 Ctrl+D) 出现 winice 的界面, 用 addr 命令将当前的 context 切换到你的那个程序, 再用 bpx 命令设置断点. 断点根据设置的位置大致可以分为两类, 一类是你自己程序中的某条指令, 一般可以直接用 bpx address 来进行设置, 如果你的程序中包含了调试信息, 也可以通过函数明或标号来设定; 另一类就是其它文件中的输出函数, 象系统的 api 函数之类的, 这类函数由于一般只知道其函数名称, 不知道其确切的地址, 所以一般是需先载入那个函数, 让 winice 知道它有哪些个输出函数, 各个函数的入口地址, 这样就可以直接用函数名来设置断点了: bpx MessageBoxA. 载入这类文件一般也有两种方式, 对于常用到的, 如 kernel32, user32, gdi32 等等中的, 建议在 winice.dat 中设置载入, 不不太常用的, 甚至是自己编写的, 则一般通过 load32 的 "Load Export" 菜单临时性载入使用一下.
alessandro 2003-09-03
  • 打赏
  • 举报
回复
谢谢你给了我这么详细得解释,我已经可以正确设置断点了,但奇怪得是位于程序主体中的win32API,比如将SendMessageA函数设置为断点后,当程序执行时,SoftICE可以被激活,而在程序初始化时的Win32API,比如将CreateWindowExA函数设置为断点后SoftICE却无法被激活,不知道这是个什么原因,是不是和SoftICE的启动方式有关?
alessandro 2003-09-02
  • 打赏
  • 举报
回复
你能给我详细的解释一下设置断点额过程吗?谢谢了
alessandro 2003-09-02
  • 打赏
  • 举报
回复
对不起,我不太理解你说的,什么是在程序运行时呼出winice?
dunkel 2003-09-02
  • 打赏
  • 举报
回复
你如果是在 windows API 上设置断点出现这个问题的话, 有可能是没有载入相应的文件的缘故, 可以在 winice.dat 中设置, 也可以从 loader32 的 "Load Exports" 进行; 如果是在自己程序的地址上设置的话, 如果设置的地址确实是一条正常指令的起始处, 则可能是由于你是在程序运行时呼出 Winice, 再 bpx 的, 由于这时往往当前的 context 并不是你的那个程序的 context, 所以等于是设置到了其它程序上, (局部的 windows API 函数也可能出现这个情况), 可以先用 addr 命令切换到那个程序的 context, 再 bpx, 还有一种可能就是你的程序压根儿就没有运行到你 bpx 的那个指令上.
alessandro 2003-09-02
  • 打赏
  • 举报
回复
没有关于断点的设置项啊,再帮帮我
spbabyba 2003-09-02
  • 打赏
  • 举报
回复
好像安装SOFTICE后有个配置文件,你要在里面把你要用的断点注释去掉.

21,458

社区成员

发帖
与我相关
我的任务
社区描述
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
  • 汇编语言
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧