Я отвечаю на вопрос: Как получить значение переменной, учитывая ее имя в строке? , которая закрыта как дубликат со ссылкой на этот вопрос.
Если рассматриваемые переменные являются частью объекта (например, части класса), то некоторые полезные функции для достижения именно этого: hasattr
, getattr
и setattr
.
Так, например, вы можете иметь:
class Variables(object):
def __init__(self):
self.foo = "initial_variable"
def create_new_var(self,name,value):
setattr(self,name,value)
def get_var(self,name):
if hasattr(self,name):
return getattr(self,name)
else:
raise("Class does not have a variable named: "+name)
Тогда вы можете сделать:
v = Variables()
v.get_var("foo")
"initial_variable"
v.create_new_var(v.foo,"is actually not initial") v.initial_variable
"на самом деле не является начальным"
blockquote>
Удаленная отладка довольно проста: на целевой платформе запустите приложение с помощью GDBserver, указав хост и порт для прослушивания входящего TCP-соединения:
gdbserver HOST:PORT PROG [ARGS ...]
На рабочей станции разработки запустите перекрестная целевая GDB:
powerpc-7450-linux-gnu-gdb PROG
Обязательно укажите неиспользуемый исполняемый файл. На консоли GDB введите:
target remote HOST:PORT
break main
continue
Похоже, gdb поддерживает удаленную отладку.
Я никогда не использовал его, но http://davis.lbl.gov/Manuals/GDB/gdb_17.html выглядит как начало.
В основном вы запускаете программу под gdbserver на целевой машине, а gdb подключается (через TCP или последовательный) к gdbserver.