原创 內存釋放問題

內存釋放問題 今天做Android項目的時候出現一個崩潰的問題,該崩潰問題的崩潰日誌如下: signal 11 (SIGSEGV), code 2 (SEGV_ACCERR), fault addr 0x3d206578

原创 如何更新Submodule URL

最近項目要遷移到別的平臺,這樣就牽涉到如何遷移倉庫的問題: 倉庫遷移的步驟如下: 倉庫遷移 下載原始倉庫 git clone --bare git@xxxx1:repo_name.git 遷移到xxxx2平臺 cd repo_

原创 Android 如何定位內存泄漏

1. 非root設備,Android O 及以上設備如何定位內存泄漏問題 ndk的代碼如下: jstring Java_com_example_hellojni_HelloJni_stringFromJNI(JNIEnv* en

原创 close socket 後,發送rst包的場景

前幾天解決了一個很棘手的問題:從抓包來看,客戶端收到了rst包,但是我的應用程序無響應的問題,在解決這個問題的過程中,我詳細瞭解了爲啥服務端調用close的時候,客戶端收到的都不是正常的socket的關閉流程(先發FIN包),而是

原创 telnet ping ipv6問題分析

項目上開始支持ipv6的網絡,但是環境比較難整,今天搗鼓了半天ipv6的測試環境, 測試環境的網絡拓撲如下所示: s機器的網卡的ipv6的地址:fe80::20c:29ff:fe92:47a9 A機器的IPV6的地址:fe80:

原创 go語言的interface

package main import “fmt” type USB interface { start() end() } type Computer struct { name string } func (c Compute

原创 linux編譯相關likely與unlikely

原文鏈接:https://www.jianshu.com/p/2684613a300f define likely(x) __builtin_expect(!!(x), 1)

原创 [Git] 如何優雅的刪除子模塊(submodule)或修改Submodule URL

原文鏈接:https://www.jianshu.com/p/ed0cb6c75e25 優雅的刪除子模塊 逆初始化模塊,其中{MOD_NAME}爲模塊目錄,執行後可發現模塊目錄被清空

原创 如何更改socket的發送緩衝去,以及更改socket的發送緩衝區出現的問題

本來是想看看當發送緩衝區或者接收緩衝區快滿的時候,繼續發包的話,滑動窗口是怎樣變化的,就寫了一個測試的demo,測試了很多次感覺設置的發送緩衝去大小不生效似的,最後發現不是真的不生效,而是這樣的一個結論: 在Linux系統中,不管

原创 客戶端收到客戶端的異常rst包,再次調用send會返回失敗嗎?

最近在項目中遇到這樣的一個問題,客戶端收到一個rst包之後(在網卡上抓包),收到包之後客戶端繼續發送消息(send 是異步的)沒有返回失敗,甚是疑惑啊,最後查看包發現收到的rst包的seq和之前收到的包的seq一樣,並且中間有數據

原创 開發過程中內存崩潰分析(: signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0xf8)

在項目上線之後,發現一個很不容易發現的內存崩潰,那麼該如何定位崩潰的位置呢?,首先從拿到崩潰的堆棧信息,如下: 18244 F DEBUG : Revision: ‘0’ 02-27 09:49:42.920 18244 1824

原创 Android程序崩潰,如何根據崩潰的日誌信息定位出崩潰的行數

在編譯Android底層的jni程序時,有兩種編譯方式:ndk和cmake,現在針對兩種不同的編譯方式來定位出崩潰的具體行號 ndk: 1、找到你的項目工程裏的jni生成的目錄,比如說目錄爲:obj/armeabi/objs/ 2、拿

原创 虛擬網卡開發過程中的坑

這兩天在測試虛擬網卡模塊時,發現在不斷短線重連的過程中關於虛擬網卡的oif 的路由表會越來越多,並且在虛擬網卡關閉的時候該路由表還在,表現形式如下: 由於Android的虛擬網卡如果創建成功之後就不能添加路由規則,這樣多隧道模式的情

原创 jni 線程內反調java方法,訪問java對象

jni 線程內反調java方法 在c的線程中反向訪問java的對象 在做項目的時候遇到這樣一個問題: 在c中的線程中,通過 jclass managerCls = (*env)->FindClass(env, “com/test/f