当前位置:文档之家› .NET应用程序的调试与配置

.NET应用程序的调试与配置

.NET应用程序的调试与配置
.NET应用程序的调试与配置

[全]C#.NET:面试必备线程基础知识点

C#.NET:面试必备线程基础知识点 基础概念 线程(Thread)是操作系统能够进行运算调度的最小单位。它是进程中的实际运作单位,一个进程中可以启动多个线程,每个线程可以并行执行不同的任务。严格意义上来说,同一时间可以并行运行的线程数取决于CPU 的核数。 根据线程运行模式,可以把线程分为前台线程、后台线程和守护(Daemon)线程: ?前台线程:主程序必须等待线程执行完毕后才可退出程序。C# 中的Thread 默认为前台线程,也可以设置为后台线程。 ?后台线程:主程序执行完毕立即跟随退出,不管线程是否执行完毕。C# 的ThreadPool 管理的线程默认为后台线程。 ?守护线程:守护线程拥有自动结束自己生命周期的特点,它通常被用来执行一些后台任务。 每次开启一个新的线程都要消耗一定的内存,即使线程什么也不做,也会至少消耗1M 左右的内存。 多线程并行(Parallelism)和并发(Concurrency)的区别: ?并行:同一时刻有多条指令在多个处理器上同时执行,无论从宏观还是微观上都是同时发生的。

?并发:是指在同一时间段内,宏观上看多个指令看起来是同时执行,微观上看是多个指令进程在快速地切换执行,同一时刻可能只有一条指令被执行。 PS:以上概念来源Google 的多个搜索结果,稍加整理。 Thread、ThreadPool 和Task 对C# 开发者来说,不可不理解清楚Thread、ThreadPool 和Task 这三个概念。这也是面试频率很高的话题,在StackOverflow 可以找到有很多不错的回答,我总结整理了一下。 Thread Thread 是一个实际的操作系统级别的线程(OS 线程),有自己的栈和内核资源。Thread 允许最高程度的控制,你可以Abort、Suspend 或Resume 一个线程,你还可以监听它的状态,设置它的堆栈大小和Culture 等属性。Thread 的开销成本很高,你的每一个线程都会为它的堆栈消耗相对较多的内存,并且在线程之间的处理器上下文切换时会增加额外的CPU 开销。 ThreadPool ThreadPool(线程池)是一堆线程的包装器,由CLR 维护。你对线程池中的线程没有任何控制权,你甚至无法知道线程池什么时候开始执行你提交的任务,你只能控制线程池的大小。简单来说,线程池调用线程的机制是,它首先调用已

DSP调试及烧写和加载常见错误及分析

Error: Read status value 0x0001 from symbol PRG_status Flash algorithm failed during clear operation 开始可以正常烧写的,但是上机调试了一下就不能写了. 在烧写lf2407内部flash时出现如下错误,不知是什么原因造成的? Error:Read status value 0x0001 from symbol PRG_status Flash algorithm failed during clear operation. 换了一个芯片后正常 之前有一次在试CCS功能时,一不小心点了一次加密,还没有执行完,就马上点了解密,大概这样烧坏了吧! 太脆弱了,再也不敢试加密了 CMD文件要避开FLASH的40H--44H区间, 我也出现过这样的问题,烧写2407A的片内flash时会出现下面的错误提示:Error: Read status value 0x0001 form symbol PRG_status Flash algorithm failed during clear operation 后来换了一块2407就能烧写了。 是不是2407的flash坏了?有没有办法检测或者修复flash? 昨天在网上查了一下,很多人都遇到了这种问题,可能是dsp内部flash烧坏了吧! 今天重新换了一块芯片,可以烧录进去了,但是上拿到样机上调试一下,再烧录就出现了同样的问题,估计又是flash坏了,到底是什么原因引起的?是不是电源引起的呢? 我也出现过能仿真,但不能烧写的情况!解决方法: 解决方法:降低时钟频率。点击FLASH插件上的“View Config File”,打开VAR.h文件。将该文件中的“PLL_PATIO_CONST .Set 0000h”改成 “PLL_PATIO_CONST .Set 0200h”存盘后,执行目录下的Buildall.bat批处理文件。再重新启动CCS及FLASH插件。 请教高手:在烧写程序的时候出现如下错误:Error: Read status value 0x0001 from s ymbol PRG_status Flash algorithm failed during clear operation

ASP NET基础知识

https://www.doczj.com/doc/7f5725397.html,的两种编码方式是什么,什么是代码内嵌,什么是代码后置?Web页面的父类是谁? 代码内嵌和代码后置。代码内嵌把业务逻辑编码和显示逻辑编码交叉使用。代码后置式业务逻辑代码和显示逻辑代码分开使用。system.web.ui.page 2.Web控件的AutoPostBack属性的作用是什么? 控件的值改变后是否和服务器进行交互(自动回传) 3.验证服务器控件有哪些,他们有哪些常用的属性,ControlToValidate属性的作用是什么?有哪两种服务器控件? RequiredFieldValidator:controltovalidate(验证的控件ID,共有的属性),text,ErrorMessage||||(dropdownlist控件验证时InitialValue属性是如果用户没有改变初始值,会验证失败)CompareValidator:controltocompare(要进行对比的控件),type(比较类型设置),operator(比较运算符,默认为等于),ValueToCompare(进行比较的值) RangeValidator:type(验证类型(5种)),MaximumValue(最大值),MinimumValue(最小值)(包括上下限) RegularExpressionValidator:ValidationExpression(设置要匹配的正则表达式)ValidationSummary:showMessageBox(是否显示弹出的提示消息),ShowSummary(是否显示报告内容) HTML服务器控件和web服务器控件 4.什么是Session,如何进行Session的读写操作,使用什么方法可以及时释放Session?Session 是用于保持状态的对象。Session 允许通过将对象存储在Web服务器的内存中在整个用户会话过程中保持任何对象。 通过键值对的方式进行读写;clear()和abandon()方法 5.运行https://www.doczj.com/doc/7f5725397.html,程序需要安装和配置什么,.NET Framework是不是必须要安装? 安装IIS和.NET Framework 必须安装 https://www.doczj.com/doc/7f5725397.html,配置信息分别可以存储在什么文件中? web.config文件和machine.config文件中 7.常用服务器控件,如Label、Button、TextBox、HyperLink、DropdownList的常用属性有哪些?label:text ,forecolor,visible Button:CommandName,CauseValidation, TextBox:AutopostBack,TextMode Hyperlink:NavigateUrl(单击Hyperlink时跳转的Url),Text,Target(设置NavigateUrl属性的目标框架),ImageUrl(设置Hyperlink中显示图片文件的Url) Dropdownlist:AutoPostBack 8.XMLHttpRequest对象的常用属性和方法有哪些? 方法是open()和send() 属性:ReadyState和Status,ResponseText,ResponseXML,ResponseStream https://www.doczj.com/doc/7f5725397.html,中的常用的指令有哪些?谈谈这些指令的常用属性的作用?

ccs33中建立-编译-调试工程及常见错误讲解.

Part1:ccs3.3中新建一个DM6437的示例工程 1、连接好板子,将板子上仿真器的usb口插到电脑上,启动ccs后,ccs会去获取板子信息并在打开的文件目录中自动生成一个文件,如图所示:笔者使用的是6437的板子 2、用file-new选择建立一个dsp/bios文件 在打开的对话框中选择你使用的板子的型号,如下图: 3、这个时候ccs为我们建立了一个bios文件,以图表显示,里面按照所选板子的类型添加相应的硬件和其他模块。保存这个文件到工程目录下先,文件类型为tcf。 4、保存这个文件的同时,ccs按照bios中的配置在当前目录下自动生成了一个cmd文件。此时将tcf文件和这个cmd文件同时添加到工程中,使用 5、然后需要修改一个编译选项,点击下图所示选项进去:

6、打开后在编译选项对话框总会看到一个命令行,其中最后一句是-mv6400,因为用的是6467的板子,所以这个选项要修改成-mv64+;否则编译会报错:编译选项不正确;但并非所有类型的板子都要改,这个只针对型号为64+的板子。 7、file-new-source file建立一个c源文件,保存并加入到工程中。 以下是示例程序: #include #include #include Int main(Int argc, String argv[])//main函数的类型必须这样写 { unsigned int i; unsigned int sum=0; for(i = 0; i<=100; i++ ) {

sum += i; } printf("the sum = %d .\n",sum); printf("the program run over!\n"); printf("the program run over!\n");} 注意:1)如果想要printf正确输出信息,需要添加对应平台的rts64plus.lib文件。这里是64+平台所以是在C:\CCStudio_v3.3\C6000\cgtools\lib目录下的rts64plus.lib文件,否则ccs 会提示如下警告和错误: >> warning: entry point symbol _c_int00 undefined undefined first referenced symbol in file --------- ---------------- _printf E:\\WorkContent\\projectExample\\Test\\Debug\\test.obj >> error: symbol referencing errors - './Debug/Test.out' not built 2)如果想要printf正确输出信息,cmd文件中必须指定heap的大小,即cmd文件这样写: -c -stack 0x00001000 /* Stack Size */ -heap 0x00001000 /* Heap Size */ //前面这三项必不可少 MEMORY { L2RAM: o = 0x10800000 l = 0x00020000 DDR2: o = 0x80000000 l = 0x10000000 } SECTIONS { .bss > L2RAM .cinit > L2RAM .cio > L2RAM .const > L2RAM .data > L2RAM .far > L2RAM .stack > L2RAM .switch > L2RAM .sysmem > L2RAM .text > L2RAM .ddr2 > DDR2 }

程序调试与常见程序错误

程序调试与常见程序错误 目录 一、在Codeblocks中调试程序 (1) 二、存储路径设置问题 (4) 三、修改Codeblocks的设置 (4) 四、提示程序无法调试问题 (6) 五、常见错误分析 (6) 六、程序出错的三种情况 (18) 七、常用的纠错方式 (19) 一、在Codeblocks中调试程序 1.注意事项 不允许工程路径中含有空格、汉字。 2.在相应行号后面点击鼠标左键设置断点 3.打开W ATCHS窗口

4.点击调试按钮 5.可以再watchs窗口看到自动变量。黄色三角表示程序暂停的位置

6.通过单步运行按钮进行单步运行。 7.也可以在debuger标签,command栏输入调试命令进行单步运行、打印变量值等操作。 8.程序运行

二、存储路径设置问题 1. 如果不是默认安装路径,code blocks 就无法找到编译器和调试器,就会出现此类问题。 解决办法:Settings——Compiler and debugger——Toolchain executables——Auto-detect。 2. 输出信息为“某个命令执行失败或异常终止”。 解决方法:通常是相应的编译器找不到,试着将其所在路径放到path环境变量中去。 3. 输出编译错误,如某某文件找不到之类。 解决方法:在项目中设置选项中加上路径(通常可利用customer variable项)。 4. 在调试程序的时候弹出类似""XYZ - Debug": The compiler's setup (GNU GCC Compiler) is invalid, so Code::Blocks cannot find/run the compiler. Probably the toolchain path within the compiler options is not setup correctly?! Goto "Settings->Compiler and debugger...->Global compiler settings->GNU GCC Compiler->Toolchain executables" and fix the compiler's setup. Skipping... Nothing to be done (all items are up-to-date)."这种警告。 解决方法:这个错误提示已经说得很清楚了, 找不到编译器, 到菜单Settings->Compiler and debugger...->Global compiler settings->GNU GCC Compiler->Toolchain executables下去修复编译选项前提是你已经装了gcc 如过没装, 就去下个包含mingw的codeblocks, (mingw包含gcc编译器); 三、修改Codeblocks的设置 1.

NET基础知识(三)

https://www.doczj.com/doc/7f5725397.html, 基础知识(三) 我们知道.NET对不同数据源,使用不同的数据提供程序,这使得我们可以更高效的访问相应的数据源。除了.NET数据提供程序外,我还得说说另外一位功臣:连接字符串(Connection Strings),它也为https://www.doczj.com/doc/7f5725397.html,在解决“不同”与“一致”的矛盾中,贡献出了非常重要的力量。 1. 什么是连接字符串? 我们已经知道,https://www.doczj.com/doc/7f5725397.html,类库为不同的外部数据源提供了一致的访问。这些数据源可以是本地的数据文件(如excel、txt、access,甚至是SQLite),也可以是远程的数据库服务器(如SQL Server、MySQL、DB2、Oracle等)。数据源似乎琳琅满目,鱼龙混杂。请试想一下,https://www.doczj.com/doc/7f5725397.html,如何能够准确而又高效的访问到不同数据源呢?在上一篇《你必须知道的https://www.doczj.com/doc/7f5725397.html,(二)了解.NET数据提供程序》中,你或许已经清楚,https://www.doczj.com/doc/7f5725397.html,已经为不同的数据源编写了不同的数据提供程序。但是这个前提是,我们得访问到正确的数据源。否则的话,只会“张冠李戴,驴头不对马嘴”。就好比,我们用SQL Server数据提供程序去处理excel数据源,结果肯定是让人“瞠目结舌”的。英雄总在最需要的时候出现,连接字符串,就是这样一组被格式化的键值对:它告诉https://www.doczj.com/doc/7f5725397.html,数据源在哪里,需要什么样的数据格式,提供什么样的访问信任级别以及其他任何包括连接的相关信息。哦!如果你这样想的话,那么以后你使用连接字符串的时候,或许就不会小觑了吧! 2.理解语法格式 其实,连接字符串虽然影响深远,但是其本身的语法却是十分的简单。连接字符串由一组元素组成,一个元素包含一个键值对,元素之间由“;”分开。语法如下: key1=value1;key2=value2;key3=value3... 典型的元素(键值对)应当包含这些信息:数据源是基于文件的还是基于网络的数据库服务器,是否需要账号密码来访问数据源,超时的限制是多少,以及其他相关的配置信息。我们知道,值(value)是根据键(key)来确定的,那么键(key)如何来确定呢?语法并没有规定键(key)是什么,这需要根据你需要连接的数据源来确定的。在下一节中,我将详细讲解几种常用的连接字符串。 3.例举几种典型连接字符串 3.1 SQL Sever连接字符串 (1)标准的安全连接 Data Source=myServerAddress;Initial Catalog=myDataBase;User Id=myUsername;Password=myPassword; 说明: Data Source:需要连接的服务器。需要注意的是,如果使用的时Express版本的SQL Server 需要在服务器名后加\SQLEXPRESS。例如,连接本地的SQL Server 2008 Express版本的数据库服务器,可以写成Data Source = (local)\SQLEXPRESS或者.\SQLEXPRESS。 Initial Catalog:默认使用的数据库名称。 User ID:数据库服务器账号。 Password:数据库服务器密码。 或者也可以写成这样: Server=myServerAddress;Database=myDataBase;User ID=myUsername;Password=myPassword;Trusted_Connection=False; (2)可信连接

C语言调试功能以及常见错误提示详解

C语言编译环境中的 调试功能及常见错误提示 调试功能 1.常用健 : 激活系统菜单 : 将光标在编辑窗口和、信息窗口之间切换 : 加载一个文件 + : 查看程序运行结果 : 得到有关编辑器在线帮助 + : 得到有关C语言的在线帮助 + : 终止正在运行的程序 2.块操作 KB: 定义块首 KK: 定义块尾 KV: 块移动 KC: 块复制 KY: 块删除 KH: 取消块定义 3.查找、替换和删除操作 QF: 查找字符串 QA: 查找并替换字符串 Option: G(全程),B(向文件头),N(直接替换) Y : 删除一行 QY: 删除从光标位置到行末的所有字符 编译中的常见错误例析 (1) 警告类错误 …XXX?declare but never used变量XXX已定义但从未用过。 …XXX?is assigned a value which is never used变量XXX已赋值但从未用过。 Code has no effect 程序中含有没有实际作用的代码。 Non-portable pointer conversion不适当的指针转换,可能是在应该 使用指针的地方用了一个非0的数 值。 Possible use of …XXX?before definition表达式中使用了未赋值的变量 Redeclaration of …main?一个程序文件中主函数main不止一个。 Suspicious pointer conversion可疑的指针转换。通常是使用了基本类型不匹配的指针。 Unreachable code程序含有不能执行到的代码。 (2) 错误或致命错误 Compound statement missing } in function main程序结尾缺少括号}。

ADO NET 基础知识(一)

https://www.doczj.com/doc/7f5725397.html, 基础知识(一) 作为.NET框架最重要的组件之一,https://www.doczj.com/doc/7f5725397.html,扮演着应用程序与数据交互的重要的角色。本文将从宏观的角度来探讨https://www.doczj.com/doc/7f5725397.html,,和大家一起了解https://www.doczj.com/doc/7f5725397.html,来龙去脉以及https://www.doczj.com/doc/7f5725397.html,的主要组成部分。 1. 什么是https://www.doczj.com/doc/7f5725397.html,? 简单的讲,https://www.doczj.com/doc/7f5725397.html,是一组允许.NET开发人员使用标准的,结构化的,甚至无连接的方式与数据交互的技术。对于https://www.doczj.com/doc/7f5725397.html,来说,可以处理数据源是多样的。可以是应用程序唯一使用的创建在内存中数据,也可以是与应用程序分离,存储在存储区域的数据(如文本文件、XML、关系数据库等)。 具体来说,https://www.doczj.com/doc/7f5725397.html, 对Microsoft SQL Server 和XML 等数据源以及通过OLE DB 和XML 公开的数据源提供一致的访问。数据共享使用者应用程序可以使用https://www.doczj.com/doc/7f5725397.html, 来连接到这些数据源,并检索、处理和更新所包含的数据。 作为.NET框架的重要组成部分,https://www.doczj.com/doc/7f5725397.html, 类封装在System.Data.dll 中,并且与System.Xml.dll 中的XML 类集成。当编译使用System.Data 命名空间的代码时,需要引用System.Data.dll 和System.Xml.dll。 2. 理清https://www.doczj.com/doc/7f5725397.html,与ADO的关系 作为一个普通的缩略词,"https://www.doczj.com/doc/7f5725397.html,”并只不是"ADO”的简单升级版本。严格的讲,https://www.doczj.com/doc/7f5725397.html,和ADO是两种截然不同的数据访问方式。 ADO的全称是Activex Data Objects,它是早期(.NET还未实施)开发人员用来访问数据的组件。随着.NET的发展,https://www.doczj.com/doc/7f5725397.html,顺其自然地以其显著的优越性逐步取代ADO。从技术层面讲,ADO使用OLE DB接口并基于微软的COM技术,而https://www.doczj.com/doc/7f5725397.html,拥有自己的https://www.doczj.com/doc/7f5725397.html, 接口并且基于微软的.NET体系架构。 虽然大多数基于.NET 的新应用程序将使用https://www.doczj.com/doc/7f5725397.html, 来编写,但.NET 程序员仍然可以通过.NET COM 互操作性服务来使用ADO。 3. 认识https://www.doczj.com/doc/7f5725397.html,最核心的组成部分 System.Data命名空间提供了不同的https://www.doczj.com/doc/7f5725397.html,类,它们既分工明确,又相互协作地提供表格数据的访问服务。该类库包含两组重要的类:一组负责处理软件内部的实际数据(DataSet),一组负责与外部数据系统通信(Data Provider)。具体架构如下图所示:

STM 调试过程中常见的问题及解决方法

一、在“Debug选项卡”下设置好仿真器的类型后,下载程序时却提示“No ULINK Device foun d.” 解决办法:Keil MDK默认使用ULINK仿真器下载程序,在“Utilities选项卡”下把编程所使用的仿真器改为相应的类型即可。 二、编译工程时提示如下信息: main.axf: Error: L6218E: Undefined symbol __BASEPRICONFIG (referred from stm32f10 x_nvic.o). main.axf: Error: L6218E: Undefined symbol __GetBASEPRI (referred from stm32f10x_nvi c.o). main.axf: Error: L6218E: Undefined symbol __RESETFAULTMASK (referred from stm32f 10x_nvic.o). main.axf: Error: L6218E: Undefined symbol __RESETPRIMASK (referred from stm32f10x _nvic.o). main.axf: Error: L6218E: Undefined symbol __SETFAULTMASK (referred from stm32f10x _nvic.o). main.axf: Error: L6218E: Undefined symbol __SETPRIMASK (referred from stm32f10x_n vic.o). 解决办法:工程缺少“cortexm3_macro.s”文件,把cortexm3_macro.s和STM3210x.s全部添加到工程即可。 三、调试器不能连接到STM32的问题与解决办法 很多人都碰到过调试器不能连接到STM32的问题,不管是IAR的J-Link还是Keil的ULink,或者是ST的ST-Link。出现这个问题时,调试软件会提示不能建立与Cortex-M3的连接,或提示不能下载程序,或提示找不到要调试的设备等。 这样的问题都是发生在调试那些可以在CPU不干预的时候自动运行的模块、或在调试低功耗模式的程序的时候。所谓“可以在CPU不干预的时候自动运行的模块”包括:DMA、定时器、连续转换模式下的ADC、看门狗等模块。 -------------------------------------------------------------------------------- 这个问题的根源是: 1. 调试器需要在RAM内执行一段程序,对Flash进行擦写操作,如果不停止这些自动运行的模块,它们会干扰程序在RAM中的执行,致使下载失败。比如DMA模块被配置为不停地拷贝一段数据区,而调试器刚好需要使用DMA数据传输的目标区域,这时DMA的操作将会与调试器的操作发生冲突。再比如,如果启动了看门狗而没有执行硬件复位,则在下次调试器需要下载程序时,看门狗超时将触发芯片复位,导致下载操作失败。 2. 低功耗是通过停止CPU的时钟而实现,JTAG调试是通过与CPU的通信实现,停止了C PU的时钟致使调试器会失去与CPU的通信。 --------------------------------------------------------------------------------

C语言程序编辑或调试中常见的错误

常见错误和程序分析 (1)忘记定义变量。例如: void main() { x=3; y=6; printf(“%d\n”,x+y); } C要求对程序中用到的美一个变量都必须定义其类型,上面程序中没有对x,y 进行定义。应在函数体的开头加int x,y; (2)输入输出的数据类型与所用格式说明符不一致。例如,若a已定义为整数,b已定义为实型: a=3;b=4.5; /*对a和b赋值*/ printf(“%f %d\n”,a,b); 编译时不给出出错信息,但运行结果将与原意不符,输出为0.000000 16402它们并不是按照赋值的规则进行转换(如把4.5转换为4),而是将数据在存储单元中的形式按格式符的要求组织输出(如b占4个字节,只把最后2个字节中的数据按%d作为整数输出)。 (3)未注意int型的数据的数值范围。Turbo C等编译系统,对一个整型数据分配2个字节。因此一个整数的范围为-2的13次方到2的15次方减1,即-32768~32767常见这样的程序段: int num; num=89101; printf(“%d”,num); 得到的却是23565,原因是89101已超过32767。2个字节容纳不下89101,则将高位截去,即将超过低16位的数截去,也即89101-65536=23565,有时还会出现负数。这种情况应改为: Long int num; num=89101; printf(“%ld”,num); 注意,如果只定义num为long型,而在输出时扔用%d说明符,也会出现以上错误。 (4)在输出语句scanf中忘记使用变量的地址符。例如: scanf(“%d%d”,a,b); 这是很多初学者刚学C语言时常见的疏忽,应写为scanf(“%d%d”,&a,&b); (5)输入数据的形式与要求不符。例如有以下scanf函数: scanf(“%d%d”,&a,&b); 有人输入 3 , 4 ,这是错的数据间应该用空格来分隔,读者可以用printf(“%d%d”,a,b);来验证下。应该输入 3 4,除非函数是scanf(“%d,%d”,&a,&b); 还应注意不能企图用

Visual C++6.0中的调试工具使用及常见错误

C语言常见错误及解决方法 (注:红色粗体是常见的错误,请大家检查自己的程序,并注意尽量不要犯这些常见的错误。其余它体是避免错误的方法和正确的写法) 一、基础知识和数据类型、表达式 1、拼写错误,尤其是include,main,void,float等词。C语言的32个关键字与基本含义如下:double:声明双精度变量或函数 int:声明整型变量或函数 char:声明字符型变量或函数 float:声明浮点型变量或函数 void:声明函数无返回值或无参数,声明无类型指针(基本上就这三个作用) auto:声明自动变量一般不使用 struct:声明结构体变量或函数 break:跳出当前循环 else:条件语句否定分支(与if连用) long:声明长整型变量或函数 switch:用于开关语句 case:开关语句分支 enum:声明枚举类型 register:声明积存器变量 typedef:用以给数据类型取别名(当然还有其他作用) extern:声明变量是在其他文件正声明(也可以看做是引用变量) return:子程序返回语句(可以带参数,也看不带参数) union:声明联合数据类型 const:声明只读变量 short:声明短整型变量或函数 unsigned:声明无符号类型变量或函数 continue:结束当前循环,开始下一轮循环 for:一种循环语句(可意会不可言传) signed:生命有符号类型变量或函数 default:开关语句中的“其他”分支 goto:无条件跳转语句 sizeof:计算数据类型长度 volatile:说明变量在程序执行中可被隐含地改变 do:循环语句的循环体 while:循环语句的循环条件 static:声明静态变量 if:条件语句 2、{},[],(),‘’,“”不配对。解决这个问题最好的方法就是每当写这些符号的时候就 先写成一对,然后再在中间加内容。 3、忘记在语句的末尾加分号,或在预处理命令后多加分号。记住:每一个语句的后边都要 加分号,而预处理命令并不是语句,所以不加分号,他们必须每行一条,不能把多个命

c#.net一些基本知识文档

.net文档 一、测试数据库连接的叫.udl 二、vshost.exe 即宿主进程。宿主进程是Visual Studio 2005 中的一项功能,能提高调试性能,支持部分信任调试并支持设计时表达式计算。宿主进程文件的文件名中包含vshost,并位于项目的输出文件夹中。 作用: 宿主进程创建一个应用程序域并将调试器与应用程序关联起来。执行这些任务会导致在开始调试和开始运行应用程序之间有很明显的延迟。通过在后台创建应用程序域和关联调试器,并在运行应用程序之间保存应用程序域和调试器状态,宿主进程使性能得到提高。部分信任调试及设计时表达式计算(即时窗口)。部分信任在安全页中配置 三、服务 (一)环境变量:置环境变量有两种方式:第一种是在命令提示符运行窗口中设置;第二 种是通过单击“我的电脑→属性→高级”标签的“环境变量”按钮设置。 系统变量:系统中所有用户的变量。 用户变量:当前登录用户的变量。 Path变量:值到底是用户变量中的值还是系统变量中的值,或者两者都不是呢?答案是两者都不是。path变量的值是用户变量中的值与系统变量中的值的 叠加。%PA TH% 代表的是可执行文件的搜索路径,默认为Windows 目录 (C:\windows)和系统目录(C:\windows\system32),在此两个目录中的文件或文 件夹不需要输入完整路径即可通过运行打开。如,在运行中输入system32: 打开C:\windows\system32 文件夹,输入notepad:打开 C:\windows\notepad.exe (就是记事本),输入dllcache:打开 C:\windows\system32\dllcache 文件夹,等等。只要是这两个文件夹内的文件或 文件夹,直接输入名称即可打开。你还可以把其他路径加入到%Path% 变量, 这样你就可以通过运行开输入你要打开的程序。 环境变量和环境变量的值不要含有空格,也不要用中文,切记! (二)Installuitl.exe 的用法: 先设置Installutil.exe的环境变量,即在环境变量的Path变量中加上Installutil.exe 的路径,一般该路径为C:\WINDOWS\https://www.doczj.com/doc/7f5725397.html,\Framework\v2.0.50727\; (三)服务的安装 在使用installutil.exe命令安装该服务的时候,必须首先添加了该服务的Installer1类后并在该安装类的构造函数中写上必要的代码后才可以安装 HostInstaller = new ServiceInstaller();

C语言编程常见错误和程序调试

第十五章:C语言编程常见错误和程序调试 15.1 C语言编程常见错误 如果提示工具连接错误,则表示KEIL安装程序有问题,重新卸载,并全部删除后重新再进行安装后即可。 15.2 KEILC程序调试常见错误 https://www.doczj.com/doc/7f5725397.html,pling :C:\8051\MANN.C Error:318:can’t open file ‘beep.h’ 说明在编译C:\8051\MANN.C 程序过程中由于main.c 用了指令#i nclude “beep.h”,但却找不到所致解决方法编写一个beep.h 的包含档并存入到c:\8051 的工作目录中 https://www.doczj.com/doc/7f5725397.html,pling:C:\8051\LED.C Error 237:’LedOn’:function already has a body 说明LedOn( )函数名称重复定义即有两个以上一样的函数名称 解决方法修正其中的一个函数名称使得函数名称都是独立的 3.WARNING 206:’DelayX1ms’: missing function-prototype C:\8051\INPUT.C Error 267 :’DelayX1ms ‘:requires ANSI-style prototype C:\8051\INPUT.C 说明程序中有调用DelayX1ms 函数但该函数没定义即未编写程序内容或函数已定义但未作声明 解决方法编写DelayX1ms 的内容编写完后也要作声明或作外部声明可在delay.h 的包含档声明成外部以便其它函数调用 4.***WARNING 1:UNRESOLVED EXTERNAL SYMBOL SYMBOL:MUSIC3 MODULE:C:\8051\MUSIC.OBJ(MUSIC) ***WARNING 2:REFERENCE MADE TO UNRESOLVED EXTERNAL SYMBOL:MUSIC3 MODULE:C:\8051\MUSIC.OBJ(MUSIC) ADDRESS:0018H 说明程序中有调用MUSIC 函数但未将该函数的含扩档C 加入到工程档Prj 作编译和连接解决方法设MUSIC3 函数在MUSIC C 里将MUSIC C 添加到工程文件中去 5.***ERROR 107:ADDESS SPACE OVERFLOW SPACE: DATA SEGMENT: _DATA_GOUP_ LENGTH: 0018H ***ERROR 118: REFERENCE MADE TO ERRONEOUS EXTERNAL SYMBOL: VOLUME MODULE: C:\8051\OSDM.OBJ (OSDM) ADDRESS: 4036H 说明data 存储空间的地址范围为0~0x7f,当公用变量数目和函数里的局部变量如果存储模式设为SMALL 则局部变量先使用工作寄存器R2~R7 作暂存当存储器不够用时则会以data 型别的空间作暂存的个数超过0x7f 时就会出现地址不够的现象。 解决方法将以data 型别定义的公共变量修改为idata 型别的定义 15.3 C 编译器错误信息中文翻译 1.Ambiguous operators need parentheses 不明确的运算需要用括号括起 2.Ambiguous symbol ``xxx`` 不明确的符号 3.Argument list syntax error 参数表语法错误 4.Array bounds missing 丢失数组界限符 5.Array size toolarge

https://www.doczj.com/doc/7f5725397.html,知识结构框架

.NET知识结构框架 .NET介绍微软。NET战略及技术体系,。NET Framework框架类库(FCL),公共语言运行时(CLR),通用类型系统(CTS),公共语言规范(CLS),程序集(Assembly),应用程序域(Application Domain)。了解微软。net技术框架。 一、C#编程 1、C#语言入门 (1)。基本概念:类型、变量、条件判断,循环,类型转换、表达式、语句、命名空间。 (2)。面向对象编程:类,结构体,枚举,抽象类,接口,属性,继承与派生,方法覆盖,方法重载事件与委托,委托声明,异步委托,事件声明,事件订阅。C#异常处理:异常概述,处理机制。NET垃圾回收机制,清理非托管资源,强制垃圾回收、泛型、匿名方法、迭代器、部分类型、可空类型。掌握C#语法,面向对象的程序设计方法,C#的异常处理,垃圾回收,语言特性。 2、C#语言进阶算法与数据结构 ⑴。文件和数据流:IO概述、文件的基本操作、文件压缩/解压缩、文件监控、文件加密/解密、独立存储。 ⑵。多线程:多线程基本概念、创建线程、线程的生命周期及控制、线程的调度、互斥与同步、线程池。 ⑶。反射与属性:反射概述、反射的用途和应用领域、动态加载程序集、动态方法调用、利用反射实现多态性为类定制属性,为方法定制属性。 ⑷。NET程序集:程序集概述、版本控制、强命名程序集、全局程序集缓存、程序集的全局/私有部署,程序集安全、资源文件的使用。掌握算法与数据结构,C#文件流操作,多线程编程,反射原理,程序集概念及其部署方式。 3、C#高级编程 ⑴。网络编程:使用Socket,TCP,UDP进行网络通信,数据传输。 ⑵。C#与XML:DDT,XSD,C#的XML API,System.Xml命名空间,XmlReader,XmlWrieter,XML的导航,XML的XSL转换。 ⑶。序列化/反序列化:序列化概述、二进制序列化、XML序列化。 ⑷。NET远程处理(Remoting):远程对象,信道注册,服务注册,租约和生存期控制,异步远程调用,远程对象安全性,身份验证和授权。掌握网络通信编程,在C#中使用XML,多种形式的对象序列化,。NET远程处理框架。 阶段项目(MSN V1.0)开发一个类似于MSN的聊天工具。实现点对点聊天,文件传输,发送邮件,短信的功能。掌握C#中的网路编程技术,多线程技术,IO编程技术。 4、软件工程OOAD与UML面向对象分析与设计,UML语法,设计模式。Visual Studio 企业架构版的使用。掌握设计模式,掌握面向对象分析与设计的方法。 5、数据访问技术及数据库编程⑴。SQLServer2008使用与开发 数据库基本知识,基本的DDL,DCL,DML语句,索引,约束,视图,使用T-SQL 编写触发器,存储过程,游标,函数。根据SQLServer对。NET的支持,使用C#语言编写数据库对象,SQLServer内置对XML的支持,使用SQLSever报表服务(Reporting Services)。

MATLAB程序调试常见问题总结

MATLAB 程序调试 程序调试是一个很基本也很重要的问题。人不是神,没有谁能一遍写出完全正确没有错误的程序。 错误的程序大致分为以下三类: 1 拼写错误:比如应该是sum() ,写成了smu();这样的错误程序运行时会提示错误。 2 语法错误:比如6/0 这样的就会造成错误;这样的程序不一定会报错,但是结果显示的完全不正常。 3 逻辑错误:这样的错误非常隐蔽,往往是对算法考虑不周全。程序可以顺利通过,显示的结果也是正常的数值,但是与先验的预期不符合。 那么:如何发现错误呢? 最简单的莫过于MATLAB 直接告诉你哪行出错了,但是很多时候情况并不这么简单。比如第35 行出错了,但是出错的原因是因为上面几行的一些中间结果出错导致;或者程序根本没有报错,但是最后的结果不对。 这种时候就需要单步调试。 断点: 所谓断点,就是程序运行啊运行,运行到有断点的这一步会自动停住,方便你在中间环节调试,监督程序运行。 程序运行到当前断点:

S A i V -T A r d L V -F i t ‰ *l t l i F E ^ H Λ^ E ■ ?> I r a S ^a ?- Γ 9?l S i ?e *l. 1 诒 1诒-?*s τ s ? >? - *?K F ?? .0r l .^?<^?L ?岁: U I-□ 」 ? [■ J i . :1S-翼

在当前断点处查看变量:

STEP IN , 查看子函数运行情况:

子函数中的步进和跳出:

以上说的是MA TLAB 调试程序中最常用的方法。此外再介绍一个函数:DBSTOP 在一般的情况下,MATLAB 运行程序时遇到错误会自动停止运行。而这个函数可以实现遇到错误时自动进入调试状态,停在当前出错行。语法格式: DBSTOP IF ERROR 当然还有很多其他格式,具体的就看MA TLAB HELP 吧。

c语言中常见错误与程序调试

C语言中的常见错误与程序调试 主要内容 14.1常见错误分析 14.2程序调试 要真正学好C、用好C并不容易,“灵活”固然是好事,但也使人难以掌握,尤其是初学者往往出了错还不知怎么回事。C编译程序对语法的检查不如其他高级语言那样严格(这是为了给程序人员留下“灵活”的余地)。因此,往往要由程序设计者自己设法保证程序的正确性。调试一个C程序要比调试一个PASCAL或FORTRAN程序更困难一些。需要不断积累经验,提高程序设计和调试程序的水平。 C语言有些语法规定和其他高级语言不同,学习过其他高级语言的读者往往按照使用其他高级语言的习惯来写C程序,这也是出错的一个原因。 14.1常见错误分析 下面将初学者在学习和使用C语言(不包括C++)时容易犯的错误列举出来,以起提醒的作用。这些内容在以前各章中大多已谈到,为便于查阅,在本章中集中列举,供初学者参考,以此为鉴。 (1) 忘记定义变量。如: main() {x=3; y=6; printf("%d\n",x+y); } (2) 输入输出的数据的类型与所用格式说明符不一致。 例如,若a已定义为整型,b已定义为实型。 a=3;b=4.5; printf("%f%d\n",a,b); 编译时不给出出错信息,但运行结果将与原意不符,输出为 0.00000016402 它们并不是按照赋值的规则进行转换(如把4.5转换成4),而是将数据在存储单元中的形式按格式符的要求组织输出(如b占4个字节,只把最后两个字节中的数据按%d,作为整数输出)。 (3) 未注意int型数据的数值范围。 一般微型计算机上使用的C编译系统,对一个整型数据分配两个字节。因此一个整数的范围为 -215~215-1,即-32768~32767。常见这样的程序段: int num; num=32767; printf("%d",num+1); 得到的却是-32768,原因是32768超过32767。变成补码形式 (4) 输入变量时忘记使用地址符。如:

相关主题
文本预览
相关文档 最新文档