Andrey Okoshkin [Fri, 9 Feb 2018 08:28:44 +0000 (11:28 +0300)]
Drop `common.h` as unused
Andrey Okoshkin [Fri, 9 Feb 2018 08:28:03 +0000 (11:28 +0300)]
Remove `common.h` header inclusion from `main.cpp`
Andrey Okoshkin [Thu, 8 Feb 2018 15:10:43 +0000 (18:10 +0300)]
Remove unnecessary header inclusions
Andrey Okoshkin [Thu, 8 Feb 2018 13:03:40 +0000 (16:03 +0300)]
Fixed header inclusions in `miprotocol.h`
Andrey Okoshkin [Thu, 8 Feb 2018 13:00:27 +0000 (16:00 +0300)]
Fixed header inclusions in `vscodeprotocol.h`
Andrey Okoshkin [Thu, 8 Feb 2018 12:49:01 +0000 (15:49 +0300)]
Fixed header inclusions in `valueprint.h`
Andrey Okoshkin [Thu, 8 Feb 2018 12:30:18 +0000 (15:30 +0300)]
Add missing header inclusions in `symbolreader.h`
Note that currently `TADDR` is not defined in `symbolreader.h` and
variables of this type are not used.
Andrey Okoshkin [Thu, 8 Feb 2018 12:23:25 +0000 (15:23 +0300)]
Fixed header inclusions in `frames.h`
Andrey Okoshkin [Thu, 8 Feb 2018 12:23:00 +0000 (15:23 +0300)]
Fixed header inclusions in `typeprinter.h`
Andrey Okoshkin [Thu, 8 Feb 2018 12:21:32 +0000 (15:21 +0300)]
Fixed header inclusions in `manageddebugger.h`
Andrey Okoshkin [Wed, 7 Feb 2018 15:54:37 +0000 (18:54 +0300)]
Add missing inclusion of headers to modules.h
`pragma once` is added to `modules.h`.
Andrey Okoshkin [Wed, 7 Feb 2018 13:26:07 +0000 (16:26 +0300)]
Add missing inclusion of headers to debugger.h
Andrey Okoshkin [Wed, 7 Feb 2018 13:25:14 +0000 (16:25 +0300)]
Add missing `pragma once` to `torelease.h`
Andrey Okoshkin [Wed, 7 Feb 2018 13:00:38 +0000 (16:00 +0300)]
Make ParseGenericParams() and FindTypeInModule() static in expr.cpp
These functions are for local use only.
Andrey Okoshkin [Wed, 7 Feb 2018 12:56:48 +0000 (15:56 +0300)]
Fixed header inclusion for `platform.h`
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