iOS: 如何判斷程式碼執行在DEBUG還是RELEASE模式下?
首先確定下專案的 Build Settings 是否已經設定過巨集定義 DEBUG,如何看呢?
點選 Build Settings ,然後在搜尋框裡輸入‘macros’
如果已經設定過,在 Preprocessor Macros 的 Debug 後面會有 DEBUG=1,如果沒有,就手動設定下。
接下來就可以這樣做了
#ifdef DEBUG //do sth. #else //do sth. #endif
一般Apple已經為我們設定好了 DEBUG 的巨集定義,所以,我們只要讓 NSLog 在 DEBUG 模式下失效就好了,這樣能讓我們的程式執行起來更加穩定,同時我們也可以繼續使用正規的 NSLog。
//put this in prefix.pch #ifndef DEBUG #undef NSLog #define NSLog(args, ...) #endif
相關推薦
iOS: 如何判斷程式碼執行在DEBUG還是RELEASE模式下?
首先確定下專案的 Build Settings 是否已經設定過巨集定義 DEBUG,如何看呢? 點選 Build Settings ,然後在搜尋框裡輸入‘macros’ 如果已經設定過,在 Preprocessor Macros 的 Debug 後面會有 DE
Android Studio靈活配置debug和release模式下的APPKEY
我們一般要在AndroidManifest.xml檔案中定義三方平臺的appkey,appid等屬性值,類似下面的程式碼 <meta-data android:name="UMENG_APPKEY" android:value="
MFC+OpenCV Debug正常Release模式下記憶體錯誤
出現這樣的問題多半是自己程式碼有問題,需要仔細排查 我的問題如下: frame為Mat pResult為IplImage 之前用如下方式拷貝影象 pResult = &IplImage(frame); 而MFC的Release模式下frame的記憶體會被自動回收掉
談在Debug和Release模式下輸出除錯資訊 .
在除錯程式時,有時候設定斷點單步執行並不能查出問題的所在,比如程式可能在執行一段時間後死掉了,或者對於Release版本執行不正常等等原因吧,這時需要通過設定一些輸出資訊,來幫助定位錯誤發生的位置,這點非常有用。根據個人程式設計習慣,我通常都會在程式編寫過程中適當地加入一些輸出資訊。 1、輸出巨
C\C++如何在程式碼中區分Debug或者Release模式
1、在Windows下,在VS中或者在使用MinGW作為編譯器時,在Release模式下會自動定義一個巨集NDEBUG,Debug模式下沒有,因此可以在在程式碼中判斷巨集NDEBUG是否存在來判斷是Re
iOS下Debug和Release模式
感謝rectinajh總結 這裡搬運一下: 一、Debug是除錯版本,包括的程式資訊更多,Debug通常稱為除錯版本,通過一系列編譯選項的配合,編譯的結果通常包含除錯資訊,而且不做任何優化,以為開發人員提供強大的應用程式除錯能力。 二、只
在Debug模式下中斷, 在Release模式下跳出當前函數的斷言
clas for spa sso asm ack func comm return 在Debug模式下中斷, 在Release模式下跳出當前函數的斷言 #ifdef DEBUG #define __breakPoint_on_debug asm("in
OpenCV與Debug和Release模式
機器 運行速度 com 環境 使用 行為 style atl cnblogs 1、Release和Debug的區別 Release版稱為發行版,Debug版稱為調試版。 Debug中可以單步執行、跟蹤等功能,但生成的可執行文件比較大,代碼運行速度較慢。Relea
自動打包-debug 和 release 模式,並自動生成包名
1. 我們在工作的時候,經常遇到測試的程式,但是測試程式只適合除錯使用,不能參與線上釋出。為了達到這個要求。我們通常定義一個靜態全域性變數。來控制測試程式碼和線上程式碼。 之前找了好多資料,都特別複雜,之後找到一個易用實用的方法。一句話程式碼: UavStaticVar.is
VS.NET2008在Release模式下怎麼能對某行程式碼不進行優化呢
public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); String[] st = sc.nextLine().split("
[iOS/Swift]在Release模式下(或者Archive時)關閉後臺列印操作
在 Object-C 的工程中,預設會在 Build Settings 中的 Apple LLVM x.x - Preprocessing 的 Preprocessor Maros / Debug 中新增 “DEBUG=1“ 的定義,這樣我們就可以通過 #ifdef、 #i
visual studio中,利用巨集判斷當前是debug還是release
#ifndef _DEBUG #pragma comment ( linker , "/subsystem:/"windows/" /entry:/"mainCRTStartup/"" )#end
Android在debug和release模式自動載入不同的配置檔案
思路: 1. 判斷當前執行在何種模式下 2. 載入配置檔案 1. 判斷當前執行在何種模式下 當直接在eclipse中執行程式和android tools工具打包時候,會自動修改gen/**/BuildConfig.java中的欄位DE
Release模式下無法調試打印對象的解決方式
png ima xcod spa release 技術 ont eas 忘記 之前碰到在release模式下無法打印對象的問題,只能切換到debug模式下調試, xcode release 模式下, 會關掉斷點讀取變量的上下文環境,以提高運行速度, ?? 記得調試
設定VS201X release模式下可單步除錯
在vs Debug模式下可以對程式碼進行單步除錯,檢視結果。release模式下是否也可以進行除錯呢? 答案是:yes! 下面以vs2012為例,設定release模式進行單步除錯: 1.專案---右鍵---屬性 2.配置選擇 release 3.c/c++---常規--
log4net在release模式下無法生成檔案或不寫入日誌
在Debug模式一切正常,但是在release模式下log4net不工作,查了很多資料,終於解決。具體做如下檢查修改。 1、檢查log4net寫入日誌檔案路徑是否正確; 2、檢查對應日誌檔案路徑是否有許可權; 3、檢查程式log4net配置獲取路徑; 最常見的問題是第三步,一般都是在AssemblyI
VS中Release模式下生成去掉生成pdb檔案
前幾天釋出專案,有時候就釋出那幾個dll,但是一個dll同時還有一個pdb檔案,而且pdb檔案貌似還挺大。全選的話,要複製多一份pdb檔案到伺服器,上傳時間長。不全選,就要按住ctrl,再點選每個dll,每次都麻煩得很呀,我想release下,應該可以去掉pdb檔案生成。然後
Swift Release模式下遮蔽NSLog()
1、首先在Build Settings中找到 Swift Compliler-Custom Flags,並新增以下引數 -DDEBUG引數,如下圖: 2、建立Log.swift檔案並實現下面的
在release模式下使用vector下崩潰的問題
昨天遇到一個奇怪的問題,在debug下除錯完成的程式,在release模式下總會崩潰,由於release除錯跟蹤功能偏弱,跟蹤數遍之後才發現是在一個vector的push_back時出現異常。 一般有三種情況: 1、在vect
VS的Release模式下進行除錯的VS修改和cmake修改
在有的情況下,我們可能不能直接利用Debug模式進行程式除錯,那麼如何在Release模式下進行程式除錯呢? 一、VS下修改方法