PClint错误码大全
错误代码大全

错误代码大全600某操作处于挂起状态。
601端口句柄无效。
602端口已打开。
603呼叫方缓冲区太小。
604指定了错误的信息。
605无法设置端口信息。
606无法连接端口。
607事件无效。
608设备不存在。
609设备类型不存在。
610缓冲区无效。
611路由不可用。
612没有分配路由。
613指定了无效的压缩。
614缓冲区溢出。
615找不到端口。
616某异步请求处于挂起状态。
617端口或设备已断开连接。
618端口尚未打开。
(处理方法:请打开在相应防火墙软件里,打开1701和1723端口,这是VPN拨号需要的端口)619端口已断开连接。
(处理方法:请注意1701和1723这2个端口是否给其它软件占用,以上2个问题中,如果你在局域网,请确认主机是否有限制(大部分网吧,公司内网的主机都有限制)620没有终结点。
621无法打开电话簿文件。
622无法加载电话簿文件。
623找不到电话簿条目。
624无法写入电话簿文件。
625在电话簿中发现无效信息。
626无法加载字符串。
627找不到密钥。
628端口已断开连接。
629端口已由远程机器断开连接。
630端口由于硬件故障已断开连接。
631端口已由用户断开连接。
632结构大小不正确。
633端口已被使用或不是为远程访问拨出配置的。
634无法在远程网络上注册您的计算机。
635未知错误。
636端口连接了错误的设备。
637无法转换字符串。
638请求已超时。
(处理方法:请尝试多连接几次)639没有可用的异步网络。
640出现NetBIOS错误。
641服务器无法分配需要用来支持客户端的NetBIOS资源。
642您的一个NetBIOS名称已在远程网络上注册。
643服务器上的网卡失败。
644您将无法接收弹出的网络信息。
645内部身份验证错误。
646不允许本帐户在此时间登录。
647帐户已禁用。
(处理方法:请到官方网站获取最新账号/密码)648密码已过期。
(处理方法:请到官方网站获取最新账号/密码)649帐户没有远程访问权限。
(完整版)PClint错误码大全(DOC)

1.1.1.1.1PC-LINT中的各种错误信息都有一个相关的错误号,其中各个错误号的分配区间如下:表1:PC-LINT错误号区间分配注:其中200-299号告警为PC-LINT的内部错误,一般不会发生,1.2C语法错误1.2.1-1―未关闭注释(位置)文件结束的时候,仍然有一个未关闭的注释存在,打开的这个注释位置将被显示出来。
1.2.2 ―2―未关闭的引号在行尾的时候,仍然存在一个同行的未关闭的引号(单引号或双引号)。
1.2.3 -3-#else 没有一个#if在一个区域内有一个#else ,但是没有一个#if, #ifdef 或#ifndef。
1.2.4-4-太多的#if 嵌套层次检测出一个内部的限制,有关#if的嵌套层次(包括#ifdef和#ifndef)。
1.2.5-5-太多的#endif出现一个#endif ,但不是#if 或#ifdef 或#ifndef.的。
1.2.6-6-堆栈溢出一个内置的不可展开的堆栈被过分扩展。
可能是太多的嵌套的#if 语句、#includes 语句(包括所有的递归的#include 语句),static块(有限制的括号) 或#define置换。
1.2.7-7-不能打开include的文件:FileNameFileName 是不能打开的include文件的名字。
,可以见flag fdi (见章节5.5 标志选项),选项-i... (见章节5.7其它选项) 和章节13.2.1 INCLUDE 环境变量。
1.2.8-8-未关闭的#if (位置)一个#if (或#ifdef 或#ifndef) 没有遇到相应的#endif。
位置是#if.的位置1.2.9 -9-太多的#else在#if (位置)一个给定的#if 包含一个#else,然后轮流流被紧跟另一个#else 或一个#elif。
错误消息给出#if语句条件包含异常的行号1.2.10-10-期望的字符串字符串是期望的记号,期望的记号不能被发现。
Windows错误代码解释大全

遇到什么错误了就找找,应该会有帮助的。
6001 0x1771 指定的文件无法解密。
6002 0x1772 指定的文件已加密,而且用户没有能力解密。
6003 0x1773 这个系统没有有效的加密恢复策略配置。
6004 0x1774 所需的加密驱动程序并未加载到系统中。
6005 0x1775 文件加密所使用的加密驱动程序与目前加载的加密驱动程序不同。
6006 0x1776 没有为用户定义EFS 关键字。
6007 0x1777 指定的文件并未加密。
6008 0x1778 指定的文件不是定义的EFS 导出格式。
6009 0x1779 指定的文件是只读文件。
6010 0x177A 已为加密而停用目录。
6011 0x177B 不信任服务器来进行远程加密操作。
6012 0x177C 为此系统配置的恢复策略包含无效恢复证书。
6013 0x177D 用在此源文件上的加密算法需要比目标文件上更大的密钥缓冲区。
6014 0x177E 磁盘分区不支持文件加密。
6015 0x177F 这台机器已为文件加密而停用。
6016 0x1780 需要一个更新的系统来解密此加密文件。
6118 0x17E6 此工作组的服务器列表当前无法使用6200 0x1838 要正常运行,任务计划程序服务的配置必须在系统帐户中运行。
单独的任务可以被配置成在其他帐户中运行。
6600 0x19C8 日志服务遇到无效日志扇区。
6601 0x19C9 日志服务遇到块校验无效的日志扇区。
6602 0x19CA 日志服务遇到重映射的日志扇区。
6603 0x19CB 日志服务遇到部分或未完成的日志块。
6604 0x19CC 日志服务遇到错误,原因:试图访问活动日志范围外的数据。
6605 0x19CD 日志服务用户排列缓冲区已用尽。
6606 0x19CE 日志服务遇到错误,原因:试图从读取上下文无效的排列区读取。
6607 0x19CF 日志服务遇到无效日志重新启动区域。
用PCLint检查PIC32的C代码错误

1. 引言C语言在嵌入式领域应用非常广泛,其主要优点是灵活和高效,但若在使用过程中不加以规范,容易引入各种潜在的代码问题。
先来看一段C代码,这段代码中有多少C语言的使用错误?uint8_t vFunc(void){uint8_t index = 0;for (index = 0; index {if (index == 3){vFunc_1(&index);return true;}}}比较容易发现的问题有:●for循环结束后没有返回值不太容易发现的问题有:●index初值没有使用●index值可能在vFunc_2()内被清零,使得循环一直被执行为了在编码阶段找出这些问题,常用的分析方法有静态代码分析和动态代码分析。
有研究表明,使用动态代码分析找到的问题中的95%都可以用静态代码分析找到。
中小型嵌入式软件项目一般使用静态代码分析工具作为主要分析手段,其中最常见的工具是PClint。
PCLint是GIMPEL SOFTWARE 公司研发的C/C 软件代码静态分析工具,支持几乎所有流行的编辑环境和编译器。
PC-lint不但可以检测单个文件,也可以从整个项目的角度来检测问题。
支持Scott Meyes的名著(Effective C /More Effective C )中说描述的各种提高效率和防止错误的方法。
在我们的项目中,使用C语言作为PIC32单片机的编程语言,开发环境是MPLABX,代码查看工具是source insight。
本文的主要内容就是如何将PCLint 工具集成到上述两种工具中。
集成完成后,可通过快捷键调用lint工具,对目标代码进行静态分析,再根据分析结果优化代码。
2. 配置PCLint2.1. 安装PCLint下载PCLint并安装:升级到最新版本:,下载下列文件:●复制升级包和lpatch到安装路径(C:\lint)●按住shift 右键,打开快捷菜单,选择“在此处打开命令窗口”●输入命令并执行:lpatch l9-a-b.lp, …, 依次类推直到l9-K-L.lp(每次输入一条执行)●输入命令lint-nt -v,完成上述步骤后,显示当前版本是9.00L2.2. 下载xc32编译器共用的文件打开,下载Compiler Options files:●co-cci.lnt●co-xc32.lnt将上述文件存放在lint安装路径下的lnt文件夹中(c:\lint\lnt)。
PCLint培训手册

PC-Lint简介PC-Lint是C/C++软件代码静态分析工具,它对程序进行全局分析,识别并报告C语言中的编程陷阱和格式缺陷。
它不仅可以检查出一般的语法错误,还可以检查出那些虽然符合语法要求但不易发现的潜在错误。
使用PC-Lint在代码走读和单元测试之前进行检查,可以提前发现程序隐藏错误,提高代码质量,节省测试时间。
官方网站:PC-Lint/第三方工具:Visual Lint/products/visual_lint/index.htmlLintProject/products/lintproject/index.html安装安装后的目录Lint 目录下的文件:lint-nt.exe PC-lint 执行程序config.exe PC-lint 配置程序readme.txt 帮助手册的补充信息pc-lint.pdf 帮助手册pr.exe 打印工具.msg.txt PC-lint 的错误提示消息列表,最终根据它来修改代码unwise.exe 卸载程序install.log 安装日志_LINT.TMP 保存PC-lint 检查代码后输出的错误信息,可用”记事本”打开Lnt\ ... 文件夹co-....lnt 特定编译器的配置选项co.lnt 通用编译器的配置选项sl-....c 非ANSI 编译器的标准库模块sl.c 非ANSI 编译器的通用标准库模块env-....lnt 各种编辑环境如Microsoft's Visual Studio 的配置文件lib-....lnt 特定库的配置文件au-....lnt 作者推荐检查项的配置文件,指Scott Meyers 的EffectiveC++,More Effective C++,Misra,Dan Saks 的C++ GotchasTest\... 测试代码目录配置CONFIG.exe配置向导将创建一个lin.bat文件,可用于检查C/C++文件,使用方法:lin options file1 file2 …LSET.BAT文件可用于设置PA THlin.bat的内容:InstDir\lint-nt -i ConfDir std.lnt &1 &2 ...总体而言,配置向导将产生以下文件:LIN.BATA batch file which can also be copied into your PATH and which contains a reference toSTD.LNT.STD.LNT An indirect lint file that will "point to" a compiler options file and an options file and optionally other files and options.STD_...LNTA sequence of different versions of STD.LNT that the wizard can choose from later.OPTIONS.LNTA convenient centrally located options file that you will tend to use for most of your linting.LSET.BATA batch file optionally generated to be used to place the PC-lint executable in your PATH.配置向导还将从安装目录拷贝以下文件到配置目录:co-....lnt Compiler options file(s)env-....lnt Environment options fileslib-....lnt Library options fileslib-....h Headers referenced by lib-....lnt files.au-....lnt Options files for author recommended checksfile?.cpp A pair of test programs described in the next section.运行测试程序lin filea fileb将对filea和fileb进行代码检测:filea.cpp://lint -w2 reduce the warning level to 2class X{static int a;};fileb.cpp:class X{int a;};运行结果:PC-lint for C/C++ (NT) Vers. 8.00, Copyright ...--- Module: filea.cpp--- Module: fileb.cpp_};fileb.cpp 4 Warning 631: tag X defined differently at line 3, file filea.cpp--- Global Wrap-upWarning 1527: static member X::a (line 5, file filea.cpp) not defined批量运行:lint test1.lnt使用PC-Lint检查程序代码把lin.bat加入环境变量PA TH中,方便使用假设程序包含以下几个文件:alpha.cppbeta.cgamma.c我们可以这样检查:lin alpha.cpp beta.c gamma.c使用-u选项进行单独模块的单元检查(Unit checkout):lin –u alpha.cpp这种检查方式会抑制某些检查项,例如“function not used”用+fcp标识C++模块:lin +fcp a1.c a2.c a3.c -fcp a4.c a5.cpp上述命令会把a1.c、a2.c、a3.c当成C++模块处理,a4.c作为C模块,a5.cpp作为C++模块。
系统Code_error对照表

网上找的,号称全集,但至少是比较多的了。
和大家分享一下,方便大家查找。
(一)0 0x0000 作业完成。
10x0001 不正确的函数。
20x0002 系统找不到指定的档案。
30x0003 系统找不到指定的路径。
40x0004 系统无法开启档案。
50x0005 拒绝存取。
60x0006 无效的代码。
70x0007 储存体控制区块已毁。
80x0008 储存体空间不足,无法处理这个指令。
90x0009 储存体控制区块位址无效。
100x000A 环境不正确。
110x000B 尝试载入一个格式错误的程式。
120x000C 存取码错误。
130x000D 资料错误。
140x000E 储存体空间不够,无法完成这项作业。
150x000F 系统找不到指定的磁碟机。
160x0010 无法移除目录。
170x0011 系统无法将档案移到其他的磁碟机。
180x0012 没有任何档案。
190x0013 储存媒体为防写状态。
200x0014 系统找不到指定的装置。
210x0015 装置尚未就绪。
220x0016 装置无法识别指令。
230x0017 资料错误 (cyclic redundancy check) 24 0x0018 程式发出一个长度错误的指令。
250x0019 磁碟机在磁碟找不到持定的磁区或磁轨。
260x001A 指定的磁碟或磁片无法存取。
270x001B 磁碟机找不到要求的磁区。
280x001C 印表机没有纸。
290x001D 系统无法将资料写入指定的磁碟机。
300x001E 系统无法读取指定的装置。
310x001F 连接到系统的某个装置没有作用。
320x0020 The process cannot access the file because it is being used by another process.330x0021 档案的一部份被锁定,现在无法存取。
340x0022 磁碟机的磁片不正确。
请将 %2 (Volume Serial Number: %3) 插入磁碟机 %1。
PClintError

PClintError1. c:\\lint\\std.lnt(6) : Error 307: Can't open indirect file 'lib-w32.lnt'原 std.lnt:// Microsoft Visual C++ 2021, -si4 -sp4, lib-w32.lnt // Standard lint optionsc:\\lint\\co-msc80.lnt lib-w32.lntoptions.lnt -si4 -sp4-i\//-i\//-i\//-i\修改后:// Microsoft Visual C++ 2021, -si4 -sp4, lib-w32.lnt // Standard lint optionsc:\\lint\\co-msc80.lnt c:\\lint\\lib-w32.lntc:\\lint\\options.lnt -si4 -sp4-i\//-i\//-i\//-i\2. error 322: (Error -- Unable to open include file 'co-msc80.h') ? 打开c:\\lint\\co-msc80.lnt ? 找到-header(co-msc80.h)? 改为绝对路径-header(c:\\lint\\co-msc80.h)3.使用PC-Lint时可能会遇到很多库的头文件的错误,特别是在VS中。
这时可以通过设置PC-LINT.exe的参数屏蔽库文件的错误。
一般为PC-LINT.exe -wlib(x) -wlib(0) 不生成任何库信息-wlib(1) 只生成错误信息(当处理库的源代码时) -wlib(2) 生成错误和告警信息-wlib(3) 生成错误、告警和其它信息(这是默认设置) -wlib(4) 产生所有信息另外,如果你测试时不想看一下info类的信息,可以在命令中增加-wx来屏蔽不需要显示的信息:-w0 不产生信息(除了遇到致命的错误)-w1 只生成错误信息 -- 没有告警信息和其它提示信息 -w2 只有错误和告警信息-w3 生成错误、告警和其它提示信息(这是默认设置) -w4 生成所有信息一般情况下我先使用-w1再用-w2,最后用-w3感谢您的阅读,祝您生活愉快。
PClint常见告警整理_20150710

无法执行到的语句 Unreachable code at token Name -- A portion of the program cannot be reached. The first token encountered in that portion of the program appears as the parameter in the message. Because the parameter is designated as Name the message may be suppressed for selected tokens. 变量未被引用 Symbol 'Symbol' (Location) not referenced -- The named static variable or static function was not referenced in the module after having been declared.
for循环的第三个表达式 Highest String ’Name’ lacks side-effects -- The third expression of a for clause should either be one of the privileged operators: assignment, increment,decrement or a call to an impure function or one modifying its argument(s). See Warning 522.
指针自加 Highest String ’Name’ lacks side-effects -- If a statement consists only of an expression, it should either be one of the privileged operators: assignment, increment, decrement or a call to an impure function or one modifying its argument(s). For example, if operator * is the built-in operator, the statement *p++; draws this message with String equal to operator and Name equal to *. But note that p++; does not. This is because the highest operator in the former case is '*' which has no side effects whereas p++ does. It is possible for a function to have no side-effects. Such a function is called pure. See the discussion of the pure semantic in Section 11.2.1. For example: void f() { int n = 3; n++; } void g() { f(); } will trigger this message with String in the message equal to function and Name equal to f.The definition of pure and impure functions and function calls which have side effects are given in the discussion of the pure semantic in Chapter 11 Semantics.
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
在原型内只有类型被允许。原型是圆括号内有一系列的类型的函数声明.处理器是在它检测到至少圆括号内的一个类型时,期望更多的类型或关闭的右圆括号.
1.2.49
1.2.4
检测出一个内部的限制,有关#if的嵌套层次(包括#ifdef和#ifndef)。
1.2.5
出现一个#endif,但不是#if或#ifdef或#ifndef.的。
1.2.6
一个内置的不可展开的堆栈被过分扩展。可能是太多的嵌套的#if语句、#includes语句(包括所有的递归的#include语句),static块(有限制的括号)或#define置换。
注:其中200-299号告警为PC-LINT的内部错误,一般不会发生,
1.2
1.2.1
文件结束的时候,仍然有一个未关闭的注释存在,打开的这个注释位置将被显示出来。
1.2.2
在行尾的时候,仍然存在一个同行的未关闭的引号(单引号或双引号)。
1.2.3
在一个区域内有一个#else,但是没有一个#if, #ifdef或#ifndef。
1.2.14
符号被定义第二次。提供出以前定义的位置,如果这是一个暂定的定义(没有初始化),这个消息可以用+fmdflag抑制。(章节5.5Flag选项).
1.2.15
符号被以前声明过或在其它模块定义过(其它位置)的类型和在当前位置的声明的类型不同。参数TypeDiffr提供了类型怎么不同的进一步信息(见章节17.信息).
一个给定的#if包含一个#else,然后轮流流被紧跟另一个#else或一个#elif。错误消息给出#if语句条件包含异常的行号
1.2.10
字符串是期望的记号,期望的记号不能被发现。当一定的保留字没有被认出时,给出这条消息,例如:
int __interrupt f();
将收到一个Expecting ';'message at thef,因为它认为你想声明__interrupt。改正的方法是建立一个新的保留字使用+rw(__interrupt)。同样,保证使用正确的编译器选项文件。见章节15.10奇怪的编译器.
1.2.38
struct或union被重新定义.
1.2.39
在表达式内,一个标识符在以前没有被声明并且没有紧跟一个左括号.Name是标识符的名称.
1.2.40
一个宏或函数的参数被重新定义.
1.2.41
1.2.42
在一个实例的上下文中发现虚类型例如void类型.
1.2.43
在一个switch外出现case或default语句.
1.2.28
给出的在以前(Location)声明的冒号前的标识符不是一个label.
1.2.29
期望一个常量,但是没有得到。可能是在case关键字后,数组维数、bit field长度、枚举指、#if表达式等等.
1.2.30
数据对象或函数在此模块中以前定义过又被定义。
1.2.31
给出的field的长度是非正(0或负数).
1.2.7
FileName是不能打开的include文件的名字。,可以见flagfdi(见章节5.5标志选项),选项-i... (见章节5.7其它选项)和章节13.2.1INCLUDE环境变量。
1.2.8
一个#if(或#ifdef或#ifndef)没有遇到相应的#endif。位置是#if.的位置
1.2.9
1.2.32
当一个8进制的常量包含数字8或9时,这是一个错误的形式。
1.2.33
-在一个static数据项中发现非常量初始化.
1.2.34
在一个static数据项中发现有副作用的初始化.
1.2.35
对象的存储类被改变.
1.2.36
枚举值不一致.
1.2.37
很多类或结构比早期的声明出现在不同的位置(从结构开始的偏移量).可能因为数组维数从一个模块到另一个模块的改变.
1.2.16
一个#指示符后没有跟着一个可认识的单词。如果这不是错误使用+ppw选项(章节5.7其它选项).
1.2.17
A non-parameter is being declared where only parameters should be.
1.2.18
一个符号被重新声明。参数TypeDiff提供类型不同的进一步信息(见Chapter 17.信息)。位置是先前定义的位置。
1.2.44
一个变量被声明为register,但是它的类型不应该是register(例如一个函数).
1.2.45
在结构中位域应该是类型为unsigned或int.如果你的编译器允许其它类型,例如char,那么抑制这条信息.
2.46
一元减需要一个算术操作数.
1.2.47
一元的*或左手边的指针(->)操作符需要一个指针操作数o.
1.2.11
在#includel行确定的文件名的长度超过了FILENAME_MAX字符。
1.2.12
-在一个#includeI被检测出来后和宏置换被执行后,期望一个文件的规范格式<filename>或"filename"
1.2.13
类型形容词例如long、unsigned等等。不能应用到紧跟的类型。
1.2.23
-碰到一个?操作符,o但是没有紧跟一个期望的:操作符。
1.2.24
发现一个在一个表达式开始的操作符,但是它不是一个一元操作符。
1.2.25
在一个字符常量中遇到太多的字符。
1.2.26
1.2.27
源代码中发现非法的字符。消息中提供十六进制代码。假定是一个空格。如果你使用奇怪的字符在标识符名称中,你将得到这个信息。你可以使用选项-ident(见章节5.7其它选项.)
1.1.1.1.1
表1:PC-LINT错误号区间分配
错误类型
错误号-C
错误号-C++
告警级别
语法错误
1 -199
1001-1199
1
内部错误
200-299
0
致命错误
300-399
0
告警
400-699
1400-1699
2
提示信息
700-899
1700-1899
3
可选的注解
900-999
1900-1999
1.2.19
一个类型独自的出现而没有相关的变量,类型不是struct、union和enum.一个双分号能导致这个:
int x;;
1.2.20
一个函数声明后紧跟一个符号.
1.2.21
对于不确定大小的数组的初始化必须以一个左括号开始。
1.2.22
发现一个一元操作符紧跟一个操作数,这个操作符不是一个post操作符。