不同的,但类似的问题:我告诉大家,在他们的主目录“〜/ .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