调试别人的代码怎么定位,程序员定位别人位置
作者:hacker | 分类:网络攻防 | 浏览:110 | 日期:2022年09月08日目录:
vs2008,调试的时候如何定位代码出错的位置?
*** 1.
try
{
// 把你预计可能会出错的代码写在找个里面
}
catch(Exception e)
{
// 捕捉到了异常.把你的错误信息进行处理.(输出,或者写日志)
}
*** 2.设置断点.一步一步去观察程序是否按照你的逻辑在走.
如何快速看懂别人的代码
读程序的能力要靠基本功和经验帮忙,一般多写写代码就可以提高了。
1. 每个人都有自己的思维习惯,因此再乱的代码也有自己的风格。比如命名, 比如UI的时候习惯先写Insert动作等等. 找到这些地方可以帮助阅读代码。
2. 一般情况都可以从界面录入着手读代码, 先搞清楚有那些输入,做了什么, 有什么输出。之后在看代码的细节会比较容易。
3. 多多利用错误调试的技巧,通过断点,日志可以帮助找到出问题所在的位置。
4. 如果一段代码很乱,又有问题,对逻辑有把握的话,更好重写。浪费时间去读懂不如重新写一遍来的效率。
5. 基本功如果不扎实的话,建议一边补课一边读程序。
vc调试,如何在源代码中跟踪当前执行到的位置
汇编窗口中单击鼠标右键goto source
前提是你有这段程序的源代码
5.2.4 如何定位关键代码——六种 ***
笔者经过长时间的探索,总结了以下几种定位代码的 *** 。 信息反馈法所谓信息反馈法,是指先运行目标程序,然后根据程序运行时给出的反馈信息作为突破口寻找关键代码。在第 2 章中,我们运行目标程序并输入错误的注册码时,会弹出提示无效用户名或注册码,这就是程序反馈给我们的信息。通常情况下,程序中用到的字符串会存储在String.xml文件或者硬编码到程序代码中,如果是前者的话,字符串在程序中会以id 的形式访问,只需在反汇编代码中搜索字符串的id 值即可找到调用代码处;如果是后者的话,在反汇编代码中直接搜索字符串即可。 特征函数法这种定位代码的 *** 与信息反馈法类似。在信息反馈法中,无论程序给出什么样的反馈信息,终究是需要调用Android SDK 中提供的相关API 函数来完成的。比如弹出注册码错误的提示信息就需要调用Toast.MakeText().Show() *** ,在反汇编代码中直接搜索Toast应该很快就能定位到调用代码,如果 Toast在程序中有多处的话,可能需要分析人员逐个甄别。 顺序查看法顺序查看法是指从软件的启动代码开始,逐行的向下分析,掌握软件的执行流程,这种分析 *** 在病毒分析时经常用到。 代码注入法代码注入法属于动态调试 *** ,它的原理是手动修改 apk 文件的反汇编代码,加入Log 输出,配合 LogCat查看程序执行到特定点时的状态数据。这种 *** 在解密程序数据时经常使用,详细的内容会在本书的第8 章介绍。 栈跟踪法栈跟踪法属于动态调试 *** ,它的原理是输出运行时的栈跟踪信息,然后查看栈上的函数调用序列来理解 *** 的执行流程,这种 *** 的详细内容会在本书的第8 章介绍。 Method Profiling( *** 剖析)属于动态调试 *** ,它主要用于热点分析和性能优化。