不同的,但類似的問題:我告訴大家,在他們的主目錄「〜/ .gdbinit」文件中,他們必須通過絕對路徑加載一個通用的python模塊。 這完全是一條線,而不是複雜的。
你應該注意到:有人會說這是一個安全威脅,這是一個平衡的行爲 - 我必須相信我的團隊,他們必須相信我。我這樣想:我們都用尖銳的東西來工作,我們必須知道我們在做什麼。每個團隊都是獨一無二的,用你的判斷。
我也必須處理多個版本的GDB,但是一個普通的單個.gdbinit文件。例; AndroidOLD(GDB),AndroidNEW(GDB),LinuxHost(GDB)和SomeOther(GDB)
人們在不同的事物之間切換使用不同的事物,通過一天中的常見腳本目錄問題。我有我自己的腳本在我的主目錄
我取決於GDB-Python擴展
import os
import gdb
在Linux上,我可以通過看絕對路徑的可執行確定確切版本的GDB因此:AndroidOLD(gdb)vrs AndroidNEW(gdb)可以通過在路徑中查找版本號來確定。
exename = os.readlink('/proc/self/exe')
我還可以利用這些項目來確定主機類型(Cygwin的,在Linux,Mac等),以及更多詳細的目標架構(即:到Android CPU目標?)
print (gdb.HOST_CONFIG)
# gives: x86_64-linux-gnu
# Alternates: MACOS, or CYGWIN32 or CYGWIN64
print (gdb.TARGET_CONFIG)
# Gives: 64bit android, 32bit android, or something else
現在,越來越多原來的海報的問題:有很多的腳本
的公共目錄
- 我有多個「通用目錄」
- 我必須處理d ifferent架構
- 我的百姓,在項目之間進行切換
- 之間切換版本
一些項目的系統都有一個共同的根目錄:該項目或模塊(即Android設備),和所有的子組件子目錄該通用目錄。使用python - 你可以從當前目錄開始,然後爬上目錄樹,一次一個,直到找到一些可以告訴你更多的魔術文件(例如某個標識android版本根目錄的文件)
現在我知道所有這些,我可以迭代需要加載的文件:
import gdb
gdb.execute('source %s' % filename)
問題已解決。
你是什麼意思自動?你的意思是將所有Python腳本加載到給定的目錄中嗎?或當前目錄?或者是其他東西? – 2015-10-19 10:20:37