笑遨浆糊 2016-06-06 02:21 采纳率: 0%
浏览 5

曹老师好,请教一下调试方面

讲讲调试呗,刚进入编程行业,不大会,尤其是涉及datatable,dataset 调着就晕了

  • 写回答

1条回答 默认 最新

  • threenewbee 2016-06-06 03:21
    关注

    关于dataset/datatable,这里简单解释下它们的层次关系,dataset中可以包含很多表(datatable),每个表可以通过dataset.Tables[下标或者表名]访问到。每个datatable包含一个Columns集合,里面是这个表的列,一个Rows集合,集合的每个元素代表一行记录。
    对于一行记录(DataRow),又可以通过下标具体找到某个字段的值。知道了dataset/datatable的大致结构,在调试的时候就比较容易理解怎么去看返回的数据。
    调试无论什么方法手段,目的都是通过观察程序运行中的某个步骤,各种相关变量和对象的状态,来判断此时程序运行是否符合预期。如果符合,说明出现问题的地方很可能是当前执行位置之后的代码,如果不符合,那么问题很可能是之前的代码。
    一段代码写出来可能有几十行上百行,任何一个微小的错误都可能导致程序结果不正确,但是面对大量的程序,即便是有经验的程序员,光这么看代码也会觉得束手无策。但是调试可以帮我们快速定位发生错误的位置。使得我们只需要检查几行代码,而不是几百行,那么找到错误的难度就大大降低了。所以我觉得,“定位”可能出错的代码行,是调试器帮助开发者做的首要事情。很少有人对调试完全一无所知,大家多多少少知道怎么下断点,怎么单步执行,怎么逐过程调试。这里着重介绍VS三个特别有用但是初学者往往不知道的技巧。
    (1)VS是支持编辑并继续功能的,这就意味着你可以在调试的过程中修改一些代码错误,无需停止重新启动,就可以继续运行程序。
    (2)对于循环的调试,往往我们在循环里下了一个断点,但是我们期望检查的是循环执行了几十次几百次以后的某一次的执行情况,很多人一直在按f5键,恨不得用个什么东西把键盘压住。其实不必要,我们可以点击断点,设置条件断点,比如说循环变量步长值满足什么条件,才中断程序,这样可以轻松很多。
    (3)善于使用函数调用堆栈,我们可以通过它直观看到函数调用的关系,往往我们调用了一个系统库函数,这个函数又调用了别的函数,层层调用会把人搞得晕头转向,此时我们可以双击调用堆栈上的函数名,随时返回我们发起调用的代码的位置,除了调用堆栈,VS2013以后的版本还提供了一个新的工具,叫做Codemap,你可以通过它导航函数之间、类之间的调用,函数之间的调用关系用图表的形式显示出来了,就比在脑子中想象直观多了!

    评论

报告相同问题?

悬赏问题

  • ¥100 任意维数的K均值聚类
  • ¥15 stamps做sbas-insar,时序沉降图怎么画
  • ¥15 unity第一人称射击小游戏,有demo,在原脚本的基础上进行修改以达到要求
  • ¥15 买了个传感器,根据商家发的代码和步骤使用但是代码报错了不会改,有没有人可以看看
  • ¥15 关于#Java#的问题,如何解决?
  • ¥15 加热介质是液体,换热器壳侧导热系数和总的导热系数怎么算
  • ¥100 嵌入式系统基于PIC16F882和热敏电阻的数字温度计
  • ¥15 cmd cl 0x000007b
  • ¥20 BAPI_PR_CHANGE how to add account assignment information for service line
  • ¥500 火焰左右视图、视差(基于双目相机)