История изменений
Исправление xaizek, (текущая версия) :
info gdb
говорит:
You can save a value in a convenience variable with an assignment expression, just as you would set a variable in your program. For example: set $foo = *object_ptr would save in '$foo' the value contained in the object pointed to by 'object_ptr'.
А для вызова метода ему, видимо, нужно сделать this для объекта, который не является частью образа программы.
# по значению
(gdb) set $v = args
(gdb) p $v
$2 = std::vector of length 0, capacity 0
(gdb) p $v.size()
Attempt to take address of value not located in memory.
# по адресу
(gdb) set $v = &args
(gdb) p *$v
$3 = std::vector of length 0, capacity 0
(gdb) p $v->size()
$4 = 0
Команда может выглядеть как-то так:
define pfoo
set $v = &$arg0
set $i = 0
while ($i < $v->size())
print (*$v)[$i++]->b
end
end
Исходная версия xaizek, :
info gdb
говорит:
You can save a value in a convenience variable with an assignment expression, just as you would set a variable in your program. For example: set $foo = *object_ptr would save in '$foo' the value contained in the object pointed to by 'object_ptr'.
А для вызова метода ему, видимо, нужно сделать this для объекта, который не является частью образа программы.
# по значению
(gdb) set $v = args
(gdb) p $v
$2 = std::vector of length 0, capacity 0
(gdb) p $v.size()
Attempt to take address of value not located in memory.
# по адресу
(gdb) set $v = &args
(gdb) p *$v
$3 = std::vector of length 0, capacity 0
(gdb) p $v->size()
$4 = 0
Команда может выглядеть как-то так:
define pfoo
set $v = &$arg0
set $i = 0
while ($i < $v->size())
print (*$v)[$i++]->b
end
end