This project is read-only.

08.01.2017

https://kdlibcpp.svn.codeplex.com/svn/branches/0.1.38
Исправлен ряд ошибок, найденных при тестировании 36 и 37 версий

05.01.2017

Выпущен релиз 0.1.37

https://kdlibcpp.svn.codeplex.com/svn/branches/0.1.37
Основная цель данного релиза - поддержка вызовов методов класса, в т.ч виртуальных.

19.09.2016

Выпущен релиз 0.1.36

https://kdlibcpp.svn.codeplex.com/svn/branches/0.1.36
Основная цель данного релиза - поддержка возможности вызова функции в контексте отлаживаемого процесса
  • добавлен метод call в класс TypedVar. В настоящее время поддерживается работа только с интегральными типами ( целыми числами и указателями ) и следующими нотациями: stdcall, cdecl, x64
  • добавлена ф. defineFunction. Позволяет определять типы функций. Это может быть особенно полезно в сочетании с методом TypedVar::call
  • добавлены ф. writeCStr и writeWStr. Позволяют записать 0-терминированную стороку в память отлаживаемого процесса
  • Добавлены ф. для работы со стеком: stackAlloc, stackFree, pushInStack, popFromStack
Внимание: ручные манипуляции со стеком отлаживаемого процесса, вызов функций, манипуляции с памятью - потенциально опасны и могут приводить к ошибкам в работе процесса.

09.09.2016

Выпущен релиз 0.1.35

https://kdlibcpp.svn.codeplex.com/svn/branches/0.1.35
  • добавлены функции для модификации значения регистров ( setRegisterValue, setInstructionOffset, setStackOffset, setFrameOffset
  • исправлен баг с доступом к статическим полям структур для бинарных файлов, скомпилированных в VS2010

28.07.2016

Выпущен релиз 0.1.34

https://kdlibcpp.svn.codeplex.com/svn/branches/0.1.34
  • добавлен набор функций для модификации памяти целевой системы ( setByte, setWord ... и.т.д). Полный список см. kdlib/memaccess.h
  • Добавлен методы к классу targetProcess::getModuleByOffset, TargetProcess::getBySystemId
  • исправлен ряд ошибок:
    • DbgException: AMD64 context: unsupported register index 365
    • IndexError: Index out of range (stackFrame.getParams))
    • debugCommand for remote session
    • module.findSymbol long time execution

11.07.2016

Выпущен релиз 0.1.33

https://kdlibcpp.svn.codeplex.com/svn/branches/0.1.33
  • добавлены тесты для работы с kernel dump и исправлен ряд мелких ошибок
  • конструктор класса typedVar может принимать имена локальных переменных
  • реализованы методы класса Stack для работы со статическими локальными переменными

17.05.2016

Выпущен релиз 0.1.32

https://kdlibcpp.svn.codeplex.com/svn/branches/0.1.32
  • добавлено событие onChangeSymbolPaths
  • добавлен метод typedVar.castTo - возвращает новый объект типа typedVar с привидением к указанному типу

05.04.2016

Выпущен релиз 0.1.31

https://kdlibcpp.svn.codeplex.com/svn/branches/0.1.31
  • Изменен формат ф. startProcess. В качестве второго параметра можно передать набор флагов. допустимые значения флагов находятся в энумераторе DebugProcessOptions
  • Исправлен ряд описаний исключений

09.03.2016

Выпущен релиз 0.1.30

https://kdlibcpp.svn.codeplex.com/svn/branches/0.1.30
  • Добавлен метод Module::enumTypes - перечисляет типы
  • Добавлено раздеркорирование символов, полученных из таблицы экспортов
  • Исправлена печать типа функции с переменным количество аргументов
  • Исправлена печать битовых полей
  • Исправлена работа с локальными регистровыми переменными
  • Исправлен ряд багов при получении значений регистров

25.12.2015

Выпущен релиз 0.1.29

https://kdlibcpp.svn.codeplex.com/svn/branches/0.1.29
  • Исправлен ряд багов в typeInfo и typedVar, связанных с целочисленным переполнение.
  • В класс TargetThread добавлены метода getInstructionOffset, getFrameOffset, getStackOffset

16.12.2015

Выпущен релиз 0.1.28

https://kdlibcpp.svn.codeplex.com/svn/branches/0.1.28
  • Исправлена реализация ф. getLiveProcessesList - имена возвращаются для процессов с любыми правами
  • Реализован метод TargetThread::getStack

7.12.2015

Выпущен релиз 0.1.27

https://kdlibcpp.svn.codeplex.com/svn/branches/0.1.27
  • Исправлен баг в реализации типа функций
  • Убрана проверка индекса при обращении к элементам типизированных массивов. Если хочется обращаться за формальные границы массива ( в C/C++ на это нет запрета ) - пожалуйста. При этом перечисление элементов оператором in будет по-прежнему ограничено размером массива
  • Добавлена функция getLiveProcessesList - перечисляет процессы в системе. Может помочь для автоматического поиска цели для вызова attachProcess

16.11.2015

Выпущен релиз 0.1.26

https://kdlibcpp.svn.codeplex.com/svn/branches/0.1.26
  • Реализован метод Module::enumSymbols для экспортных файлов
  • Исправлена реализация метода Module::enumSymbols для перечисления символов по маске на x86 плафтформе
  • Исправлен баг приводящий к падении при попытке создать экземпляр класса EventHandler без вызова kdlib::initialize

22.10.2015

Выпущен релиз 0.1.25

https://kdlibcpp.svn.codeplex.com/svn/branches/0.1.25
  • Добавлена обработка исключений при печати переменных базовых типов
  • Добавлена работа с vtable
  • Добавлен метод Module::getFileVersion

12.10.2015

Выпущен релиз 0.1.24
https://kdlibcpp.svn.codeplex.com/svn/branches/0.1.24
  • Оптимизирована работа с модулями, не имеющими символов
  • Оптимизирован поиск типов без явного указания модуля ( добавлен кэш )

01.10.2015

Выпущен релиз 0.1.23
https://kdlibcpp.svn.codeplex.com/svn/branches/0.1.23
Переработан функционал по сохранению/восстановлению текущего контекста

21.09.2015

Выпущен релиз 0.1.22
https://kdlibcpp.svn.codeplex.com/svn/branches/0.1.22
Что нового:
исправлена ошибка с нежелательной сменой контекста при создании typedVar

09.09.2015

Выпущен релиз 0.1.21
https://kdlibcpp.svn.codeplex.com/svn/branches/0.1.21
Что нового:
Множественные исправления в функкционале работы с локальными переменными ( getParams, getLocals)

17.07.2015

Выпущен релиз 0.1.20
https://kdlibcpp.svn.codeplex.com/svn/branches/0.1.20
Что нового:
  • события onStartInput(), onStopInput() и функция dinput, обеспечат взаимодействие с командами требующими пользовательского ввода ( например 'a' )

09.06.2015

Выпущен релиз 0.1.19
https://kdlibcpp.svn.codeplex.com/svn/branches/0.1.19
Что новго:
  • функция getSourceFileFromSrcSrv. Позволяет получить файл с исходным кодом из системы контроля версий
  • функции getSrcPath, setSrcPath, appendSrcPath. Ползволяют управлять путями для поиска файлов с исходным кодом

12.04.2105

Выпущен релиз 0.1.15
https://kdlibcpp.svn.codeplex.com/svn/branches/0.1.15
  • добавлен класс TargetSystem ( для управления отладкой с несколькими системами )
  • исправлена ошибка в ф. findMemoryRegion для User Mode, для kernel mode добавлена явная генерация исключения. Перечислить регионы в kernel mode можно только с помощью собственного скрипта ( например, разбирая таблициы страничной адресации ).
  • Исправлен ряд багов, свящанных с переключением контекстов ( лишние нотификации )

13.03.2015

Выпущен релиз 0.1.14
https://kdlibcpp.svn.codeplex.com/svn/branches/0.1.14
В этом релизе*
  • исправлен TypedVar.getElement метод ( генерация "лишнего" исключения )
  • исправлена ошибка с воостановлением контекста в классе TargetProcess
  • добавлен метод isVaRangeValid - проверка региона памяти на доступность

18.02.2015

Выпущен релиз 0.1.13
https://kdlibcpp.svn.codeplex.com/svn/branches/0.1.13
В этом релизе:
  • исправлен ряд ошибок в классе TargetProcess
  • добавлены колбэки onThreadStart() и onThreadStop()
  • новая функция targetStepOut ( аналог команды gu )
  • новые функции для трассировки кода с исходниками sourceStepIn и sourceStepOut

21.01.2015

Выпущен релиз 0.1.12
https://kdlibcpp.svn.codeplex.com/svn/branches/0.1.12

Добавлены классы TargetProcess и TargetThread для работы с процессами и потоками соответствено.
Методы TargetProcess:
  • static TargetProcessPtr getCurrent()
  • static TargetProcessPtr getByIndex(unsigned long index)
  • static unsigned long getNumber()
  • std::wstring getExecutableName()
  • PROCESS_ID getSystemId()
  • MEMOFFSET_64 getPebOffset()
  • bool isCurrent()
  • void setCurrent()
  • unsigned long getNumberThreads()
  • TargetThreadPtr getThreadByIndex(unsigned long index)
  • TargetThreadPtr getCurrentThread()
  • unsigned long getNumberBreakpoints()
  • BreakpointPtr getBreakpoint(unsigned long index)
Методы TargetThread:
  • static TargetThreadPtr getCurrent()
  • static TargetThreadPtr getByIndex(unsigned long index)
  • static unsigned long getNumber()
  • THREAD_ID getSystemId()
  • MEMOFFSET_64 getTebOffset()
  • TargetProcessPtr getProcess()
  • bool isCurrent()
  • void setCurrent()

12.01.2015

Выпущен релиз 0.1.11
https://kdlibcpp.svn.codeplex.com/svn/branches/0.1.11
  • добавлена функция setCurrentFrameScopeByIndex для последовательный смены текущего фрейма
  • добавлена нотификация о изменении точек останова в текущем процессе onChangeBreakpoints
  • добавлены методы Disasm::opcode Disasm::opmnemo для получения отдельно мнемонического кода инструкции и его байтового представления.
  • исправлена ошибка: call debugCommand leads to an application crash

23.12.2014

Выпущен релиз 0.1.10
https://kdlibcpp.svn.codeplex.com/svn/branches/0.1.10
  • добавлена нотификация onDebugOutput - позволяет получать отладочный вывод от сторонних расширений

14.12.2014

Выпущен релиз 0.1.9
https://kdlibcpp.svn.codeplex.com/svn/branches/0.1.9

В данном релизе:
  • исправлена ошибка #13351 ( cpu() raises exception after loadDump )
  • добавлены методы для смены текущего локального конетекста: getCurrentStackFrame, setCurrentStackFrame, resetCurrentStackFrame
  • добавлена нотификация о смене текущего локального контескста: onChangeLocalScope

06.12.2014

Выпущен релиз 0.1.8
https://kdlibcpp.svn.codeplex.com/svn/branches/0.1.8

В данном релизе:
  • добавлен метод EventHandler::onCurrentThreadChange. Этот метод поможет централизованно обрабатывать ситуацию, когда был изменился текущий поток ( полезно при рабзработке отладчика и тому подобного )
  • добавлены методы для перечисления брейкпойнтов: getNumberBreakpoints и getBreakpointByIndex. Оба возвращают информацию для текущего процесса.
  • добавлены проекты для VS 2013

05.11.2014

Выпущен релиз 0.1.7
https://kdlibcpp.svn.codeplex.com/svn/branches/0.1.7

В данном релизе:
  • исправлена проблема с динамически-определяемыми типами ( can not create typedVar by custom-struct or union )
  • исправлена проблема с недоставлением нотификации при завершении процесса через killProcess
  • в класс NumVariant добавлен метод isInteger()

09.10.2014

Выпущен релиз 0.1.6
Доступен:
https://kdlibcpp.svn.codeplex.com/svn/branches/0.1.6

В данном релизе:
  • исправлена ф. getNumberProcesses
  • исправлена проблема с получением стеков для WOW64 приложений

25.09.2014

Выпущен релиз 0.1.5
Доступен:
https://kdlibcpp.svn.codeplex.com/svn/branches/0.1.5

В данном релизе:
Переработан класс CPUContext.

08.09.2014

Выпущен релиз 0.1.4
Доступен:
https://kdlibcpp.svn.codeplex.com/svn/branches/0.1.4

В данном релизе:
  • fixed : name printing: function pointers, function arrays, integer variables
  • fixed: TLS-variable does not have a virtual address
  • fixed: getSourceLine(), getSourceFile() raise exception

09.06.2014

Выпущен релиз 0.1.2
Доступен:
https://kdlibcpp.svn.codeplex.com/svn/branches/0.1
Revision 88582

В данном релизе:

Исправлены баги: Добавлены методы TypedVar::getDebugStart и TypedVar::getDebugEnd - с помощью этих методов можно ставить брейкпойнты на начало и конец функции так, как это делает отладчик - уже после формирования фрейма локальных переменных.

Добавлена возможность неявной инициализации при вызове startProcess, attachProcess, loadDump и attachKernel. Если работа начинается с вызова данных функций ( а это обычно так ), можно опустить вызов initialize()

Добавлена функция remote_initialize(). Данная функция служит для подключения к удаленному отладчку и является альтернативой вызову initialize(). После вызова remote_initialize() работа с локальным отладчиков невозможна.

07.05.2014

Выпущен релиз 0.1.1
Доступен:
https://kdlibcpp.svn.codeplex.com/svn/branches/0.1
Revision 88258

В данном релизе существенно исправлена работа с контекстами потоков и процессов.

Исправлены баги:
  • fixed :issue #12946 ( getStack() raise exception for wow64 context )

13.04.2014

Выпущен первый публичный релиз
Доступен:
https://kdlibcpp.svn.codeplex.com/svn/branches/0.1
Revision 87890

В данный релиз вошла вся функциональность, необходимая для сборки pykd 0.3. На основе данной ревиизии собран pykd версии 0.3.0.4. В дальнейшем версия 0.1 будет изменяться незначительно, с сохранением обратной совместимости. Все новые разработки будут вестись в ветке /dev

Большое спасибо, все кто принимал участие в разработке и тестировании! Всех поздравляю!

Last edited Jan 8 at 3:36 PM by ussrhero, version 41