導航:首頁 > 源碼編譯 > 編譯器怎麼設置告警級別

編譯器怎麼設置告警級別

發布時間: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}

閱讀全文

與編譯器怎麼設置告警級別相關的資料

熱點內容
單片機原理及應用試題 瀏覽:421
易語言開啟指定文件夾 瀏覽:33
馬思純參加密室大逃脫 瀏覽:319
文件夾冬季澆築溫度 瀏覽:710
京東有返點的aPp叫什麼 瀏覽:601
如何查看u點家庭伺服器是幾兆 瀏覽:260
python應用介面怎麼接 瀏覽:65
腐蝕怎麼進不去伺服器啊 瀏覽:357
linuxcpiogz 瀏覽:630
安卓中的布局是什麼文件 瀏覽:396
dex反編譯部分代碼無法查看 瀏覽:461
linuxandroid編譯 瀏覽:603
程序員電視劇20集 瀏覽:909
怎麼擴建文件夾 瀏覽:160
波普諾社會學pdf 瀏覽:98
通風網路理論與演算法 瀏覽:740
win8如何關閉伺服器 瀏覽:383
醫護比例演算法 瀏覽:810
伺服器s是什麼意思 瀏覽:33
華為手機怎麼設置不讓app訪問照片 瀏覽:695