导航:首页 > 源码编译 > 编译器怎么设置告警级别

编译器怎么设置告警级别

发布时间:2024-09-07 23:05:00

Ⅰ C语言编译器icc与gcc编译出来的执行文件有什么区别

ICC 是intel 针对intel 体系架构开发的编译器,显然,你的代码,如果运行在intel机器上,intel的人开发的编译器,编译出来的可执行代码效率更高。毕竟人家对intel体系结构这么熟悉,里面的优化说明的,肯定做得不错。但是只能运行在intel体系结构上。比如你的PPC的板子就不能运行了。

GCC是一般性的通用的编译器,可以编译运行在各种体系结构上的代码,比如intel, PPC, ARM, MIPS。它很通用。里面的开发者,当然也熟悉intel 体系架构。但是也要考虑到通用。所以,是一般化的选择。在intel体系结构上运行的话,可能某些地方不如ICC的效率高。

他们实现的原理基本是一致的,但是在细节上,肯定差别很大。比如针对同一种语句,有的会告警,有的不会。有些支持扩展特性。有些不支持。

Ⅱ 编译这样的告警怎么消除掉

楼主这是什么工具?这个是编译告警还是运行时候的告警?

从字面来看是
1、第一个告警是隐式定义系统山饥告函数strcmp,这个肢敬包含逗明一下头文件就可以了。具体参照二楼的包含string.h,如果楼主是windows操作系统的话,有个最全的头文件windows.h,直接包含进来省事了。
#include <windows.h>或者
#include <string.h>

2、第二个告警是隐式类型转换,int(整数)到unsigned int(无符号整数)会导致精确度丢失。strlen返回的是字符串的长度,长度不会是负数,所以一定是无符号的。楼主的len定时成unsigned int就行了。

int len改成
unsigned int len就行了。

或者
len = (int)strlen(codeb);显示的强制类型转换。

楼主的编译器很严格,一般编译器对这种告警都是忽略的。楼主忽略也可。

Ⅲ 在Keil uVision4中,用C语言,不调用的子程序,会不会编译

1. “这两者都是用相同软件,有何区别?”
是不同的软件。

2. “为什么8051不可以自动不编译没有调用的子程序?”
因为用户可能在汇编中隐式调用某个字程序。
对于你所说“在编译ARM(LPC1768)时,有子程序没有被调用,不会有警告,不调用的程序有不会编译为代码”我持怀疑态度。

不管哪种方式编程都很有可能隐式调用函数的,如通过函数指针。所以不编译非显式调用的子程序是明显违反编程人员意图的行为。两种可能:默认项目设置不当;或者对这类子程序需要添加特别的类型说明或编译开关。
想知道两种编译套装的区别,最好的资料就是其自带的说明文档。那几十兆的说明文档看下来包你受益无穷。

Ⅳ 计算机通过什么可以查询程序代码

10 代码编辑、编译、审查
10-1:打开编译器的所有告警开关对程序进行编译。
10-2:在产品软件(项目组)中,要统一编译开关选项。
10-3:通过代码走读及审查方式对代码进行检查。
说明:代码走读主要是对程序的编程风格如注释、命名等以及编程时易出错的内容进行检查,可由开发人员自己或开发人员交叉的方式进行;代码审查主要是对程序实现的功能及程序的稳定性、安全性、可靠性等进行检查及评审,可通过自审、交叉审核或指定部门抽查等方式进行。
10-4:测试部测试产品之前,应对代码进行抽查及评审。
10-1:编写代码时要注意随时保存,并定期备份,防止由于断电、硬盘损坏等原因造成代码丢失。
10-2:同产品软件(项目组)内,最好使用相同的编辑器,并使用相同的设置选项。
说明:同一项目组最好采用相同的智能语言编辑器,如Muiti Editor,Visual Editor等,并设计、使用一套缩进宏及注释宏等,将缩进等问题交由编辑器处理。
10-3:要小心地使用编辑器提供的块拷贝功能编程。
说明:当某段代码与另一段代码卜让前的处理功能相似时,许多开发人员都用编辑器提供的块拷贝功能来完成这段代码的编写。由于程序功能相近,故所使用的变量、采用的表达式等在功能及命名上可能都很相近,所以使用块拷贝时要注意,除了修改相应的程序外,一定要把使用的每个变量仔细查看一遍,以改成正确的。不应指望编译器能查出所有这种错误,比如当使用的是全局变量时,就有可能使某种错误隐藏下来。
10-4:合理地设计软件系统目录,方便开发人员使用。
说明:方便、合理的软件系统目录,可提高工作效率。目录构造的原则是方便有关源程序的存储、查询、编译、链接等工作,同时目录中还应具有工作目录----所有的编译、链接等工作应在此目录中进行,工具目录----有关文件编辑器、文件查找等工具可存放在此目录中。
10-5:某些语句经编译后产生告警,但如果你认为它是正确的,那么应通过某种手段去掉告警信息。
说明滑码:在Borland C/C++中,可用“#pragma warn”来关掉或打开某些告警。
示例:
#pragma warn -rvl //型清 关闭告警
int examples_fun( void )
{
// 程序,但无return语句。
}
#pragma warn +rvl // 打开告警
编译函数examples_fun时本应产生“函数应有返回值”告警,但由于关掉了此告警信息显示,所以编译时将不会产生此告警提示。
10-6:使用代码检查工具(如C语言用PC-Lint)对源程序检查。
10-7:使用软件工具(如 LogiSCOPE)进行代码审查。

Ⅳ zabbix告警配置

概述

假设我们配置了一些监控项和触发器,现在当触发器状态改变时会获取一些发生的事件,是时候考虑下一步行动了。

我们不可能一直盯着触发器或者事件列表,当发生一些标志性的事件时发送警告再好不过。当问题发生,关注这些的用户都会被通知。

zabbix提供主要的功能就是发送告警就是这个原因。哪些人?在什么时候?应该收到哪些信息是可以被定义的。

为了发送和接收来自zabbix的告警,你必须:

定义媒介

配置发送信息到定义媒介的动作

动作由 触发条件 和 操作 组成。基本上当条件符合时,操作被执行。两个主要的操作是 发送消息 和 执行远程命令

为了发现和自动注册创建的事件,一些额外的操作是可用的,包含添加或者删除主机,链接模板等

一、媒介(Media types)

概述

Media 是用于发送zabbix的消息与告警的递送通道

可以定义一下媒介类型

E-mail

SMS

Jabber

Ez Texting

Custom alertscripts

1、 E-mail

为消息定义E-mail发送通道,需要配置e-mail 作为媒介类型并且传递指定的地址给用户

配置

依次点击 管理——>报警媒介类型,点击创建媒介类型(或者点击预先定义的媒介类型 E-mail)

媒介类型表包含通常的媒介类型属性

所有重要的字段都会标记红星

Name 媒介类型名字

Type 选择Email作为类型

SMTP server 设置stmp服务器作为处理信息的出口

SMTP server port 设置smtp服务的端口,这个参数从zabbix3.0开始支持

SMTP helo 这是正确的stmp链接值,通常为域名

SMTP email 这个地址会被用于信息发送者,用来发送消息,添加发送者的显示名 如 Zabbix_info则zabbix_info<[email protected]>

几个可以生效的配置:

[email protected] 只有邮箱地址,不需要尖括号

zabbix_info<[email protected]> 显示名与邮件地址,地址写在尖括号中

监控系统<[email protected]> 使用UTF-8格式的显示名

Connection security 选择链接安全级别,None为不使用ssl选项,starttls 使用 CURLOPT_USE_SSL参数,SSL/TLS则CURLOPT_USE_SSL可选

SSL verify peer 标记checkbox同步SMTP服务的SSL证书,

Authentication 认证方法

Username 用户名

Password 密码

Enabled 启用媒介

注意 : 为了使SMTP中的authentication 选项可用,zabbix在编译时,需要带--with-libcurl参数 使用cURL7.20.0或更高版本

第二个选项卡options

第二个选项卡options配置了告警的处理流程。同样的options配置在其他的媒介类型中也存在。

所有媒介都是并行处理的,当前最大会话每个媒介自己定义,但是zabbix服务的告警处理总数被参数(zabbix_sever.conf)StartAlerters所限制。同一触发器生成的告警会序列化的处理

options表

concurrent sessions 并发会话数,三个选项,one(一个),unlimited(不限制),custom(自定义)

Attempts 尝试发送告警的次数,如果设置为1,则zabbix会发送以此通知,并且失败时不会重发

Attempts interval  重发通知的频率,发送失败时重发的间隔

配置用户的媒介

依次点击 Administration(管理)--->Users(用户)

点击用户的属性表,在Media(媒介)表中点击add

type 选择Email作为类型

send to 指定email地址,可以点击add添加多个地址,同理此地址也可设置显示名如Zabbix_admin<[email protected]>或者[email protected]

when active 设置发送时间如工作日(1-5,09:00-18:00)可以使用宏

Use if severity 指定想要接受的告警等级

status 启用与否

2、SMS

zabbix发送短信,使用串行GSM调试解调器连接到zabbix server的serial port

先决条件:

串行设备(正常情况下在linux的/dev/ttyS0)的速度取决于modem。zabbix不设置串行链接的速度。

zabbix user拥有对串行设备的读写权限,运行ls -l /dev/ttyS0查看当前权限

GSM调试解调器拥有PIN码,PIN也可以禁用使用命令 AT+CPIN="NNNN"输入PIN, 必须有双引号。

已经测试好的modem Siemens MC35 Teltonika ModemCOM/G10

配置SMS作为发送通道,需要配置SMS作为媒介类型并且在用户界面配置接收手机号

配置

依次点击 Administration--->Media types,点击创建media type或使用预先的配置

sms的Media type表属性

Description media type名

Type 选择SMS

GSM modem 选择设备如 /dev/ttyS0

options选项卡见E-mail

配置用户媒介

依次点击 Administration(管理)--->Users(用户)

点击用户的属性表,在Media(媒介)表中点击add

types 选择SMS作为媒介

Send to 输入用户手机号

When active 设置发送时间如工作日(1-5,09:00-18:00)可以使用宏

Use if severity 指定想要接受的告警等级

status 启用与否

3、Jabber (略)

4、Ez Texing(略)

5、Custom alertscripts

如果不满足于存在的媒介来发送警告,可以自定义脚本进行发送

警告脚本在zabbix server上执行,这些脚本位于server配置文件AlertScriptsPath变量(默认/usr/local/share/zabbix/alertscripts)

脚本示例:

#!/bin/bash

to=$1

subject=$2

body=$3

cat <<EOF |mail -s "$subject" "$to"

$bodyEOF

从3.4开始zabbix会检查exit code(shell执行返回码,0为成功),若exit code 不等于0,则认为执行失败,zabbix会重复执行

script不保存环境变量,所以环境变量要精确指定

配置

依次点击 Administration--->Media types,点击创建media type

mediatype表属性

Name 输入媒介的名字

Type 选择Script作为类型

Script name 输入脚本的名字(zabbix server中的脚本文件)

Script parameters 添加命令行参数到脚本

可支持ALERT.SENDTO}、{ALERT.SUBJECT}、{ALERT.MESSAGE}等宏,

{ALERT.SENDTO} 用户媒介中的send to(收件人)的值

{ALERT.SUBJECT} 动作配置中的Default subject(默认标题)

{ALERT.MESSAGE} 动作配置中的Default message(消息内容)

options表中定义了处理流程,见E-mail的说明

配置用户媒介User media

依次点击 Administration(管理)--->Users(用户)

点击用户的属性表,在Media(媒介)表中点击add

用户媒介属性

Type 选择自定义脚本的媒介类型

Send to 指定告警接收人

When active 设置发送时间如工作日(1-5,09:00-18:00)可以使用宏

Use if serverity 指定想要接受的告警等级

status 启用与否

二、动作

如果你希望发生事件时会触发一些操作,那么你需要配置action

动作可以定义回应所有支持的事件类型,

事件类型:

Trigger events触发器事件,当触发器状态从ok改变到problem或相反。

Discovery events 当自动发现产生

Auto registration events当新的agent自动注册时,或者经注册过的主机元数据改变

Internal events当监控项变为不支持或触发器状态变为unknown时

配置一个动作

依次 Configuration ——>Actions

从event source中选择需要的源(分为:触发器源,自动发现源,自动注册源,事件源)

点击创建动作

选择操作执行的条件

选择具体操作

选择恢复操作

动作表的属性

Name 唯一动作名

Type of calcaulation 选择条件触发的计算方法

And 必须符合所有条件

Or 只要一个条件符合即可

And/Or 结合二者,不同类型的条件用And,同一类型的条件用Or

Custom expression 用户自定义

Conditions 触发动作的一系列条件、

New condition 选择新的动作触发条件

Enabled 启用动作

条件设置

基于触发器的条件

Application 应用集

Host group 主机组

Template 模板

Host 主机

Tag 标签(串)

tag value 标签值

Trigger 触发器

Trigger name 触发器名字

Trigger severity 触发器等级

Time period 触发时间

Problem is suppressed 触发问题是否意料之中,如主机维护

基于自动发现的条件

Host IP 指定主机ip地址自动发现范围 格式: 单独的ip:192.168.1.33 范围ip: 192.168.1-101.1-254  Ip mask: 192.168.4。0/24

Service type 服务类型

service port 服务端口

Discovery rule 指定自动发现规则

Discovery check

Discovery object

Discovery status

Uptime/Downtime

Received value

Proxy

基于自动注册的条件

Host metadata 由zabbix_agentd.conf 文件中的HostMetadata变量定义

Host name

Proxy

基于内部事件的条件

Application

Event type

Host group

Template

Host

条件匹配后,就需要执行响应的动作了

可以支持以下动作

send a message

execute a remote command

add host

remove host

enable host

disable host

add to host group

remove from host group

link to template

unlink from template

set host inventory mode

执行远程命令

确保配置文件中(zabbix_agentd.conf)EnableRemoteCommands 参数设置为1

加入zabbix用户到sudo,vim /etc/sudoer

zabbix ALL=NOPASS: ALL #所有命令不需密码

zabbix ALL=NOPASS: /etc/init.d/apache restart  #指定某一命令不需要密码

触发操作后,使用宏 编辑信息

如 告警信息模板

标题 服务器:{HOST.NAME} - 发生: {TRIGGER.NAME}故障

信息 告警主机:{HOST.NAME}

告警地址:{HOST.IP}

监控项目:{ITEM.NAME}

监控取值:{ITEM.LASTVALUE}

告警等级:{TRIGGER.SEVERITY}

当前状态:{TRIGGER.STATUS}

告警信息:{TRIGGER.NAME}

告警时间:{EVENT.DATE} {EVENT.TIME}

事件ID:{EVENT.ID}

恢复信息

标题 服务器:{HOST.NAME} - {TRIGGER.NAME} 已恢复

信息 告警主机:{HOST.NAME}

告警地址:{HOST.IP}

监控项目:{ITEM.NAME}

监控取值:{ITEM.LASTVALUE}

告警等级:{TRIGGER.SEVERITY}

当前状态:{TRIGGER.STATUS}

告警信息:{TRIGGER.NAME}

告警时间:{EVENT.DATE} {EVENT.TIME}

恢复时间:{EVENT.RECOVERY.DATE} {EVENT.RECOVERY.TIME}

持续时间:{EVENT.AGE}

事件ID:{EVENT.ID}

阅读全文

与编译器怎么设置告警级别相关的资料

热点内容
看电视可以用什么app 浏览:941
安卓路由表怎么看 浏览:76
10个小孩分糖果python 浏览:823
安卓app小红点怎么取消 浏览:288
马哥linux面授 浏览:770
2345程序员 浏览:371
怎么开启网速显示安卓 浏览:206
索尼950app怎么样 浏览:393
计算机毕设论文源码 浏览:148
小米手机怎么下载易媒体App 浏览:191
还原系统设计可以怎样清理文件夹 浏览:670
北京时间校准服务器云服务器 浏览:844
pythonexcel数据计算 浏览:49
内医附院党建APP怎么下载 浏览:356
荣耀v20刷加密门禁卡 浏览:329
app缓冲视频怎么保存在手机 浏览:433
广度优先算法c语言 浏览:680
提高程序员竞争力 浏览:108
nfc可以开加密门卡吗 浏览:675
如何知道网页使用的服务器是什么 浏览:224