1. 29 6月, 2020 3 次提交
    • U
    • T
      [debugger] Removing some asserts (#19758) · 56f4631d
      Thays Grazia 提交于
      * Removing some asserts and returning err_invalid_argument with an error message when it's possible.
      
      * if we don't find method get_ObjectIdForDebugger we try to find the property Task to continue async debug.
      
      Cherry-picked by Alex Thibodeau with some moderate changes
      56f4631d
    • T
      [debugger] Assert when async debug a generic method (#17727) · 852d3074
      Thays Grazia 提交于
      * When we try to call a method to get the async_id to do an async debug and we are trying to do this in a generic method like this:
      
      async Task<T> ExecuteAsync_Broken<T>()
       {
                  await Task.Delay(2);
                  return default;
        }
      
      We need to inflate the generic type before call the method or we will get the error:  Could not execute the method because the containing type 'System.Runtime.CompilerServices.AsyncTaskMethodBuilder1[T_REF]’, is not fully instantiated.
      
      Fixes #17549
      Fixes #17569
      
      Cherry-picked by Alex Thibodeau -- some light massaging required
      852d3074
  2. 17 6月, 2020 1 次提交
    • T
      [debugger] Fixing two crashes while debugging an Android app. (#13373) · 3b268dc6
      Thays Grazia 提交于
      * [debugger] Fixing two crashes while debugging an Android app.
      
      -> Doing stepping into in VSM in some situation the frame saved in TLS is not synchronised with what is really been executed in the main thread. This makes the debugger-agent crashes because it tries to get variable info in some memory that is not available anymore.
      	-> To fix it I forced the update of stack when CMD_THREAD_GET_FRAME_INFO is called.
      
      -> Doing step over in Visual Studio for Windows, if you have the threads debugger window enabled, VSW calls frame_commands for each thread that is showed, and if the thread is not really_suspended it tries to get variable info from a memory that is not available anymore because the thread is not suspended yet.
      	-> To fix it I don't send variable info of a frame if the thread is not really_suspended and doesn't have an async_state valid.
      
      Cherry-picked with some light massaging by Alex Thibodeau (case 1249172)
      3b268dc6
  3. 26 5月, 2020 2 次提交
  4. 19 5月, 2020 1 次提交
  5. 18 5月, 2020 1 次提交
  6. 15 5月, 2020 1 次提交
  7. 11 5月, 2020 3 次提交
  8. 07 5月, 2020 1 次提交
  9. 20 4月, 2020 1 次提交
  10. 17 4月, 2020 1 次提交
    • J
      Add ETW enabled checks to ConcurrentBag implementation (case 1230447) · 4354cc38
      Josh Peterson 提交于
      This change modifies the `ConcurrentBag` implementation from corefx.
      Since we cannot update the corefx submodule, make a copy of the
      ConcurrentBag.cs file, fix the issue, and point the build at this copy.
      
      The change is in the `TrySteal` method. It makes calls on the
      `CDSCollectionETWBCLProvider`, which is removed by the manged linker
      by default. Those calls should be wrapped in a
      `CDSCollectionETWBCLProvider.Log.IsEnabled()` if block, so the linker
      can understand to not make the calls.
      4354cc38
  11. 13 4月, 2020 1 次提交
    • T
      [debugger] Fix NOT_IMPLEMENTED while debugging. (#19248) · b6425f60
      Thays Grazia 提交于
      - Changed the behavior on debugger-agent, if we can't parse the new behavior is to return invalid_argument and not assert and stop debugging
      - Changed the mono_domain_set_fast before return from assembly_commands.
      - Add error message when return INVALID_ARGUMENT
      
      Fixes #19146
      b6425f60
  12. 26 3月, 2020 2 次提交
    • J
      Optimize Enum.HasFlags (). · 2978aa00
      Jonathan Chambers 提交于
      Manually applied cherry-pick of https://github.com/mono/mono/pull/8428
      
      Unity: Avoid allocation in Enum.HasFlags (case 1211643)
      
      * [jit] Decompose some CEE_BOX opcodes later to allow more optimizations.
      
      Optimize a code sequence emitted for Enum.HasFlag () by newer csc versions.
      Also mark the temporary bblocks used by decompose_vtypes () as out-of-line if
      the bblock under processing is out-of-line. Mark the domainvar as volatile to avoid
      optimizing it away since references to it can now be generated later from the
      decomposition of OP_BOX.
      
      * [jit] Check that the enum types are the same.
      
      * [jit] Fix support for generic enums.
      
      * [jit] Disable the optimization with 64 bit enums on 32 bit platforms.
      2978aa00
    • J
      Do not access unloading domains in debugger (case 1013579) · bd7f004e
      Jonathan Chambers 提交于
      There was a race where a domain was being unloaded while debugger would access it. A domain was only removed from the 'appdomains_list' as a very last step. The domain was already invalid to access at this point (locks freed for example).
      
      Worse, images would be unloaded if only referenced by that domain. All places the debugger iterates domains hold the loader lock. The loader lock is acquired by the domain unloading process, so as long as a domain is not unloading when we access it inside of the loader lock we are safe.
      bd7f004e
  13. 25 3月, 2020 1 次提交
  14. 22 3月, 2020 1 次提交
  15. 08 3月, 2020 1 次提交
  16. 05 3月, 2020 1 次提交
  17. 04 3月, 2020 3 次提交
  18. 26 2月, 2020 2 次提交
  19. 04 2月, 2020 1 次提交
    • T
      [Debugger] Fix crash when there is a generic struct with a field that is an enumerator. (#12368) · 522cfb6d
      Thays Grazia 提交于
      * [Debugger]  Debugger crashes when inside a class, there is an internal struct, with a field that is an enumerator.
      files.myBucket.GetEnumerator().get_Current().Key
      Fixes #10735
      
      * [Debugger] Debugger crashes when there is a generic struct with a field that is an enumerator.
      Example: files.get_Current().Key
      A unit test that reproduces this crash was added too.
      Fixes #10735
      
      * Removing the extra space.
      
      * UnityAlex cherry-pick modification: Removed tests
      522cfb6d
  20. 01 2月, 2020 1 次提交
  21. 24 1月, 2020 1 次提交
  22. 16 12月, 2019 1 次提交
  23. 04 12月, 2019 1 次提交
    • J
      Increase max size of localloc and localloc_imm on amd64. (#15374) · 9329c3c2
      Johan Lorensson 提交于
      We hit the following assert when doing full AOT of some assemblies:
      
      wrong maximal instruction length of instruction localloc (expected 96, got 99)
      Assertion: should not be reached at mono\mono\mini\mini-amd64.c:6801
      
      Turns out that that size could be hit when a couple of things happens as part
      of lowering OP_LOCALLOC and OP_LOCALLOC_IMM:
      
      sreg1 is not RAX, RCX or RDI
      dreg is not RAX, RCX or RDI
      cfg->param_area is bigger than 127
      
      Fix is to increase max size of the instruction, from 96 -> 120 (same as x86).
      9329c3c2
  24. 01 11月, 2019 2 次提交
  25. 31 10月, 2019 2 次提交
  26. 22 10月, 2019 1 次提交
  27. 25 9月, 2019 1 次提交
  28. 12 9月, 2019 1 次提交
  29. 22 8月, 2019 1 次提交