導航:首頁 > 源碼編譯 > 編譯錯誤日誌

編譯錯誤日誌

發布時間:2022-09-08 16:21:01

A. iOS 編譯報錯怎麼辦

1.編譯iPad真機時,選擇了 Architetures:Standard(armv6) BaseSDK:iPhoneDevice3.2 TargetDeviceFamily:iPad.

若編譯出現如下錯誤:

Command /Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/gcc-4.2 failed with exit code 1

則修改 GCC4.2CodeGeneral區域中的ComplieForThumb為非選中.

已經有了開發者證書及私鑰後,可直接在越獄的手機上調試.

2. 編譯鏈接時, "_OBJC_CLASS_$_xxx", referenced from:可能需要重新建立某個類的文件.

或者:選擇項目名,在detail列表中的target列(顯示為一個又圓圈),把這個文件的復選選中,或者再次選中.以把它加入到這個target裡面來.

3.在sdk4.0及以上使用RegexKitLite報'captureCount' was not declared in this scope錯誤,是在非.m文件中使用了它的原因.

4.there is no sdk with the name or path.

從網上down的開源代碼,結果運行的時候常出現這樣的錯,並且在deployment中沒有iosdeploymenttarget選項.

嘗試 Project/Edit Active Target/ 及 Set Active SDK菜單項,來回切換一下Active Configuration。

5. EXEC_BAD_ACCESS,EXC_BAD_INSTRUCTION錯誤,意味著這個app有內存管理的問題,一般是因為訪問野指針對象造成的。

一個和內存相關的崩潰一般很難定位到源代碼,因為這個惡魔可能很早就在程序中做了壞事了。假如一段有問題的代碼混亂了內存結構,這樣產生的蝴蝶效應可能會在之後很久才表現出來,並且總在不同的地方。所以,若有指針類型出現了不可能的變化,很可能就是因為內存結構被野指針調用混亂了。

修復一些警告後,可能就能預防一些內存錯誤。警告在左邊靠近行號的黃色三角指出一個編譯警告,你點擊那個黃色的三角形,xcode可能會彈出一個「Fix-it」的建議。

EXC_BAD_ACCESS崩潰不像SIGABRT,將不會得到很明朗的錯誤消息。然而可以使用一個讓人看到曙光的調試工具:Zombies!死亡對象工具。打開這個項目的scheme editor,選擇Run 選項,然後選擇Diagnosics標簽。勾上Enable Zombie Objects選項。當這個zombie工具被啟用之後,即使這個對象被釋放了,這個對象的內存也不會被清理。所以,那塊內存將會被標記為「長生不死的」。假如你試著之後又去使用這塊內存,這個app能夠意識到你的錯誤操作,並且app將會拋出「messagesent to daellocated instance」錯誤並且終止運行。

在工程中加入NSZombieEnabled 環境變數,並設為啟用,則在 EXC_BAD_ACCESS 發生時,XCode 的 Console 會列印出問題描述中,設置方法:雙擊Executables 下的 可執行模組,在彈出窗口中,Variables to be set in the environment,添加 NSZombieEnabled,並設定為 YES,點擊選中復選框啟用此變數。

可以再加入 MallocStackLogging 來啟用malloc記錄,以獲得更多的提示來幫助定位問題。

在gdb窗口輸入 (格式: shell malloc_history <id> <address>) shellmalloc_history1436 0x5f7fcf0, 也可以在終端中去運行 就要去掉以上的shell 指令 如 malloc_history <id> <address>

應該僅當需要調試內存時,才設置上述環境變數。

注意一點:不應該一直啟用zombie objects。因為這個工具將永遠不會釋放內存,只是簡單標記一下這個內存是不死的,你最終將會在某個時候耗盡所有的內存,因為所有分配過的內存都不會得到重用。因此應該在排查內存相關的錯誤的時候才開啟zombie objects,其他時候應該關閉它。

在xcode4中,To edit environment variables, go to Menu Proct / Edit Scheme…, select the desired configuration (you probably want 'Run') from the left sidebar first and then click on the Arguments tab. Environment variables are configurable there.

6.運行一個IPhone程序時,彈出窗口說「程序運行失敗,預置描述文件已過期」 。 解決辦法是,在Xcode中, window-> Orgnazier -> 你的iphone ->刪除帶有紅*的該程序之前的Profile 。 然後從Xcode運行該程序.

7.真機編譯時報 Code Sign error: The identity doesn't match any valid certificate/private key pair in the default keychain

修改工程和Targets的get infouild 中的code signing identity為空

8.調試列印

CFShow(coreFoundationThingy) will print out a description of coreFoundationThingy to the console. Output looks something like: {value = w:1186.000000 h:687.000000 type = kAXValueCGSizeType}

If NSLog() is printing something out as an NSCFType, try CFShow().

9. 編譯時報 Command /Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin/clang failed with exit code 1,修改C/C++ Compiler Version為gcc4.2

10.this class is not key value coding-compliant for the key viewController

可能在創建了一個基於view的工程,而後把生成的viewcontroller刪除了,但是在.xib中還有對它的引用,在IB中直接用delete鍵刪除掉它就行了。

11.這台電腦上已經存在一個名為「embedded.mobileprovision」的預置文件,您是否要替換么?

http://blog.sina.com.cn/s/blog_6907b67f0100o2vw.html

12.真機調試時報failed to upload *.app

http://hi..com/%CB%E6%B7%E7_1989/blog/item/9649f49f805f05aec8eaf466.html

http://www.shouyanwang.org/thread-462-1-1.html

13.記的release時,先置delegate為nil。

一個節點不應該保留任何對不屬於它的節點的引用。

14.模擬器

將xcode升級到4.3.1以後發現,ipad的模擬器,沒有Home鍵了。Command+Shift+H就可以實現類似點擊Home鍵的效果了。

B. VS編譯錯誤,如何解決

在查找預編譯頭時遇到意外的文件結尾。是否忘記了向源中添加「#include "stdafx.h"」? 編譯器已經估計錯誤所在,你根據提示查找錯誤,在源文件中看看有沒有#include "stdafx.h"這句話

C. VS編譯 出現未能寫入日誌錯誤!~

以上回答簡直就是瞎扯,真正的原因是因為目錄名稱。
更改目錄就解決問題了。就是把項目換個位置,目錄名最好只是英文路徑。

D. webpack編譯過程中,如何顯示編譯中的錯誤信息

webpack 編譯出錯了自然會顯示出錯信息的,不需要其他操作。
可以加上--display-error-details來看更詳細的錯誤日誌

E. windows下怎麼分析apache日誌

Apache 的標准中規定了4類日誌:

錯誤日誌
訪問日誌
傳輸日誌
Cookie日誌

其中:傳輸日誌和Cookie日誌被Apache 2.0認為已經過時。所以本節僅僅討論錯誤日誌和訪問日誌。同時錯誤日誌和訪問日誌被Apache 2.0默認設置。
能從日誌中獲取哪些信息

* 訪問日誌
o 訪問伺服器的遠程機器的地址:可以得知瀏覽者來自何方
o 瀏覽者訪問的資源:可以得知網站中的哪些部分最受歡迎
o 瀏覽者的瀏覽時間:可以從瀏覽時間(如工作時間或休閑時間)對網站內容進行調整
o 瀏覽者使用的瀏覽器:可以根據大多數瀏覽者使用的瀏覽器對站點進行優化
* 錯誤日誌
o 獲知失效鏈接
o 獲知 CGI 錯誤
o 獲知用戶認證錯誤

配置錯誤日誌

錯誤日誌記錄了伺服器運行期間遇到的各種錯誤,以及一些普通的診斷信息,比如伺服器何時啟動、何時關閉等。
錯誤日誌配置指令
ErrorLog

ErrorLog 指令指定了當伺服器遇到錯誤時記錄錯誤日誌的文件名。其格式為:

格式1:ErrorLog 錯誤日誌文件名
格式2:ErrorLog "|管道程序名"

格式1直接指定錯誤日誌文件名,除非文件位置用」/「開頭,否則 ErrorLog 所制定的文件位置是相對於 ServerRoot 目錄的相對路徑。

格式2實現管道日誌,它指定一個命令來處理錯誤日誌。
Apache 編譯時默認的錯誤日誌可以使用如下命令獲得:

$ apache2 -V| grep DEFAULT_ERRORLOG
-D DEFAULT_ERRORLOG="logs/error_log"

LogLevel

LogLevel 用於調整記於錯誤日誌中的信息的詳細程度。其格式為:

LogLevel 錯誤日誌記錄等級

下面著重說說日誌記錄等級:
緊急程度 等級 說明
1 emerg 出現緊急情況使得該系統不可用,如系統宕機等
2 alert 需要立即引起注意的情況
3 crit 危險情況的警告
4 error 除了emerg、alert、crit的其他錯誤
5 warn 警告信息
6 notice 需要引起注意的情況,但不如error、warn重要
7 info 值得報告的一般消息
8 debug 由運行於debug模式的程序所產生的消息

如果指定了等級 warn,那麼就記錄緊急程度為1至5的所有錯誤信息。
Ubuntu 中 Apache 的錯誤日誌配置

配置錯誤日誌相對簡單,只要說明日誌文件的存放路徑和錯誤日誌記錄等級即可。

從 Ubuntu 中的 /etc/apache2/apache2.conf 中可知,默認的錯誤日誌存放在 /var/log/apache2/error.log

ErrorLog /var/log/apache2/error.log
LogLevel warn

您可以在 /etc/apache2/apache2.conf 中設置錯誤日誌記錄等級,也可以在相應的虛擬主機的配置文件中設置。
錯誤日誌文件舉例

下面是一個錯誤日誌文件的截取。

$ sudo tac /var/log/apache2/error.log
[Wed Jun 20 14:53:15 2007] [error] [client 192.168.0.66] File does not exist: /usr/share/phpmyadmin/favicon.ico
[Wed Jun 20 11:12:50 2007] [notice] Apache/2.0.55 (Ubuntu) DAV/2 SVN/1.3.1 mod_python/3.1.4 Python/2.4.3 PHP/5.1.2 configured -- resuming normal operations
[Wed Jun 20 11:12:49 2007] [notice] Digest: done
[Wed Jun 20 11:12:49 2007] [notice] Digest: generating secret for digest authentication ...
[Wed Jun 20 09:22:22 2007] [notice] caught SIGTERM, shutting down

從文件內容可以看出,每一行記錄了一個錯誤。格式為:

日期和時間 錯誤等級 錯誤消息

配置訪問日誌
CustomLog

CustomLog 指令用來對伺服器的請求進行日誌記錄。格式為:

格式1:CustomLog 訪問日誌文件名 記錄格式說明串|格式昵稱
格式2:CustomLog "|管道程序名 訪問日誌文件名" 記錄格式說明串|格式昵稱

其中:

1. 訪問日誌文件名:除非文件位置用」/「開頭,否則所制定的文件位置是相對於 ServerRoot 目錄的相對路徑
2. 格式昵稱:使用 LogFormat 指令將一個記錄格式說明串賦以一個名稱
3. 記錄格式說明串:用字元串和格式說明符(以%開頭)指定日誌記錄的內容
4. 管道程序名:管道符」|」後面緊跟著一個程序的路徑,這個程序把日誌從標准輸入設備中讀入並處理。

在 Ubuntu 的 Apache 默認配置中並沒有使用 CustomLog 設置訪問日誌,若您希望記錄訪問日誌,您需要在虛擬主機的配置文件中分別設置,例如:在 /etc/apache2/sites-available/default 中有如下的設置:

CustomLog /var/log/apache2/access.log combined

LogFormat

為了便於分析 Apache 的訪問日誌,Apache 的默認配置文件中,按記錄的信息不同(用不同格式昵稱說明不同的信息)將訪問日誌分為4類,並由 LogFormat 指令定義了昵稱,如表所示。
格式分類 格式昵稱 說明
普通日誌格式(common log format,CLF) common 大多數日誌分析軟體都支持這種格式
參考日誌格式(referer log format) referer 記錄客戶訪問站點的用戶身份
代理日誌格式(agent log format) agent 記錄請求的用戶代理
綜合日誌格式(combined log format) combined 結合以上三種日誌信息

LogFormat 指令用於定義訪問日誌的記錄格式。格式為:

LogFormat "記錄格式說明串" 格式昵稱

從 /etc/apache2/apache2.conf 中可知,在 Ubuntu 的 Apache 中定義了下面的 4 種類型的訪問日誌:

LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
LogFormat "%h %l %u %t \"%r\" %>s %b" common
LogFormat "%{Referer}i -> %U" referer
LogFormat "%{User-agent}i" agent

由於綜合日誌格式簡單地結合了3種日誌信息,所以在配置訪問日誌時,要麼使用一個綜合文件進行記錄,要麼使用分離的多個(1-3)文件記錄。通常使用一個綜合日誌格式文件進行記錄,配置為:

CustomLog /var/log/apache2/access.log combined

若使用3個文件分別進行記錄,配置為:

CustomLog /var/log/apache2/access.log common
CustomLog /var/log/apache2/referer.log referer
CustomLog /var/log/apache2/agent.log agent

下面的指令組:

LogFormat "%h %l %u %t \"%r\" %>s %b" common
CustomLog logs/access_log common

與下面的指令等效:

CustomLog logs/access_log "%h %l %u %t \"%r\" %>s %b"

通常我們配置訪問日誌時,使用先使用 LogFormat 指令定義格式昵稱,然後再在 CustomLog 指令中引用昵稱的方法。
格式說明符

在使用 LogFormat 和 CustomLog 指令中為了說明要記錄的日誌內容,可以使用的常用格式說明符如下表。
格式說明符 說明
%v 進行服務的伺服器的標准名字 ServerName,通常用於虛擬主機的日誌記錄中。
%h 客戶機的 IP 地址。
%l 從identd伺服器中獲取遠程登錄名稱,基本已廢棄。
%u 來自於認證的遠程用戶。
%t 連接的日期和時間。
%r HTTP請求的首行信息,典型格式是「METHOD RESOURCE PROTOCOL」,即「方法 資源 協議」。經常可能出現的 METHOD 是 GET、POST 和 HEAD;RESOURCE 是指瀏覽者向伺服器請求的文檔或 URL;PROTOCOL 通常是HTTP,後面再加上版本號,通常是 HTTP/1.1。
%>s 響應請求的狀態代碼,一般這項的值是 200,表示伺服器已經成功地響應瀏覽器的請求,一切正常;以 3 開頭的狀態代碼表示由於各種不同的原因用戶請求被重定向到了其他位置;以 4 開頭的狀態代碼表示客戶端存在某種錯誤;以 5 開頭的狀態代碼表示伺服器遇到了某個錯誤。
%b 傳送的位元組數(不包含HTTP頭信息),將日誌記錄中的這些值加起來就可以得知伺服器在一天、一周或者一月內發送了多少數據。
%{Referer}i 記錄引用此資源的網頁。
%U 請求的URL路徑,不包含查詢串。
%{User-Agent}i 使用的瀏覽器信息。
訪問日誌文件舉例

由於整個格式說明字元串是放在」「之內的,所以若要輸出的日誌信息內含有引號,需要將」前加轉義符\。例如:若要輸出子串」GET /apache_pb.gif HTTP/1.0」,則格式字元串為\」%r\」。

F. 如何查看wamp中php編譯的錯誤

查看wamp目錄下的logs下的apache_error.log

閱讀全文

與編譯錯誤日誌相關的資料

熱點內容
卡爾曼濾波演算法書籍 瀏覽:768
安卓手機怎麼用愛思助手傳文件進蘋果手機上 瀏覽:843
安卓怎麼下載60秒生存 瀏覽:802
外向式文件夾 瀏覽:235
dospdf 瀏覽:430
怎麼修改騰訊雲伺服器ip 瀏覽:387
pdftoeps 瀏覽:492
為什麼鴻蒙那麼像安卓 瀏覽:735
安卓手機怎麼拍自媒體視頻 瀏覽:185
單片機各個中斷的初始化 瀏覽:723
python怎麼集合元素 瀏覽:480
python逐條解讀 瀏覽:832
基於單片機的濕度控制 瀏覽:498
ios如何使用安卓的帳號 瀏覽:882
程序員公園采訪 瀏覽:811
程序員實戰教程要多長時間 瀏覽:974
企業數據加密技巧 瀏覽:134
租雲伺服器開發 瀏覽:813
程序員告白媽媽不同意 瀏覽:335
攻城掠地怎麼查看伺服器 瀏覽:600