离奇的classifying.dll崩溃问题。 没有使用lib的问题

来源:互联网 发布:淘宝网复制软件小黄鸭 编辑:程序博客网 时间:2024/05/22 13:34

崩溃描述:

1) 小赵在自己的电脑上改好了一个classifying.dll 拿到测试机上发现崩溃。 0x00000000 不能为 written

2)我用带转储的exe,生成dump,分析问题在于 ClassfyAndTrace()函数中,第二个参数为空指针。
原以为这样就发现问题所在了,可是检查代码,发现代码没有问题,明明穿进去的不是空指针,怎么就崩溃了呢?

在xeyez项目中,ClassfyAndTrace()函数上下断点,发现还没走到ClassfyAndTrace就崩溃了,崩溃在SetParameLen函数上。这个函数也是Classifying.dll的内部一个函数。

这就能奇怪了,在xeyez中跟踪代码,发现进入SetParameLen中函数崩溃,但是,调用堆栈却显示 ClassfyAndTrace。

最后发现,是小赵给我提供了dll, 没有给我提供相应的lib, 当我把代码用他的lib重新编译一遍之后,没有了此问题。

初步估计是因为lib里面含有的信息不匹配。将函数的入口地址搞混了。但是居然可以跑起来,但SetParameLen函数却执行了ClassfyAndTrace的代码。