Igor Kulaychuk/SRR-Compiler Lab/./삼성전자 [Thu, 8 Feb 2018 13:12:19 +0000 (16:12 +0300)]
Merge pull request #11 from a-okoshkin/refactoring
Minor refactoring
Andrey Okoshkin [Thu, 8 Feb 2018 08:46:19 +0000 (11:46 +0300)]
Get rid of `cmdString` temporary variable in ManagedDebugger::RunProcess()
Andrey Okoshkin [Thu, 8 Feb 2018 08:44:10 +0000 (11:44 +0300)]
Use `nullptr` where it's possible
DereferenceAndUnboxValue(), PrintEnumValue(), PrintValue() and
Evaluator::WalkMembers() use `nullptr` instead of `NULL`.
Andrey Okoshkin [Thu, 8 Feb 2018 07:16:06 +0000 (10:16 +0300)]
Drop `-DCLR_CMAKE_TARGET_ARCH_AMD64=1` cmake option from README
Now it's not necessary to specify it for Ubuntu build.
Andrey Okoshkin [Wed, 7 Feb 2018 15:59:00 +0000 (18:59 +0300)]
Update `.gitignore`
* Add Qt Creator files
* Add build artifacts
Andrey Okoshkin [Wed, 7 Feb 2018 13:29:59 +0000 (16:29 +0300)]
Use `nullptr` everywhere in `class ToRelease`
Do not mix usage of `NULL` and `nullptr`.
Andrey Okoshkin [Wed, 7 Feb 2018 10:51:56 +0000 (13:51 +0300)]
Use `enum CorDebugInterfaceVersion` in CreateDebuggingInterfaceFromVersionEx()
Do not use magic numbers.
`CorDebugLatestVersion` (=`CorDebugVersion_4_5` is 5 for now) can be used
instead of current equivalent (4) of `CorDebugVersion_4_0`.
Igor Kulaychuk/SRR-Compiler Lab/./삼성전자 [Wed, 7 Feb 2018 16:27:42 +0000 (19:27 +0300)]
Merge pull request #12 from i-kulaychuk/wip-no-pal
Remove dependency on libmscordaccore, use PAL from libcoreclr instance
Igor Kulaychuk/SRR-Compiler Lab/./삼성전자 [Wed, 7 Feb 2018 16:23:04 +0000 (19:23 +0300)]
Merge pull request #9 from a-okoshkin/fix_wchar_convert
Minor improvement of wchar convertion
Andrey Okoshkin [Wed, 7 Feb 2018 10:35:08 +0000 (13:35 +0300)]
Add `to_utf16()` instead of `convert.from_bytes()`
Evaluator::GetFieldOrPropertyWithName(), ManagedDebugger::RunProcess() and
ManagedDebugger::AttachToProcess() use `to_utf16()` now.
Andrey Okoshkin [Wed, 7 Feb 2018 10:32:30 +0000 (13:32 +0300)]
Add missing usage of `to_utf8()` instead of `convert.to_bytes()`
Evaluator::WalkStackVars() and SymbolReader::LoadSymbolsForPortablePDB() use
`to_utf8()` now.
Andrey Okoshkin [Wed, 7 Feb 2018 10:23:16 +0000 (13:23 +0300)]
Added `pragma once` to cputil.h
Andrey Okoshkin [Wed, 7 Feb 2018 10:19:53 +0000 (13:19 +0300)]
Redesign of `to_utf8()`
* String length is not passed any more due to it's buggy implementation.
* New overloaded version for a single wide-char is added.
* `WCHAR` is not necessary to use in this header as `char16_t` has been already
passed to the `std::codecvt_utf8_utf16` template.
Igor Kulaychuk [Tue, 6 Feb 2018 20:06:41 +0000 (23:06 +0300)]
Use `dotnet` CLI to launch application
Igor Kulaychuk [Tue, 6 Feb 2018 19:45:58 +0000 (22:45 +0300)]
Dynamically load PAL symbols from libcoreclr instance
Now the debugger depends only on libdbgshim.
Igor Kulaychuk [Tue, 6 Feb 2018 19:26:29 +0000 (22:26 +0300)]
Add DLOpen and DLSym wrappers
Igor Kulaychuk [Tue, 6 Feb 2018 13:00:21 +0000 (16:00 +0300)]
Add `USleep` function (based in `usleep`) instead of `Sleep` from PAL
Igor Kulaychuk [Tue, 6 Feb 2018 12:52:43 +0000 (15:52 +0300)]
Use `std::wstring_convert()` instead of PAL-based conversion
Igor Kulaychuk/SRR-Compiler Lab/./삼성전자 [Mon, 5 Feb 2018 16:15:39 +0000 (19:15 +0300)]
Merge pull request #7 from a-okoshkin/refactoring
Minor code refactoring
Igor Kulaychuk/SRR-Compiler Lab/./삼성전자 [Mon, 5 Feb 2018 16:09:17 +0000 (19:09 +0300)]
Merge pull request #6 from d-kovalenko/upd_patches
Update patches for coreclr
Andrey Okoshkin [Mon, 5 Feb 2018 09:39:32 +0000 (12:39 +0300)]
`m_clrPath` is initialized in ManagedDebugger::AttachToProcess()
Previously `m_clrPath` was a local variable.
Andrey Okoshkin [Mon, 5 Feb 2018 09:18:43 +0000 (12:18 +0300)]
`GetCLRPath()` and `InternalEnumerateCLRs()` accept `pid` as `DWORD`
because underlying dbgshim API handles PID as `DWORD`.
Andrey Okoshkin [Mon, 5 Feb 2018 09:15:14 +0000 (12:15 +0300)]
`pid` is `DWORD` in Startup() and AttachToProcess() from ManagedDebugger
dbgshim API handles PID as `DWORD`.
Dmitry Kovalenko [Mon, 5 Feb 2018 09:00:39 +0000 (12:00 +0300)]
Update patches for coreclr
patches for review.tizen.org:29418/platform/upstream/coreclr:58c98ea
Signed-off-by: Dmitry Kovalenko <d.kovalenko@samsung.com>
Andrey Okoshkin [Mon, 5 Feb 2018 06:56:06 +0000 (09:56 +0300)]
Debugger::IsJustMyCode() is const now
Andrey Okoshkin [Fri, 2 Feb 2018 15:40:13 +0000 (18:40 +0300)]
Make EmitInitializedEvent() and EmitTerminatedEvent() one-line in VSCodeProtocol
Andrey Okoshkin [Fri, 2 Feb 2018 11:59:22 +0000 (14:59 +0300)]
Add missing initialisation of ManagedDebugger fields
* `m_lastStoppedThreadId` is set to 1
* `m_protocol` is set to nullptr
Andrey Okoshkin [Fri, 2 Feb 2018 11:55:35 +0000 (14:55 +0300)]
MIProtocol and VSCodeProtocol default constructors initialise m_debugger
MIProtocol::m_debugger and VSCodeProtocol::m_debugger are initialised as nullptr.
Andrey Okoshkin [Fri, 2 Feb 2018 11:53:39 +0000 (14:53 +0300)]
Drop extra ';' in MIProtocol header
EmitInitializedEvent() and EmitTerminatedEvent() have empty implementation.
Igor Kulaychuk/SRR-Compiler Lab/./삼성전자 [Thu, 1 Feb 2018 14:54:43 +0000 (17:54 +0300)]
Merge pull request #5 from a-okoshkin/improve_cmake
Improve CMake scripts
Igor Kulaychuk/SRR-Compiler Lab/./삼성전자 [Thu, 1 Feb 2018 14:54:18 +0000 (17:54 +0300)]
Merge pull request #4 from i-kulaychuk/enable-stopatentry
Add support for stopAtEntry option
Igor Kulaychuk/SRR-Compiler Lab/./삼성전자 [Thu, 1 Feb 2018 13:31:32 +0000 (16:31 +0300)]
Merge pull request #3 from i-kulaychuk/enable-logging
Add support for --engineLogging command line option
Igor Kulaychuk [Thu, 1 Feb 2018 13:15:48 +0000 (16:15 +0300)]
Always enable stopAtEntry when launching through MI protocol
Igor Kulaychuk [Thu, 1 Feb 2018 13:05:24 +0000 (16:05 +0300)]
Remove unused parameter
Igor Kulaychuk [Thu, 1 Feb 2018 13:02:33 +0000 (16:02 +0300)]
Add entry event in MI protocol
Igor Kulaychuk [Wed, 31 Jan 2018 18:06:03 +0000 (21:06 +0300)]
Add support for --engineLogging command line option
Andrey Okoshkin [Wed, 31 Jan 2018 15:17:50 +0000 (18:17 +0300)]
Defines related to the build target are properly set now
Target-related defines are set based on `CLR_CMAKE_TARGET_ARCH_*` variables
but not `CLR_CMAKE_PLATFORM_ARCH_*`.
Platform-related defines are set based on now `CLR_CMAKE_PLATFORM_ARCH_*`
but not `CLR_CMAKE_TARGET_ARCH_*`.
Now it's not necessary to explicitly set `CLR_CMAKE_TARGET_ARCH_*=1` for Linux.
Copied from CoreCLR CMake scripts.
Andrey Okoshkin [Wed, 31 Jan 2018 15:15:14 +0000 (18:15 +0300)]
CoreCLR libraries are imported first in `netcoredbg/CMakeLists.txt`
Beautification: the script is logically divided into parts now.
Andrey Okoshkin [Wed, 31 Jan 2018 15:12:21 +0000 (18:12 +0300)]
Add missing `clr_unknown_arch()` to clrdefinitions.cmake
Andrey Okoshkin [Wed, 31 Jan 2018 15:09:11 +0000 (18:09 +0300)]
Add default value for `CLR_BIN_DIR` cmake variable
By default it's equal to `CLR_DIR`.
Igor Kulaychuk [Tue, 30 Jan 2018 21:38:26 +0000 (00:38 +0300)]
Add support for stopAtEntry option
Igor Kulaychuk [Tue, 30 Jan 2018 12:53:22 +0000 (15:53 +0300)]
Compile only specified files when building SymbolReader
Igor Kulaychuk/SRR-Compiler Lab/./삼성전자 [Mon, 29 Jan 2018 16:18:28 +0000 (19:18 +0300)]
Merge pull request #2 from a-okoshkin/fix_cmake_managed_build
Add support of out-of-source SymbolReader build
Andrey Okoshkin [Mon, 29 Jan 2018 15:43:10 +0000 (18:43 +0300)]
Add support of out-of-source SymbolReader build
Custom CMake `dotnet build` command respects `CMAKE_CURRENT_BINARY_DIR`.
Igor Kulaychuk [Fri, 26 Jan 2018 19:37:23 +0000 (22:37 +0300)]
Fix OutputEvent body
Igor Kulaychuk [Wed, 24 Jan 2018 21:23:34 +0000 (00:23 +0300)]
Initial support for VSCode debugger protocol
Igor Kulaychuk [Wed, 24 Jan 2018 20:47:05 +0000 (23:47 +0300)]
Report number of available frames and use levels instead of high frame index
Igor Kulaychuk [Wed, 24 Jan 2018 20:17:32 +0000 (23:17 +0300)]
Move ManagedDebugger class declaration into a separate header
Igor Kulaychuk [Wed, 24 Jan 2018 13:51:16 +0000 (16:51 +0300)]
Add Continued event and clear variable references when this event happens
Igor Kulaychuk [Tue, 23 Jan 2018 22:41:55 +0000 (01:41 +0300)]
Refactor Debugger - make initialization more verbose
Igor Kulaychuk [Mon, 22 Jan 2018 16:08:27 +0000 (19:08 +0300)]
Fix frame id
Igor Kulaychuk [Mon, 22 Jan 2018 06:31:20 +0000 (09:31 +0300)]
Move JMC related methods into Modules class
Igor Kulaychuk [Fri, 19 Jan 2018 19:24:01 +0000 (22:24 +0300)]
Refactor printing loaded libraries (modules)
Igor Kulaychuk [Thu, 18 Jan 2018 20:04:57 +0000 (23:04 +0300)]
Rename commands.cpp to miprotocol.cpp
Igor Kulaychuk [Thu, 18 Jan 2018 20:02:05 +0000 (23:02 +0300)]
Move all MIProtocol methods implementations into commands.cpp
Igor Kulaychuk [Thu, 18 Jan 2018 19:53:45 +0000 (22:53 +0300)]
Refactor ManagedDebugger implementation into separate file
Igor Kulaychuk [Thu, 18 Jan 2018 19:41:37 +0000 (22:41 +0300)]
Refactor Debugger into the ManagedDebugger class which implements Debugger interface
Igor Kulaychuk [Thu, 18 Jan 2018 19:17:11 +0000 (22:17 +0300)]
Refactor variables handler into Variables class
Igor Kulaychuk [Thu, 18 Jan 2018 18:41:37 +0000 (21:41 +0300)]
Refactor breakpoints handler into the Breakpoints class
Igor Kulaychuk [Thu, 18 Jan 2018 18:06:10 +0000 (21:06 +0300)]
Do not allow access to private fields of ManagedCallback from Debugger
Igor Kulaychuk [Thu, 18 Jan 2018 17:58:58 +0000 (20:58 +0300)]
Make GetThreadsState function non-static
Igor Kulaychuk [Thu, 18 Jan 2018 17:56:19 +0000 (20:56 +0300)]
Refactor Modules namespace into Modules class
Igor Kulaychuk [Wed, 17 Jan 2018 23:12:43 +0000 (02:12 +0300)]
Make PrintFrameLocation a private static method of the MIProtocol class
Igor Kulaychuk [Wed, 17 Jan 2018 23:11:00 +0000 (02:11 +0300)]
Make DisableAllSteppers a private static method of the Debugger class
Igor Kulaychuk [Wed, 17 Jan 2018 23:03:06 +0000 (02:03 +0300)]
Refactor last stopped thread id global variable
Igor Kulaychuk [Wed, 17 Jan 2018 22:55:59 +0000 (01:55 +0300)]
Refactor global process variable
Igor Kulaychuk [Wed, 17 Jan 2018 22:01:49 +0000 (01:01 +0300)]
Move all Evaluator methods implementations into expr.cpp and valuewalk.cpp
Igor Kulaychuk [Wed, 17 Jan 2018 21:58:14 +0000 (00:58 +0300)]
Refactor all evaluation related functions into separate Evaluator class
Igor Kulaychuk [Wed, 17 Jan 2018 20:25:54 +0000 (23:25 +0300)]
Match only full paths when setting a breakpoint
Igor Kulaychuk [Wed, 17 Jan 2018 20:25:02 +0000 (23:25 +0300)]
Refactor internal structure for handling breakpoints
Igor Kulaychuk [Tue, 16 Jan 2018 21:30:08 +0000 (00:30 +0300)]
Make methods SetJustMyCode/IsJustMyCode non-static
Igor Kulaychuk [Tue, 16 Jan 2018 21:00:55 +0000 (00:00 +0300)]
Add virtual destructor to Protocol interface
Igor Kulaychuk [Tue, 16 Jan 2018 20:59:33 +0000 (23:59 +0300)]
Construct ManagedCallback class instance inside Debugger constructor
Igor Kulaychuk [Tue, 16 Jan 2018 20:29:53 +0000 (23:29 +0300)]
Rename varobj.cpp to variables.cpp
Igor Kulaychuk [Tue, 16 Jan 2018 20:28:19 +0000 (23:28 +0300)]
Move class constructor related global variables into Debugger class
Igor Kulaychuk [Tue, 16 Jan 2018 19:13:11 +0000 (22:13 +0300)]
Do not expose ICorDebugProcess from Debugger class
Igor Kulaychuk [Tue, 16 Jan 2018 19:06:50 +0000 (22:06 +0300)]
Refactor variable children printing
Igor Kulaychuk [Tue, 16 Jan 2018 15:53:10 +0000 (18:53 +0300)]
Refactor printing stack variables
Igor Kulaychuk [Fri, 12 Jan 2018 17:28:06 +0000 (20:28 +0300)]
Refactor out part of ICorDebug API usages in MIProtocol class
Igor Kulaychuk [Fri, 12 Jan 2018 16:23:00 +0000 (19:23 +0300)]
Extract class for handling GDB MI protocol
Igor Kulaychuk [Fri, 12 Jan 2018 15:14:26 +0000 (18:14 +0300)]
Rename isNull methods to IsNull
Igor Kulaychuk [Fri, 12 Jan 2018 14:48:48 +0000 (17:48 +0300)]
Encode thread id and frame level as frame id
Igor Kulaychuk [Thu, 11 Jan 2018 22:17:49 +0000 (01:17 +0300)]
Avoid event printing dependency on debugged process
Igor Kulaychuk [Thu, 11 Jan 2018 21:46:51 +0000 (00:46 +0300)]
Refactor printing messages
Igor Kulaychuk [Thu, 11 Jan 2018 21:19:14 +0000 (00:19 +0300)]
Refactor printing thread star/exit events
Igor Kulaychuk [Thu, 11 Jan 2018 20:47:17 +0000 (23:47 +0300)]
Refactor printing process exit info
Igor Kulaychuk [Thu, 11 Jan 2018 20:35:31 +0000 (23:35 +0300)]
Refactor printing stopped state on unhandled exception
Igor Kulaychuk [Thu, 11 Jan 2018 20:09:55 +0000 (23:09 +0300)]
Refactor printing stopped state when step is complete
Igor Kulaychuk [Thu, 11 Jan 2018 19:51:50 +0000 (22:51 +0300)]
Add license header to protocol.h
Igor Kulaychuk [Thu, 11 Jan 2018 19:51:06 +0000 (22:51 +0300)]
Refactor breakpoint printing
Igor Kulaychuk [Thu, 11 Jan 2018 18:38:58 +0000 (21:38 +0300)]
Rename Breakpoint to ManagedBreakpoint
Igor Kulaychuk [Thu, 11 Jan 2018 17:20:45 +0000 (20:20 +0300)]
Refactor frame location printing
Igor Kulaychuk [Wed, 10 Jan 2018 19:59:21 +0000 (22:59 +0300)]
Refactor printing threads state
Igor Kulaychuk [Wed, 10 Jan 2018 19:56:29 +0000 (22:56 +0300)]
Add .gitignore
Igor Kulaychuk [Thu, 7 Dec 2017 20:13:29 +0000 (23:13 +0300)]
Use SysStringLen function for BSTR allocation check
Igor Kulaychuk [Thu, 7 Dec 2017 19:40:35 +0000 (22:40 +0300)]
Fix return type of vsnprintf
Igor Kulaychuk [Mon, 13 Nov 2017 20:26:41 +0000 (23:26 +0300)]
Update README code formatting
Igor Kulaychuk [Mon, 13 Nov 2017 20:17:47 +0000 (23:17 +0300)]
Update project description in README
Igor Kulaychuk [Mon, 13 Nov 2017 20:03:28 +0000 (23:03 +0300)]
Update README with Ubuntu x64 build instructions
Igor Kulaychuk [Mon, 13 Nov 2017 19:38:54 +0000 (22:38 +0300)]
Remove dll rename patch from spec