① mac版本下的addr2line怎麼用
1.將ndk中的arm-linux-androideabi-addr2line可執行文件搭旦的路徑加入配置文件~/.bashrc中,例如:
export PATH=$PATH:~/dlna/android-ndk-r6b/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/bin
2.使配置生效:source ~/.bashrc
3.使用工具。例如:arm-linux-androideabi-addr2line -C -f -e ~/workspace/DLNA/libs/armeabi/libctrlpt.so 0003deb4
其中,0003deb4為堆棧信息中pc的值。
android應用崩潰的調試方法
有兩種方法可以分析 crash 的堆棧信息
1 google提供了一個python腳本,可以知猜擾從
http://code.google.com/p/android-ndk-stacktrace-analyzer/
下載這個python腳本,然後使用 adb logcat -d > logfile 導出 crash 的log,
使用 arm-eabi-objmp 位於build/prebuilt/linux-x86/arm-eabi-4.2.1/bin下面
把so或exe轉換成匯編代碼,如:arm-eabi-objmp -S mylib.so > mylib.asm,
使用腳本
python parse_stack.py <asm-file> <logcat-file>
2 直接使用NDK下面的arm-linux-androideabi-addr2line
(D:\android-ndk-r8\toolchains\arm-linux-
androideabi-4.4.3\prebuilt\windows\bin\arm-linux-androideabi-addr2line.exe)
例如:arm-linux-androideabi-addr2line -C -f -e libxxx.so 0x#####(address)
android調試工具addr2line使用補充
使用addr2line追蹤自有動態庫(so文件)的bug, 補充:
解決出現 ??:0 , 沒法展示源代碼行數的問題
在Android.mk 文件中:
Java代碼
LOCAL_CFLAGS
:=
-D__STDC_CONSTANT_MACROS
-Wl,-Map=test.map
-g
補充2個編譯參數 -Wl,-Map=test.map -g .
增加gcc警告和調試標志
arm-linux-androideabi-addr2line -C -f -e /項目兆大目錄/obj/local/armeabi/libfaa_jni.so 0024362e
tip: 1,注意調試文件的位置在obj目錄下,並非libs目錄下生成的so文件
2,0024362e 為出錯的機制位置
還有:
在jni/目錄下增加Application.mk 文件, 修改為debug 模式,進行調試 APP_OPTIM := debug
② mac 終端輸入自定義命令打開目標application
終端輸入 postman 即可打開Postman應用程序
終端輸入 navicat 即可打開Navicat Premium應用程序
終端輸入 vim .zshrc
按 i 進入編輯模式,輸入以下內容:
然後按 esc 退出編輯模式,輸入 :wq ,回車,即可退出vim編輯器並保存.zshrc文件內容。
之後在終端輸入 source ~/.zshrc ,讓配置文件在修改後立即生效。
此時,即可在終端輸入 postman 查看效果啦, navicat 同理
③ Mac下添加環境變數
其中a和b是系統級別歲嫌的,系統啟動就會載入,其餘是用戶乎圓手級別的。
c,d,e按照從前往後的順序讀取,
如果c文件存在,則後面的幾個文件就會被忽略不讀了,
以此類推。
~/.bashrc沒有上述規則,它是bash shell打開的時候載入的。
建議在c中添加環境變數,
以下也是以在c中添加環境變數來演示的:
然後打開zsh的配腔激置文件~/.zshrc
在~/.zshrc最下邊添加如下內容:
最後退出終端,重新啟動,再次進入zsh的時候,會生效配置文件。通過env查看添加的環境變數是否生效。
④ M1 Mac安裝Homebrew報錯
新換了M1電腦,Homebrew配置環境花費了些時間,簡單記錄一下
Homebrew國內開源安裝腳本庫:
https://gitee.com/cunkai/HomebrewCN
https://gitee.com/huwei1024/HomebrewCN
終端執行命令
等待執行結束後發現報錯找不到命令:
發現是因為尺皮咐M1晶元的包安裝位置不在是以前的/usr/local/
而是/opt/homebrew,陵純所以握物要將配置文件里的環境變數改過來
3.追加環境變數
4.保存
5.使生效
6.檢查是否成功
查看當前使用的shell
如果是/bin/zsh是因為Mac安裝了zsh,zsh載入的是 ~/.zshrc文件,.zshrc文件中並沒有定義任務環境變數,需要在文件中添加環境變數
⑤ Mac 系統上的環境變數不生效
如果輸出的是: csh 或者是 tcsh ,那麼你用的就是 C Shell
如果輸出的是: bash , sh , zsh ,那麼你的用的可能就是 Bourne Shell 的一個變種。
Mac OS X 10.2 之前默認的是 C Shell
Mac OS X 10.3 之後默認的是 Bourne Shell
bash 的配置文件是和虧 .bashrc , zsh 的配置文件是 .zshrc ,當你使用 zsh 作為默認 shell 工具的時候,它啟動時並不會載入 bash 的這兩個配置文件 .bashrc 和 .bash_profile ,而只會載入自己的配置文件 .zshrc ,為了讓我們的配置文件生效,只能在 .zshrc 中添加上面的配置。
如果不做喚罩神上述設置,你就會發現,只有當你每次 source ~/.bash_profile 後才會生悶螞效,下次重新打開 zsh 窗口,還是不生效。
⑥ 蘋果系統hosts修改後怎麼生效
修改/etc/hosts之後正常情況應該是保存之後立即生效的,但是有時不是。使用 -a 可以查看hostname是多少,就可以知道是否修改生效了。如果沒有這時的策略有:
1,重啟機器。
2,重啟服務 Ubuntu: $sudo/etc/init.d/networking restart Gentoo: /etc/init.d/net.eth0 restart。
3,使用hostname命令 hostname 定義的主機名hostname與/etc/hosts的關系 很多人一提到更改hostname首先就想到修改/etc/hosts文件,認為hostname的配置文件就是/etc/hosts。其實不是的。 hosts文件的作用相當如DNS,提供IP地址到hostname的對應。
4,早期的互聯網計算機少,單機hosts文件里足夠存放所有聯網計算機。不過隨著互聯網的發展,這就遠遠不夠了。於是就出現了分布式的DNS系統。由DNS伺服器來提供類似的IP地址到域名的對應。具體可以man hosts。Linux系統在向DNS伺服器發出域名解析請求之前會查詢/etc/hosts文件,如果裡面有相應的記錄,就會使用hosts裡面的記錄。
5,/etc /hosts文件通常裡麵包含這一條記錄 127.0.0.1 localhost.localdomain localhosthosts文件格式是一行一條記錄,分別是IP地址 hostnamealiases,三者用空白字元分隔,aliases可選。
⑦ Mac 修改配置文件後如何啟用新配置
一般重啟電腦以後就會自動載入修改過的配置文件了
⑧ Macbook zsh: command not found: svnserve
Mac OS版本:10.14.2
MySQL版本:5.7.24
打開終端,命令行輸入:mysql,總是返回:zsh:command not found: mysql
網上的各種方法都試過了,比如ln -s 系列的改路徑,command+R的改許可權,統統都不行。
後來找到方法,輕松解決問題,在這里記錄一下:
alias mysql=/usr/local/mysql/bin/mysql
注意:這種方式只能臨時有效,下次登入還是會出現:zsh:command not found: mysql
alias:用於設置指令的別名,自定義指令的別名,若僅輸入alias,則可列出目前所有的別名設置。alias的效力僅基於該次登入操作。若要每次登入即自動設置好別名,可在.profile或.cshrc種設定指令的別名。
語法:
alias [別名]=[指令名稱]
設置別名永久有效:
方法一:
執行
cd ~
進入到用戶的目錄,執行:
vim ~/.bashrc
把下面的內容加入到文件當中
alias mysql=/usr/local/mysql/bin/mysql
按ESC,輸入:
:wq
執行下面的命令,使配置文件生效:
source ~/.bashrc
重啟終端,輸入:
mysql
檢查是否生效,如果沒有生效,則執行下面的命令:
vim ~/.bash_profile
在~/.bash_profile文件後面加入下面的指令
source ~/.bashrc
按ESC輸入:
:wq
使~./bash_profile文件生效,輸入:
source ~/.bash_profile
方法二:
如果你的終端安裝了Zsh,發現使用方法一後並不一定生效(本自己電腦傻姑娘就是這樣),經過排查發現Zsh有自己的啟動默認執行的文件~./zshrc,要在Zsh種是alias永久生效,則需要編輯~./zshrc文件,在文件中添加一行:
alias mysql=/usr/local/mysql/bin/mysql
按ESC輸入:
:wq
使~./zshrc文件生效,輸入:
source ~/.zshrc
————————————————
版權聲明:本文為CSDN博主「Wjhsmart」的原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/Wjhsmart/article/details/85322226
⑨ Mac全局安裝cnpm及環境配置 cnpm: command not found 的解決方案
cnpm不是內部命令 cnpm: command not found 的解決方案
command not found這種問題一般有兩個原因:
1、命令沒有安裝成功
2、環境變數沒有配置
安裝慧悔嘩命令
配置前陸cnpm的環境變數
一.新建並打開 .bash_profile 文件
二、添加npm模塊安裝位前行置
三、保存後退出,刷新配置文件使其生效。