鱼C论坛

 找回密码
 立即注册
查看: 3181|回复: 16

会调试的高手进来

[复制链接]
发表于 2012-5-9 01:26:03 | 显示全部楼层 |阅读模式
30鱼币
我学习C语言也有一段时间了 但是还是不懂的怎么调试一个程序 , 就是把一个程序的错误找出来,然后调试正确,有时候一个程序语法那些都是对的 就是找不到哪里错了 所以很纠结,希望找个会调试的朋友教我下可以吗  真心求教  我真的很想学会怎么调试一个程序。 愿意教的朋友留下QQ好吗  谢谢了

最佳答案

查看完整内容

我咋感觉楼主太在于依赖他人. 我觉的楼主需要晓得. 自己努力试试 这个只需要多想细心多调试一些 再说里面不是还有个反汇编的代码吗. 一切很详细了. 如何调试好像百度一下也有相关文章我放上一个百度找的 我自己调试的话 通常是解决问题 或是 看清程序的执行过程 有些细节的话可能开反汇编看汇编代码那样会更清楚 而且一些数据的变动上 我会写在Watch的那个窗口上 来观察数据 或者 打开Memory来查看内存分布 也可能用Output什么 ...
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2012-5-9 01:26:04 | 显示全部楼层
本帖最后由 只是丶梦 于 2012-5-10 16:54 编辑

我咋感觉楼主太在于依赖他人. 我觉的楼主需要晓得. 自己努力试试 这个只需要多想细心多调试一些 再说里面不是还有个反汇编的代码吗. 一切很详细了. 如何调试好像百度一下也有相关文章我放上一个百度找的
我自己调试的话 通常是解决问题 或是 看清程序的执行过程
有些细节的话可能开反汇编看汇编代码那样会更清楚
而且一些数据的变动上 我会写在Watch的那个窗口上 来观察数据
或者 打开Memory来查看内存分布 也可能用Output什么来着函数 输出到调试框
有时候是 数据未初始化 有时候是数据溢出 有时候是少了分号 有时候........N多反正.
不然就是调试多线程卡死 顺便说下 调试多线程我感觉如果是看数据是否正常 可以用 输出到调试框 这个函数来在线程中输出 那样不会卡死.我打包传上
也经常的就是逻辑错误没想对.o(︶︿︶)o
我会开着那个 看到哪步逻辑后面错了我就会停在那 怎样才会对的去想...
反正一点需要细心 我有个朋友(囧 看到别生气哈)因为一个括号问题 找了半天.不清楚.最后我调试下就给他加了个括号比如..


  1. int _pow(int l)
  2. {
  3.     int ret=10
  4.     while(l)
  5.        ret*=10;
  6.        l--;
  7.     return ret;
  8. }
复制代码
反正单步执行到ret*=10;的时候会发现 又执行了while(l)的判断 就知道是什么问题了.
其实调试不难.哪错你判断下是哪个部分把地方缩小 比如你少些分号 是不是编译时候出现错误? 它会定位到那行?
调试也差不多你自己判断下是错在哪个代码区块 在那代码区块想想.说不定就知道了.调试到最后 还不是嘚自己去想办法解决么?
仅供参考.个人想法而已.有误请大家指出.谢谢咯.

Debug.rar

814 Bytes, 下载次数: 3

VC调试方法大全.rar

194.92 KB, 下载次数: 6

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2012-5-9 08:56:37 From FishC Mobile | 显示全部楼层
教程里不是教过怎么调试一个程序了吗?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2012-5-9 09:58:05 | 显示全部楼层
我用的是VS2010,就是设置断点,然后再逐过程。观察参数变化。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2012-5-9 11:30:16 | 显示全部楼层
vc6.0 调试前需要加断点(快捷键为F9) 然后 按F10开始调试。F10为单步跟踪。当 当前执行语句有函数调用时,可以按F11进入 函数。这样可以继续单步跟踪被调函数内的执行情况,若不想进入函数查看,则直接按F10继续向下执行。还有就是快捷键F5是 程序直接执行到断点处停止。  
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2012-5-9 11:36:26 | 显示全部楼层
vs的调试还算可以吧,F9下断点,F5开始调试,F10单步执行,Ctrl+F5直接运行不调试,F7编译。
eclipse的调试才蛋疼,完全看不懂
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2012-5-9 11:37:05 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2012-5-9 11:42:44 | 显示全部楼层

F10也可以的,F10是从头开始执行。F5是直接执行到断点处。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2012-5-9 13:26:23 | 显示全部楼层
我是说找个师傅教我调试可以吗 留个QQ 跪求啊:'(
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2012-5-9 13:27:10 | 显示全部楼层
我是说找个师傅教我调试可以吗 留个QQ 跪求啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2012-5-9 14:04:32 | 显示全部楼层
楼主写过文章吗?楼主改过自己的文章吗?

你是怎么改的?是不是一句一句的看,修改错字,改正错误的句子和词语,甚至把不满意的地方重写?

程序的调试也是一样的,要么从第一句开始,单步调试;要么在你想改动的地方下断点,还是单步调试,看各种变量的变化是否和你所想一样,要么等程序出错的时候,看堆栈,然后回到第二步,下断点,跟踪。

或者,学会使用log,在程序的每一个步骤之后输出一个log,程序出错的时候,你就能判断是哪一步出错了。

没什么技巧的,好文章,改出来,好程序,调出来。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2012-5-9 17:27:57 | 显示全部楼层
寂静的风之力 发表于 2012-5-9 14:04
楼主写过文章吗?楼主改过自己的文章吗?

你是怎么改的?是不是一句一句的看,修改错字,改正错误的句子 ...

可以留个QQ吗  加个QQ 指导下啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2012-5-9 19:45:19 | 显示全部楼层
zinber 发表于 2012-5-9 11:42
F10也可以的,F10是从头开始执行。F5是直接执行到断点处。

{:2_26:}还有这样的?学习了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2012-5-10 15:34:43 | 显示全部楼层
4楼的说的很清楚
楼主你指的应该是“单步调试”
然后 按F10开始调试,继续按F10为单步跟踪调试。当前执行语句有函数调用时,可以按F11进入 函数调试。这样可以继续单步跟踪被调函数内的执行情况,若不想进入函数查看,则直接按F10继续向下执行。F5设置断点。
楼主多试试吧!如果调试到其中一个地方的时候要打开文件,那么就证明你那个地方或者是从那一行开始的下面有问题。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2012-5-10 18:04:33 | 显示全部楼层
只是丶梦 发表于 2012-5-10 16:52
我咋感觉楼主太在于依赖他人. 我觉的楼主需要晓得. 自己努力试试 这个只需要多想细心多调试一些 再说里面不 ...

楼上都是高手...膜拜...
楼主..都有这么多人说方法了...
自己动手,丰衣足食吧...  = =
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2012-5-11 20:08:07 | 显示全部楼层
谢谢你哈 我也觉得自己有时候真的太过于依赖于别人了 我现在就在尽量的改正这个坏习惯
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2012-5-11 20:08:43 | 显示全部楼层
只是丶梦 发表于 2012-5-9 01:26
我咋感觉楼主太在于依赖他人. 我觉的楼主需要晓得. 自己努力试试 这个只需要多想细心多调试一些 再说里面不 ...

谢谢你哈 我也觉得自己有时候真的太过于依赖于别人了 我现在就在尽量的改正这个坏习惯  ............
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-6-6 01:55

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表