對於segmentation fault或者異常退出的程式,macos中使用lldb除錯工具(linux裡是gdb)可以更方便的判斷問題出在**,如下:
①開啟core檔案生成開關(注意這個僅在當前terminal視窗有用),unlimited
表示不限制core檔案大小,可以使用-c
檢視是否開啟,預設是0
②使用g++編譯cpp檔案並執行a.out檔案,-g引數表示生成除錯資訊;可執行檔案預設名為a.out,可以用-o引數自定義。
% g++ test.
cpp-g %.
/a.out
③從terminal可以看出,已經生成了core檔案,在macintosh hd根目錄的隱藏資料夾cores中,使用ls指令檢視core檔名
%
ls/cores
④最新的core.79651是剛才生成的,使用lldb除錯工具,並用backtrace指令列印堆疊資訊,可以定位到出問題的行數
可以看出,第8行出現了問題,源**如下:
#include
#include
using
namespace std;
intmain()
對空指標進行解引用賦值操作,造成了段錯誤。 除錯lldb命令常用
lldb在xcode4.3或者之後的版本裡面是預設的偵錯程式。假如你正在使用老一點版本的xcode的話,你又gdb偵錯程式。他們有一些基本的相同的命令,因此假如你的xcode使用的是 gdb 提示,而不是 lldb 提示的話,你也能夠更隨一起做,而沒有問題。po 命令是 print object 列...
lldb除錯IPHONE步驟
參照了幾篇文章終於成功了,記錄一下 在win7下安裝vm11虛擬機器,安裝10.10版本下的是ios版,安裝xcode 6.1 入門篇之 iosopendev環境搭建 入門篇之 theos環境搭建 一 ios越獄開發 開發環境搭建 一步一步用debugserver lldb代替gdb進行動態除錯 d...
除錯lldb命令常用
lldb在xcode4.3或者之後的版本裡面是預設的偵錯程式。假如你正在使用老一點版本的xcode的話,你又gdb偵錯程式。他們有一些基本的相同的命令,因此假如你的xcode使用的是 gdb 提示,而不是 lldb 提示的話,你也能夠更隨一起做,而沒有問題。po 命令是 print object 列...