Я делаю отладку дампа, используя PYKD, и поэтому я использую PYKD
dbgCommand()
для получения информации об объектах.
Проблема в том, что результаты dbgCommand()
должны быть проанализированы, чтобы их можно было использовать, как вы можете видеть в следующем примере:
source code : result = dbgCommand(("dt -c CStringArray m_nSize " + pointer_format) % (ptr)).split(' : ')
example : dt -c CStringArray m_nSize 0x03966ce8
example output :
<application>!CStringArray
+0x008 m_nSize 0n16
Меня интересует только сам размер (0n16
), и я могу проанализировать результат, чтобы получить его, но, поскольку у меня много объектов (около 100 000), это становится очень трудоемким, поэтому я хотел бы максимально ограничить результат.
Есть ли способ (использование других параметров отображения, использование других команд, отличных от dt
, использование собственных визуализаторов, если необходимо), чтобы получить следующую ситуацию:
dt <options> CStringArray m_nSize 0x03966ce8
0n16 // only that, nothing else
Между тем, я уже продвинулся на один шаг дальше, используя команду dd
, как вы можете видеть:
0:000> dd 0x03966ce8+0x008 L1 // for a CStringArray, m_nSize is at memory address +0x008
// L1 means: limit the amount of answers to one byte
03966cf0 00000010 // the result only contains one line.
Теперь мне нужно только найти способ больше не видеть адрес памяти.