如何寫乙個crash收集sdk

2021-08-18 13:10:51 字數 1581 閱讀 7137

微博以前的crash策略是log批量上傳。。。話不多說,上**,ios crash 主要分為linux訊號異常中斷與普通異常捕獲。。。

// 1 linux錯誤訊號捕獲

signal

(sighup

, signalhandler);

signal

(sigint

, signalhandler);

signal

(sigquit

, signalhandler);

signal

(sigabrt

, signalhandler);

signal

(sigill

, signalhandler);

signal

(sigsegv

, signalhandler);

signal

(sigfpe

, signalhandler);

signal

(sigbus

, signalhandler);

signal

(sigpipe

, signalhandler);

// 2 objective-c未捕獲異常的捕獲

nssetuncaughtexceptionhandler(&

uncaughtexceptionhandler);}

#pragma mark - handlers

void signalhandler(int code)

crashobject*crashobj = [[crashobject

alloc

] init

];crashobj.

name

= @"signal caused crash";

nsstring *content =

[nsstring

stringwithformat

:@"%@---call stack:%@", @"signal", mstr];

crashobj.content= [instanceremovespaceandnewline:content];

nsdictionary

*sysdic = [instancegetsysdic];

crashobj.

versioncode

= [sysdic

objectforkey

:@"cfbundleshortversionstring"];

crashobj.

systemversion

= [[uidevicecurrentdevice] systemversion];

crashobj.

model

= [[uidevicecurrentdevice] model];

crashobj.crashid= [instancegetunixtimestamp];

crashobj.timestap= [instancegetcurrenttimes];

}void uncaughtexceptionhandler(n***ception *exception)

如何寫乙個Stack?

1.棧是陣列 2.先進後出 3.出棧 4.入棧 手寫乙個雙向鍊錶 棧 public class stackpopandpush public stackpopandpush int lens 返回元素個數 public intsize 返回陣列長度,容量,棧資料長 private intcapaci...

如何寫乙個鍊錶

有的時候,處於記憶體中的資料並不是連續的。那麼這時候,我們就需要在 資料結構中新增乙個屬性,這個屬性會記錄下面乙個資料的位址。有了這個位址之後,所有的資料就像一條鍊子一樣串起來了,那麼這個位址屬性就起到了穿線鏈結的作用。相比較普通的線性結構,鍊錶結構的優勢是什麼呢?我們可以總結一下 1 單個節點建立...

如何寫乙個Vue元件

寫的是以.vue結尾的單檔案元件的寫法,是基於webpack構建的專案。template 模板 js 邏輯 css 樣式 每個元件都有屬於自己的模板,js和樣式。如果將乙個頁面比喻成一間房子的話,元件就是房子裡的客廳 臥室 廚房 廁所。如果把廚房單獨拿出來的話,元件又可以是刀 油煙機.等等。就是說頁...