code::Block单步调试中的一个问题

  zhixing909090给我来信说Code::Block中单步执行时的问题,我让他/她发来程序。

  程序是:

#include <iostream>
using namespace std;
int main( )
{
    double r1,r2,r; //定义变量,用来表示待串联的电阻值及并联后的电阻值
    cout<<"请输入两个电阻的阻值:"; //输出字符串,作为对“用户”的提示
    cin>>r1>>r2; //由用户输入待串联的电阻值
    r=r1+r2; //实现计算,将r1+r2的结果赋值给r
    cout<<"串联后的阻值为:"<<r<<endl; //输出计算结果
    return 0;
}

  他/她说:“老师就是你的那个程序!单步调试,若定义int能通过,但是double通不过!到cin>>死活输不出来!我试了好多遍!我用的是code13.12最新版本!”

  我调试,果然如此。但无法解释。如何答复?我不知道。最后,我这样答复。
  我试过了,确实如你所言。这是否是Code::Block的一个Bug,我不敢肯定,可以通过邮件反馈一下。
  不过,我们可以绕开这样的问题,原则就是不要进入到这个陷阱中去。我提示两个方法:(1)替换:调试中,给变量直接赋值,如你的程序中,将cin>>r1>>r2加上注释,同时写对r1和r2的赋值语句,单步执行能够顺利过去;(2)忽视:通过加断点,跳过cin,而不是机械地一步一步操作。要搞清目标是跟踪过程,而保证输入没有问题,cin完全用不着去step。实际上,即使没有bug,也要适应利用断点,这是一个可以高效的方式。
  我解释不了这段错误,就给你提点“避障”的办法,供参考。科学问题,一定要追根问底,而对这类工程中遇见的问题,首要的原则,让事情能做下去。

  顺便提code::Block中的另一个问题:当项目所在文件名夹中含有中文、空格时,单步高度无法进行。对策:养成习惯,建文件夹时,按字线开头、数字字母串的一般规范去命名。

  存在问题不怕,重要的是找到应对的原则,也是一种选择。

china-pub(正在发售)
卓越网(接受预订) 
图灵社区  官方试读本下载
豆瓣
==================== 迂者 贺利坚 CSDN博客专栏=================
|== IT学子成长指导专栏 专栏文章分类目录(不定期更新)  ==|
|== C++ 课堂在线专栏  贺利坚课程教学链接(分课程年级) ==|
===== 为IT菜鸟起飞铺跑道,和学生一起享受快乐和激情的大学 =====

  
    

时间: 2024-10-07 08:42:58

code::Block单步调试中的一个问题的相关文章

vs2010-用VS2010建立一个控制台项目,可以单步调试但是不能直接执行

问题描述 用VS2010建立一个控制台项目,可以单步调试但是不能直接执行 如果直接执行,就会提示错误,如下 无法启动程序"C:Windowssystem32cmd.exe" 系统找不到指定的文件. 但是我是可以找到cmd.exe并运行的,也可以通过双击生成的exe文件来启动项目.

如何在CODE中使用代码在网页中打开一个新窗口?

问题描述 如何在CODE中使用代码在网页中打开一个新窗口?protectedvoidBtnAddContact_Click(objectsender,EventArgse){if(Page.IsValid){}}备注说明:在HTML中可以直接使用window.open这个我知道 解决方案 解决方案二:Response.Write("<script>window.open</script>");解决方案三:这样啊,我的意思是,还没有别的,不用写<script

vs2005中F11无法单步调试

问题描述 vs2005中F11无法单步调试,是什么原因?提示无法显示源代码. 解决方案 解决方案二:可能安装出了点环境问题,修复一下试试.

VC++ 6.0 单步调试【写给自己看的调试总结帖】

写给自己看的调试总结帖 参考一: 先将光标移动到你需要停止的地方,点击一下工具栏中的小手工具,这个时候左边会有一个红色的圆点出现,然后点击"go F5"工具.程序会开始运行,直到运行到你设置的断点处停下来,这个时候你可以在下边的出口中检查你的变量的值 了.如果下面没有你需要的变量,你可以将变量名拖到变量窗口中. 如果你的变量窗口没有显示,你可以通过菜单-->查看-->调试窗口--->watch 打开它. 参考二: 逐过程调试-F10 逐语句调试-F11 跳到光标处-C

wingdb开发过程中遇到一个比较“头疼”的bug

    我自持也写了XX行的代码,调试经验也不可谓不强.但是最近遇到的这个bug,却 着实让我头疼了一会...错!不是一会,是3天啊!     具体是这样的,在开发windows下的gdb GUI调试环境时,使用thread PIPE与gdb mi 接口交互,在winodows 7下编写代码.上周五突然遇到一个问题:就是程序运行着就会突 然崩溃.马上用ollydbg作为系统默认活动调试器,在崩溃后立即调试进程,发现错误点 随机出现在主线程和PIPE READ线程中,而且指令在ntdll中出错.并

vs2012小问题-VS2012编译不报错,但是单步调试的时候查看变量值,显示这个变量是未声明的标识符

问题描述 VS2012编译不报错,但是单步调试的时候查看变量值,显示这个变量是未声明的标识符 void CGPRS2012Dlg::OnOncommMscomm1() { // TODO: 在此处添加消息处理程序代码 Sleep(300); VARIANT variant_inp; COleSafeArray safearray_inp; CString strtemp; long len,k; byte rxdata[1000]; for (int i=0;i<1000;i++) { rxda

GDB单步调试基础

最近全面换成 Linux 平台了,感觉如果不玩游戏 Linux 桌面基本可以替代 Windows 了,但是调试器这个还是问题,gdb可以解决这个问题. 一.GDB 概述 GDB 是 GNU 开源组织发布的一个强大的 UNIX 下的程序调试工具.或许,各位比较喜欢那种图形界面方式的,像 VC . BCB 等 IDE 的调试,但如果你是在 UNIX 平台下做软件,你会发现 GDB 这个调试工具有比 VC . BCB 的图形化调试器更强大的功能.所谓 " 寸有所长,尺有所短 " 就是这个道理

android-Android 调试中eclipse一直提示adb.exe停止工作

问题描述 Android 调试中eclipse一直提示adb.exe停止工作 如题,已试过:各种重启不行,更换带补丁adb.exe不行,重新配置环境变量不行,禁用电脑上管理软件不行 求大神解决 解决方案 把eclipse卸载重新安装,或者安装个新版本的eclipse 或者,用以下的adb.exe试试 下载已经修改最大连接数的adb.exe地址:http://code.google.com/p/android/issues/detail?id=12141 解决方案二: 下一个豌豆荚 什么都好说 解

使用.NET Reflector单步调试编译好的程序集

对于没有任何源代码和PDB文件的预编译程序集而言,如果没有合适的工具,调试起来并不容易.使用Red Gate的.NET Reflector可以在Visual Studio中即时反编译程序集,然后像调试有源代码的程序集一样单步跟踪它. 大家需要了解.NET Reflector(在VS和VSPro版本中)是可以集成到Visual Studio中的.标准的内置对象浏览器只显示公有方法和类(见图1),而.NET Reflector的对象浏览器(见图2)可以对编译好的程序集进行更为深入的分析,可以让用户浏