From d6d77eb2aed5e0c3c05c99a6d78b15f931773954 Mon Sep 17 00:00:00 2001 From: Splitwirez Date: Thu, 3 Sep 2020 19:34:21 -0400 Subject: [PATCH 001/689] Made managed file dialogs lookless/retemplateable --- src/Avalonia.Dialogs/Avalonia.Dialogs.csproj | 3 - src/Avalonia.Dialogs/ChildFitter.cs | 2 +- .../FileSizeStringConverter.cs | 2 +- ...eChooser.xaml.cs => ManagedFileChooser.cs} | 37 +- src/Avalonia.Dialogs/ManagedFileChooser.xaml | 144 - .../ResourceSelectorConverter.cs | 2 +- .../mono_crash.2374905179.0.json | 17846 ++++++++++++++++ .../Avalonia.Themes.Default.csproj | 1 + src/Avalonia.Themes.Default/DefaultTheme.xaml | 1 + .../ManagedFileChooser.xaml | 153 + .../Avalonia.Themes.Fluent.csproj | 3 +- src/Avalonia.Themes.Fluent/FluentTheme.xaml | 1 + .../ManagedFileChooser.xaml | 304 + 13 files changed, 18333 insertions(+), 166 deletions(-) rename src/Avalonia.Dialogs/{ManagedFileChooser.xaml.cs => ManagedFileChooser.cs} (66%) delete mode 100644 src/Avalonia.Dialogs/ManagedFileChooser.xaml create mode 100644 src/Avalonia.Headless/mono_crash.2374905179.0.json create mode 100644 src/Avalonia.Themes.Default/ManagedFileChooser.xaml create mode 100644 src/Avalonia.Themes.Fluent/ManagedFileChooser.xaml diff --git a/src/Avalonia.Dialogs/Avalonia.Dialogs.csproj b/src/Avalonia.Dialogs/Avalonia.Dialogs.csproj index dd476e2559..665693a654 100644 --- a/src/Avalonia.Dialogs/Avalonia.Dialogs.csproj +++ b/src/Avalonia.Dialogs/Avalonia.Dialogs.csproj @@ -4,9 +4,6 @@ - - Designer - diff --git a/src/Avalonia.Dialogs/ChildFitter.cs b/src/Avalonia.Dialogs/ChildFitter.cs index 744d455d9d..4a6db62b32 100644 --- a/src/Avalonia.Dialogs/ChildFitter.cs +++ b/src/Avalonia.Dialogs/ChildFitter.cs @@ -4,7 +4,7 @@ using Avalonia.Layout; namespace Avalonia.Dialogs { - internal class ChildFitter : Decorator + public class ChildFitter : Decorator { protected override Size MeasureOverride(Size availableSize) { diff --git a/src/Avalonia.Dialogs/FileSizeStringConverter.cs b/src/Avalonia.Dialogs/FileSizeStringConverter.cs index 5b41b9da35..c2cdf1e502 100644 --- a/src/Avalonia.Dialogs/FileSizeStringConverter.cs +++ b/src/Avalonia.Dialogs/FileSizeStringConverter.cs @@ -6,7 +6,7 @@ using System.Text; namespace Avalonia.Dialogs { - internal class FileSizeStringConverter : IValueConverter + public class FileSizeStringConverter : IValueConverter { public object Convert(object value, Type targetType, object parameter, CultureInfo culture) { diff --git a/src/Avalonia.Dialogs/ManagedFileChooser.xaml.cs b/src/Avalonia.Dialogs/ManagedFileChooser.cs similarity index 66% rename from src/Avalonia.Dialogs/ManagedFileChooser.xaml.cs rename to src/Avalonia.Dialogs/ManagedFileChooser.cs index 7f29407ed5..f9f38ac474 100644 --- a/src/Avalonia.Dialogs/ManagedFileChooser.xaml.cs +++ b/src/Avalonia.Dialogs/ManagedFileChooser.cs @@ -3,6 +3,7 @@ using System.Linq; using System.Threading.Tasks; using Avalonia; using Avalonia.Controls; +using Avalonia.Controls.Primitives; using Avalonia.Input; using Avalonia.Interactivity; using Avalonia.LogicalTree; @@ -10,17 +11,14 @@ using Avalonia.Markup.Xaml; namespace Avalonia.Dialogs { - internal class ManagedFileChooser : UserControl + public class ManagedFileChooser : TemplatedControl { private Control _quickLinksRoot; private ListBox _filesView; public ManagedFileChooser() { - AvaloniaXamlLoader.Load(this); AddHandler(PointerPressedEvent, OnPointerPressed, RoutingStrategies.Tunnel); - _quickLinksRoot = this.FindControl("QuickLinks"); - _filesView = this.FindControl("Files"); } ManagedFileChooserViewModel Model => DataContext as ManagedFileChooserViewModel; @@ -34,19 +32,22 @@ namespace Avalonia.Dialogs return; } - var isQuickLink = _quickLinksRoot.IsLogicalAncestorOf(e.Source as Control); - if (e.ClickCount == 2 || isQuickLink) + if (_quickLinksRoot != null) { - if (model.ItemType == ManagedFileChooserItemType.File) + var isQuickLink = _quickLinksRoot.IsLogicalAncestorOf(e.Source as Control); + if (e.ClickCount == 2 || isQuickLink) { - Model?.SelectSingleFile(model); + if (model.ItemType == ManagedFileChooserItemType.File) + { + Model?.SelectSingleFile(model); + } + else + { + Model?.Navigate(model.Path); + } + + e.Handled = true; } - else - { - Model?.Navigate(model.Path); - } - - e.Handled = true; } } @@ -79,10 +80,16 @@ namespace Avalonia.Dialogs // Workaround for ListBox bug, scroll to the previous file var indexOfPreselected = model.Items.IndexOf(preselected); - if (indexOfPreselected > 1) + if ((_filesView != null) && (indexOfPreselected > 1)) { _filesView.ScrollIntoView(indexOfPreselected - 1); } } + + protected override void OnApplyTemplate(TemplateAppliedEventArgs e) + { + _quickLinksRoot = e.NameScope.Get("QuickLinks"); + _filesView = e.NameScope.Get("Files"); + } } } diff --git a/src/Avalonia.Dialogs/ManagedFileChooser.xaml b/src/Avalonia.Dialogs/ManagedFileChooser.xaml deleted file mode 100644 index 227cc1afc0..0000000000 --- a/src/Avalonia.Dialogs/ManagedFileChooser.xaml +++ /dev/null @@ -1,144 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Show hidden files - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/Avalonia.Dialogs/ResourceSelectorConverter.cs b/src/Avalonia.Dialogs/ResourceSelectorConverter.cs index 9d8b6cb1c7..c8226b98e4 100644 --- a/src/Avalonia.Dialogs/ResourceSelectorConverter.cs +++ b/src/Avalonia.Dialogs/ResourceSelectorConverter.cs @@ -5,7 +5,7 @@ using Avalonia.Data.Converters; namespace Avalonia.Dialogs { - internal class ResourceSelectorConverter : ResourceDictionary, IValueConverter + public class ResourceSelectorConverter : ResourceDictionary, IValueConverter { public object Convert(object key, Type targetType, object parameter, CultureInfo culture) { diff --git a/src/Avalonia.Headless/mono_crash.2374905179.0.json b/src/Avalonia.Headless/mono_crash.2374905179.0.json new file mode 100644 index 0000000000..94422e8018 --- /dev/null +++ b/src/Avalonia.Headless/mono_crash.2374905179.0.json @@ -0,0 +1,17846 @@ +{ + "protocol_version" : "0.0.6", + "configuration" : { + "version" : "(6.10.0.104) (tarball)", + "tlc" : "__thread", + "sigsgev" : "altstack", + "notifications" : "epoll", + "architecture" : "amd64", + "disabled_features" : "none", + "smallconfig" : "disabled", + "bigarrays" : "disabled", + "softdebug" : "enabled", + "interpreter" : "enabled", + "llvm_support" : "610", + "suspend" : "hybrid" + }, + "memory" : { + "minor_gc_time" : "2543081617", + "major_gc_time" : "14563827", + "minor_gc_count" : "11856", + "major_gc_count" : "23", + "major_gc_time_concurrent" : "80443544" + }, + "threads" : [ + { + "is_managed" : false, + "offset_free_hash" : "0x0", + "offset_rich_hash" : "0x0", + "crashed" : false, + "native_thread_id" : "0x7f5bba641700", + "thread_info_addr" : "0x7f5bac000b60", + "thread_name" : "Thread Pool Wor", + "ctx" : { + "IP" : "0x7f5c7f971618", + "SP" : "0x7f5bba640cb0", + "BP" : "0xa92d48" + }, + "unmanaged_frames" : [ + { + "is_managed" : "false", + "native_address" : "0x462e99", + "native_offset" : "0x00000" + } +, + { + "is_managed" : "false", + "native_address" : "0x64d4ca", + "native_offset" : "0x00000" + } +, + { + "is_managed" : "false", + "native_address" : "0x64eca0", + "native_offset" : "0x00000" + } +, + { + "is_managed" : "false", + "native_address" : "0x657d77", + "native_offset" : "0x00000" + } +, + { + "is_managed" : "false", + "native_address" : "0x4ba6e5", + "native_offset" : "0x00000" + } +, + { + "is_managed" : "false", + "native_address" : "0x7f5c7f9733c0", + "native_offset" : "0x00000" + } +, + { + "is_managed" : "false", + "native_address" : "0x7f5c7f971618", + "native_offset" : "0x00000" + } +, + { + "is_managed" : "false", + "native_address" : "0x7f5c7f971743", + "native_offset" : "0x00000" + } +, + { + "is_managed" : "false", + "native_address" : "0x6b63df", + "native_offset" : "0x00000" + } +, + { + "is_managed" : "false", + "native_address" : "0x6576a3", + "native_offset" : "0x00000" + } +, + { + "is_managed" : "false", + "native_address" : "0x7f5c7f967609", + "native_offset" : "0x00000" + } +, + { + "is_managed" : "false", + "native_address" : "0x7f5c7f541103", + "native_offset" : "0x00000" + } + + ] + }, + { + "is_managed" : false, + "offset_free_hash" : "0x0", + "offset_rich_hash" : "0x0", + "crashed" : false, + "native_thread_id" : "0x7f5c55825700", + "thread_info_addr" : "0x7f5c14000b60", + "thread_name" : "Thread Pool Wor", + "ctx" : { + "IP" : "0x7f5c7f971618", + "SP" : "0x7f5c55824cb0", + "BP" : "0xa92d48" + }, + "unmanaged_frames" : [ + { + "is_managed" : "false", + "native_address" : "0x462e99", + "native_offset" : "0x00000" + } +, + { + "is_managed" : "false", + "native_address" : "0x64d4ca", + "native_offset" : "0x00000" + } +, + { + "is_managed" : "false", + "native_address" : "0x64eca0", + "native_offset" : "0x00000" + } +, + { + "is_managed" : "false", + "native_address" : "0x657d77", + "native_offset" : "0x00000" + } +, + { + "is_managed" : "false", + "native_address" : "0x4ba6e5", + "native_offset" : "0x00000" + } +, + { + "is_managed" : "false", + "native_address" : "0x7f5c7f9733c0", + "native_offset" : "0x00000" + } +, + { + "is_managed" : "false", + "native_address" : "0x7f5c7f971618", + "native_offset" : "0x00000" + } +, + { + "is_managed" : "false", + "native_address" : "0x7f5c7f971743", + "native_offset" : "0x00000" + } +, + { + "is_managed" : "false", + "native_address" : "0x6b63df", + "native_offset" : "0x00000" + } +, + { + "is_managed" : "false", + "native_address" : "0x6576a3", + "native_offset" : "0x00000" + } +, + { + "is_managed" : "false", + "native_address" : "0x7f5c7f967609", + "native_offset" : "0x00000" + } +, + { + "is_managed" : "false", + "native_address" : "0x7f5c7f541103", + "native_offset" : "0x00000" + } + + ] + }, + { + "is_managed" : false, + "offset_free_hash" : "0x0", + "offset_rich_hash" : "0x0", + "crashed" : false, + "native_thread_id" : "0x7f5aa4b17700", + "thread_info_addr" : "0x7f5bb003d830", + "thread_name" : "Thread Pool Wor", + "ctx" : { + "IP" : "0x7f5c7f971618", + "SP" : "0x7f5aa4b16cb0", + "BP" : "0xa92d48" + }, + "unmanaged_frames" : [ + { + "is_managed" : "false", + "native_address" : "0x462e99", + "native_offset" : "0x00000" + } +, + { + "is_managed" : "false", + "native_address" : "0x64d4ca", + "native_offset" : "0x00000" + } +, + { + "is_managed" : "false", + "native_address" : "0x64eca0", + "native_offset" : "0x00000" + } +, + { + "is_managed" : "false", + "native_address" : "0x657d77", + "native_offset" : "0x00000" + } +, + { + "is_managed" : "false", + "native_address" : "0x4ba6e5", + "native_offset" : "0x00000" + } +, + { + "is_managed" : "false", + "native_address" : "0x7f5c7f9733c0", + "native_offset" : "0x00000" + } +, + { + "is_managed" : "false", + "native_address" : "0x7f5c7f971618", + "native_offset" : "0x00000" + } +, + { + "is_managed" : "false", + "native_address" : "0x7f5c7f971743", + "native_offset" : "0x00000" + } +, + { + "is_managed" : "false", + "native_address" : "0x6b63df", + "native_offset" : "0x00000" + } +, + { + "is_managed" : "false", + "native_address" : "0x6576a3", + "native_offset" : "0x00000" + } +, + { + "is_managed" : "false", + "native_address" : "0x7f5c7f967609", + "native_offset" : "0x00000" + } +, + { + "is_managed" : "false", + "native_address" : "0x7f5c7f541103", + "native_offset" : "0x00000" + } + + ] + }, + { + "is_managed" : false, + "offset_free_hash" : "0x0", + "offset_rich_hash" : "0x0", + "crashed" : false, + "native_thread_id" : "0x7f5aa7564700", + "thread_info_addr" : "0x7f5b58002870", + "thread_name" : "Thread Pool Wor", + "ctx" : { + "IP" : "0x7f5c7f971618", + "SP" : "0x7f5aa7563cb0", + "BP" : "0xa92d48" + }, + "unmanaged_frames" : [ + { + "is_managed" : "false", + "native_address" : "0x462e99", + "native_offset" : "0x00000" + } +, + { + "is_managed" : "false", + "native_address" : "0x64d4ca", + "native_offset" : "0x00000" + } +, + { + "is_managed" : "false", + "native_address" : "0x64eca0", + "native_offset" : "0x00000" + } +, + { + "is_managed" : "false", + "native_address" : "0x657d77", + "native_offset" : "0x00000" + } +, + { + "is_managed" : "false", + "native_address" : "0x4ba6e5", + "native_offset" : "0x00000" + } +, + { + "is_managed" : "false", + "native_address" : "0x7f5c7f9733c0", + "native_offset" : "0x00000" + } +, + { + "is_managed" : "false", + "native_address" : "0x7f5c7f971618", + "native_offset" : "0x00000" + } +, + { + "is_managed" : "false", + "native_address" : "0x7f5c7f971743", + "native_offset" : "0x00000" + } +, + { + "is_managed" : "false", + "native_address" : "0x6b63df", + "native_offset" : "0x00000" + } +, + { + "is_managed" : "false", + "native_address" : "0x6576a3", + "native_offset" : "0x00000" + } +, + { + "is_managed" : "false", + "native_address" : "0x7f5c7f967609", + "native_offset" : "0x00000" + } +, + { + "is_managed" : "false", + "native_address" : "0x7f5c7f541103", + "native_offset" : "0x00000" + } + + ] + }, + { + "is_managed" : false, + "offset_free_hash" : "0x0", + "offset_rich_hash" : "0x0", + "crashed" : false, + "native_thread_id" : "0x7f5afb023700", + "thread_info_addr" : "0x7f5aec000b60", + "thread_name" : "Thread Pool Wor", + "ctx" : { + "IP" : "0x7f5c7f971618", + "SP" : "0x7f5afb022cb0", + "BP" : "0xa92d48" + }, + "unmanaged_frames" : [ + { + "is_managed" : "false", + "native_address" : "0x462e99", + "native_offset" : "0x00000" + } +, + { + "is_managed" : "false", + "native_address" : "0x64d4ca", + "native_offset" : "0x00000" + } +, + { + "is_managed" : "false", + "native_address" : "0x64eca0", + "native_offset" : "0x00000" + } +, + { + "is_managed" : "false", + "native_address" : "0x657d77", + "native_offset" : "0x00000" + } +, + { + "is_managed" : "false", + "native_address" : "0x4ba6e5", + "native_offset" : "0x00000" + } +, + { + "is_managed" : "false", + "native_address" : "0x7f5c7f9733c0", + "native_offset" : "0x00000" + } +, + { + "is_managed" : "false", + "native_address" : "0x7f5c7f971618", + "native_offset" : "0x00000" + } +, + { + "is_managed" : "false", + "native_address" : "0x7f5c7f971743", + "native_offset" : "0x00000" + } +, + { + "is_managed" : "false", + "native_address" : "0x6b63df", + "native_offset" : "0x00000" + } +, + { + "is_managed" : "false", + "native_address" : "0x6576a3", + "native_offset" : "0x00000" + } +, + { + "is_managed" : "false", + "native_address" : "0x7f5c7f967609", + "native_offset" : "0x00000" + } +, + { + "is_managed" : "false", + "native_address" : "0x7f5c7f541103", + "native_offset" : "0x00000" + } + + ] + }, + { + "is_managed" : false, + "offset_free_hash" : "0x0", + "offset_rich_hash" : "0x0", + "crashed" : false, + "native_thread_id" : "0x7f5acb577700", + "thread_info_addr" : "0x7f5af01e9800", + "thread_name" : "Thread Pool Wor", + "ctx" : { + "IP" : "0x7f5c7f971618", + "SP" : "0x7f5acb576cb0", + "BP" : "0xa92d48" + }, + "unmanaged_frames" : [ + { + "is_managed" : "false", + "native_address" : "0x462e99", + "native_offset" : "0x00000" + } +, + { + "is_managed" : "false", + "native_address" : "0x64d4ca", + "native_offset" : "0x00000" + } +, + { + "is_managed" : "false", + "native_address" : "0x64eca0", + "native_offset" : "0x00000" + } +, + { + "is_managed" : "false", + "native_address" : "0x657d77", + "native_offset" : "0x00000" + } +, + { + "is_managed" : "false", + "native_address" : "0x4ba6e5", + "native_offset" : "0x00000" + } +, + { + "is_managed" : "false", + "native_address" : "0x7f5c7f9733c0", + "native_offset" : "0x00000" + } +, + { + "is_managed" : "false", + "native_address" : "0x7f5c7f971618", + "native_offset" : "0x00000" + } +, + { + "is_managed" : "false", + "native_address" : "0x7f5c7f971743", + "native_offset" : "0x00000" + } +, + { + "is_managed" : "false", + "native_address" : "0x6b63df", + "native_offset" : "0x00000" + } +, + { + "is_managed" : "false", + "native_address" : "0x6576a3", + "native_offset" : "0x00000" + } +, + { + "is_managed" : "false", + "native_address" : "0x7f5c7f967609", + "native_offset" : "0x00000" + } +, + { + "is_managed" : "false", + "native_address" : "0x7f5c7f541103", + "native_offset" : "0x00000" + } + + ] + }, + { + "is_managed" : true, + "offset_free_hash" : "0xd5ed0e7ac", + "offset_rich_hash" : "0xd5ed0eccf", + "crashed" : false, + "native_thread_id" : "0x7f5b769f4700", + "thread_info_addr" : "0x7f5b40000b60", + "thread_name" : "Thread Pool Wor", + "ctx" : { + "IP" : "0x7f5c7f97236c", + "SP" : "0x7f5b769f3350", + "BP" : "0x1b" + }, + "managed_frames" : [ + { + "is_managed" : "false", + "native_address" : "unregistered" + } +, + { + "is_managed" : "true", + "guid" : "4E15BBAE-9D70-43D8-AFD6-CFD50BD9BD5A", + "token" : "0x00000", + "native_offset" : "0x0", + "filename" : "System.dll", + "sizeofimage" : "0x286000", + "timestamp" : "0x94933251", + "il_offset" : "0x00000" + } +, + { + "is_managed" : "true", + "guid" : "4E15BBAE-9D70-43D8-AFD6-CFD50BD9BD5A", + "token" : "0x6003e13", + "native_offset" : "0x0", + "filename" : "System.dll", + "sizeofimage" : "0x286000", + "timestamp" : "0x94933251", + "il_offset" : "0x00012" + } +, + { + "is_managed" : "true", + "guid" : "4E15BBAE-9D70-43D8-AFD6-CFD50BD9BD5A", + "token" : "0x60041b8", + "native_offset" : "0x0", + "filename" : "System.dll", + "sizeofimage" : "0x286000", + "timestamp" : "0x94933251", + "il_offset" : "0x00027" + } +, + { + "is_managed" : "true", + "guid" : "4E15BBAE-9D70-43D8-AFD6-CFD50BD9BD5A", + "token" : "0x60041b7", + "native_offset" : "0x0", + "filename" : "System.dll", + "sizeofimage" : "0x286000", + "timestamp" : "0x94933251", + "il_offset" : "0x002dc" + } +, + { + "is_managed" : "true", + "guid" : "4E15BBAE-9D70-43D8-AFD6-CFD50BD9BD5A", + "token" : "0x60043ad", + "native_offset" : "0x0", + "filename" : "System.dll", + "sizeofimage" : "0x286000", + "timestamp" : "0x94933251", + "il_offset" : "0x00000" + } +, + { + "is_managed" : "true", + "guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", + "token" : "0x6002392", + "native_offset" : "0x0", + "filename" : "mscorlib.dll", + "sizeofimage" : "0x474000", + "timestamp" : "0xda7f05f4", + "il_offset" : "0x00025" + } +, + { + "is_managed" : "true", + "guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", + "token" : "0x600238e", + "native_offset" : "0x0", + "filename" : "mscorlib.dll", + "sizeofimage" : "0x474000", + "timestamp" : "0xda7f05f4", + "il_offset" : "0x00000" + } +, + { + "is_managed" : "true", + "guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", + "token" : "0x6002391", + "native_offset" : "0x0", + "filename" : "mscorlib.dll", + "sizeofimage" : "0x474000", + "timestamp" : "0xda7f05f4", + "il_offset" : "0x00000" + } +, + { + "is_managed" : "true", + "guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", + "token" : "0x6001ebe", + "native_offset" : "0x0", + "filename" : "mscorlib.dll", + "sizeofimage" : "0x474000", + "timestamp" : "0xda7f05f4", + "il_offset" : "0x00071" + } +, + { + "is_managed" : "true", + "guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", + "token" : "0x6001ebc", + "native_offset" : "0x0", + "filename" : "mscorlib.dll", + "sizeofimage" : "0x474000", + "timestamp" : "0xda7f05f4", + "il_offset" : "0x00000" + } +, + { + "is_managed" : "true", + "guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", + "token" : "0x60023fa", + "native_offset" : "0x0", + "filename" : "mscorlib.dll", + "sizeofimage" : "0x474000", + "timestamp" : "0xda7f05f4", + "il_offset" : "0x00034" + } +, + { + "is_managed" : "true", + "guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", + "token" : "0x6002390", + "native_offset" : "0x0", + "filename" : "mscorlib.dll", + "sizeofimage" : "0x474000", + "timestamp" : "0xda7f05f4", + "il_offset" : "0x0004a" + } +, + { + "is_managed" : "true", + "guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", + "token" : "0x6002506", + "native_offset" : "0x0", + "filename" : "mscorlib.dll", + "sizeofimage" : "0x474000", + "timestamp" : "0xda7f05f4", + "il_offset" : "0x00000" + } +, + { + "is_managed" : "true", + "guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", + "token" : "0x6001f16", + "native_offset" : "0x0", + "filename" : "mscorlib.dll", + "sizeofimage" : "0x474000", + "timestamp" : "0xda7f05f4", + "il_offset" : "0x00025" + } +, + { + "is_managed" : "true", + "guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", + "token" : "0x6001ebe", + "native_offset" : "0x0", + "filename" : "mscorlib.dll", + "sizeofimage" : "0x474000", + "timestamp" : "0xda7f05f4", + "il_offset" : "0x00071" + } +, + { + "is_managed" : "true", + "guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", + "token" : "0x6001ebc", + "native_offset" : "0x0", + "filename" : "mscorlib.dll", + "sizeofimage" : "0x474000", + "timestamp" : "0xda7f05f4", + "il_offset" : "0x00000" + } +, + { + "is_managed" : "true", + "guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", + "token" : "0x6001ebb", + "native_offset" : "0x0", + "filename" : "mscorlib.dll", + "sizeofimage" : "0x474000", + "timestamp" : "0xda7f05f4", + "il_offset" : "0x0002b" + } +, + { + "is_managed" : "true", + "guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", + "token" : "0x6001f17", + "native_offset" : "0x0", + "filename" : "mscorlib.dll", + "sizeofimage" : "0x474000", + "timestamp" : "0xda7f05f4", + "il_offset" : "0x0000f" + } +, + { + "is_managed" : "true", + "guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", + "token" : "0x00000", + "native_offset" : "0x0", + "filename" : "mscorlib.dll", + "sizeofimage" : "0x474000", + "timestamp" : "0xda7f05f4", + "il_offset" : "0x0002a" + } + + ], + "unmanaged_frames" : [ + { + "is_managed" : "false", + "native_address" : "0x462e99", + "native_offset" : "0x00000" + } +, + { + "is_managed" : "false", + "native_address" : "0x64d4ca", + "native_offset" : "0x00000" + } +, + { + "is_managed" : "false", + "native_address" : "0x64eca0", + "native_offset" : "0x00000" + } +, + { + "is_managed" : "false", + "native_address" : "0x657d77", + "native_offset" : "0x00000" + } +, + { + "is_managed" : "false", + "native_address" : "0x4ba6e5", + "native_offset" : "0x00000" + } +, + { + "is_managed" : "false", + "native_address" : "0x7f5c7f9733c0", + "native_offset" : "0x00000" + } +, + { + "is_managed" : "false", + "native_address" : "0x7f5c7f97236c", + "native_offset" : "0x00000" + } +, + { + "is_managed" : "false", + "native_address" : "0x7f5c7c24bc0b", + "native_offset" : "0x00000" + } +, + { + "is_managed" : "false", + "native_address" : "0x7f5c7c24a81e", + "native_offset" : "0x00000" + } +, + { + "is_managed" : "true", + "guid" : "4E15BBAE-9D70-43D8-AFD6-CFD50BD9BD5A", + "token" : "0x00000", + "native_offset" : "0x0", + "filename" : "System.dll", + "sizeofimage" : "0x286000", + "timestamp" : "0x94933251", + "il_offset" : "0x00000" + } + + ] +}, +{ + "is_managed" : false, + "offset_free_hash" : "0x0", + "offset_rich_hash" : "0x0", + "crashed" : false, + "native_thread_id" : "0x7f5acad67700", + "thread_info_addr" : "0x7f5afc037f00", + "thread_name" : "Thread Pool Wor", + "ctx" : { + "IP" : "0x7f5c7f971618", + "SP" : "0x7f5acad66cb0", + "BP" : "0xa92d48" + }, + "unmanaged_frames" : [ + { + "is_managed" : "false", + "native_address" : "0x462e99", + "native_offset" : "0x00000" + } +, + { + "is_managed" : "false", + "native_address" : "0x64d4ca", + "native_offset" : "0x00000" + } +, + { + "is_managed" : "false", + "native_address" : "0x64eca0", + "native_offset" : "0x00000" + } +, + { + "is_managed" : "false", + "native_address" : "0x657d77", + "native_offset" : "0x00000" + } +, + { + "is_managed" : "false", + "native_address" : "0x4ba6e5", + "native_offset" : "0x00000" + } +, + { + "is_managed" : "false", + "native_address" : "0x7f5c7f9733c0", + "native_offset" : "0x00000" + } +, + { + "is_managed" : "false", + "native_address" : "0x7f5c7f971618", + "native_offset" : "0x00000" + } +, + { + "is_managed" : "false", + "native_address" : "0x7f5c7f971743", + "native_offset" : "0x00000" + } +, + { + "is_managed" : "false", + "native_address" : "0x6b63df", + "native_offset" : "0x00000" + } +, + { + "is_managed" : "false", + "native_address" : "0x6576a3", + "native_offset" : "0x00000" + } +, + { + "is_managed" : "false", + "native_address" : "0x7f5c7f967609", + "native_offset" : "0x00000" + } +, + { + "is_managed" : "false", + "native_address" : "0x7f5c7f541103", + "native_offset" : "0x00000" + } + + ] +}, +{ + "is_managed" : false, + "offset_free_hash" : "0x0", + "offset_rich_hash" : "0x0", + "crashed" : false, + "native_thread_id" : "0x7f5aa0dba700", + "thread_info_addr" : "0x7f5bc04a47f0", + "thread_name" : "Thread Pool Wor", + "ctx" : { + "IP" : "0x7f5c7f971618", + "SP" : "0x7f5aa0db9cb0", + "BP" : "0xa92d48" + }, + "unmanaged_frames" : [ + { + "is_managed" : "false", + "native_address" : "0x462e99", + "native_offset" : "0x00000" + } +, + { + "is_managed" : "false", + "native_address" : "0x64d4ca", + "native_offset" : "0x00000" + } +, + { + "is_managed" : "false", + "native_address" : "0x64eca0", + "native_offset" : "0x00000" + } +, + { + "is_managed" : "false", + "native_address" : "0x657d77", + "native_offset" : "0x00000" + } +, + { + "is_managed" : "false", + "native_address" : "0x4ba6e5", + "native_offset" : "0x00000" + } +, + { + "is_managed" : "false", + "native_address" : "0x7f5c7f9733c0", + "native_offset" : "0x00000" + } +, + { + "is_managed" : "false", + "native_address" : "0x7f5c7f971618", + "native_offset" : "0x00000" + } +, + { + "is_managed" : "false", + "native_address" : "0x7f5c7f971743", + "native_offset" : "0x00000" + } +, + { + "is_managed" : "false", + "native_address" : "0x6b63df", + "native_offset" : "0x00000" + } +, + { + "is_managed" : "false", + "native_address" : "0x6576a3", + "native_offset" : "0x00000" + } +, + { + "is_managed" : "false", + "native_address" : "0x7f5c7f967609", + "native_offset" : "0x00000" + } +, + { + "is_managed" : "false", + "native_address" : "0x7f5c7f541103", + "native_offset" : "0x00000" + } + + ] +}, +{ + "is_managed" : false, + "offset_free_hash" : "0x0", + "offset_rich_hash" : "0x0", + "crashed" : false, + "native_thread_id" : "0x7f5bd1e4a700", + "thread_info_addr" : "0x7f5bc8000b60", + "thread_name" : "Thread Pool Wor", + "ctx" : { + "IP" : "0x7f5c7f971618", + "SP" : "0x7f5bd1e49cb0", + "BP" : "0xa92d48" + }, + "unmanaged_frames" : [ + { + "is_managed" : "false", + "native_address" : "0x462e99", + "native_offset" : "0x00000" + } +, + { + "is_managed" : "false", + "native_address" : "0x64d4ca", + "native_offset" : "0x00000" + } +, + { + "is_managed" : "false", + "native_address" : "0x64eca0", + "native_offset" : "0x00000" + } +, + { + "is_managed" : "false", + "native_address" : "0x657d77", + "native_offset" : "0x00000" + } +, + { + "is_managed" : "false", + "native_address" : "0x4ba6e5", + "native_offset" : "0x00000" + } +, + { + "is_managed" : "false", + "native_address" : "0x7f5c7f9733c0", + "native_offset" : "0x00000" + } +, + { + "is_managed" : "false", + "native_address" : "0x7f5c7f971618", + "native_offset" : "0x00000" + } +, + { + "is_managed" : "false", + "native_address" : "0x7f5c7f971743", + "native_offset" : "0x00000" + } +, + { + "is_managed" : "false", + "native_address" : "0x6b63df", + "native_offset" : "0x00000" + } +, + { + "is_managed" : "false", + "native_address" : "0x6576a3", + "native_offset" : "0x00000" + } +, + { + "is_managed" : "false", + "native_address" : "0x7f5c7f967609", + "native_offset" : "0x00000" + } +, + { + "is_managed" : "false", + "native_address" : "0x7f5c7f541103", + "native_offset" : "0x00000" + } + + ] +}, +{ + "is_managed" : false, + "offset_free_hash" : "0x0", + "offset_rich_hash" : "0x0", + "crashed" : false, + "native_thread_id" : "0x7f5b74932700", + "thread_info_addr" : "0x7f5b10000b60", + "thread_name" : "Thread Pool Wor", + "ctx" : { + "IP" : "0x7f5c7f971618", + "SP" : "0x7f5b74931cb0", + "BP" : "0xa92d48" + }, + "unmanaged_frames" : [ + { + "is_managed" : "false", + "native_address" : "0x462e99", + "native_offset" : "0x00000" + } +, + { + "is_managed" : "false", + "native_address" : "0x64d4ca", + "native_offset" : "0x00000" + } +, + { + "is_managed" : "false", + "native_address" : "0x64eca0", + "native_offset" : "0x00000" + } +, + { + "is_managed" : "false", + "native_address" : "0x657d77", + "native_offset" : "0x00000" + } +, + { + "is_managed" : "false", + "native_address" : "0x4ba6e5", + "native_offset" : "0x00000" + } +, + { + "is_managed" : "false", + "native_address" : "0x7f5c7f9733c0", + "native_offset" : "0x00000" + } +, + { + "is_managed" : "false", + "native_address" : "0x7f5c7f971618", + "native_offset" : "0x00000" + } +, + { + "is_managed" : "false", + "native_address" : "0x7f5c7f971743", + "native_offset" : "0x00000" + } +, + { + "is_managed" : "false", + "native_address" : "0x6b63df", + "native_offset" : "0x00000" + } +, + { + "is_managed" : "false", + "native_address" : "0x6576a3", + "native_offset" : "0x00000" + } +, + { + "is_managed" : "false", + "native_address" : "0x7f5c7f967609", + "native_offset" : "0x00000" + } +, + { + "is_managed" : "false", + "native_address" : "0x7f5c7f541103", + "native_offset" : "0x00000" + } + + ] +}, +{ + "is_managed" : false, + "offset_free_hash" : "0x0", + "offset_rich_hash" : "0x0", + "crashed" : false, + "native_thread_id" : "0x7f5aa635b700", + "thread_info_addr" : "0x7f5b80016a90", + "thread_name" : "Thread Pool Wor", + "ctx" : { + "IP" : "0x7f5c7f971618", + "SP" : "0x7f5aa635acb0", + "BP" : "0xa92d48" + }, + "unmanaged_frames" : [ + { + "is_managed" : "false", + "native_address" : "0x462e99", + "native_offset" : "0x00000" + } +, + { + "is_managed" : "false", + "native_address" : "0x64d4ca", + "native_offset" : "0x00000" + } +, + { + "is_managed" : "false", + "native_address" : "0x64eca0", + "native_offset" : "0x00000" + } +, + { + "is_managed" : "false", + "native_address" : "0x657d77", + "native_offset" : "0x00000" + } +, + { + "is_managed" : "false", + "native_address" : "0x4ba6e5", + "native_offset" : "0x00000" + } +, + { + "is_managed" : "false", + "native_address" : "0x7f5c7f9733c0", + "native_offset" : "0x00000" + } +, + { + "is_managed" : "false", + "native_address" : "0x7f5c7f971618", + "native_offset" : "0x00000" + } +, + { + "is_managed" : "false", + "native_address" : "0x7f5c7f971743", + "native_offset" : "0x00000" + } +, + { + "is_managed" : "false", + "native_address" : "0x6b63df", + "native_offset" : "0x00000" + } +, + { + "is_managed" : "false", + "native_address" : "0x6576a3", + "native_offset" : "0x00000" + } +, + { + "is_managed" : "false", + "native_address" : "0x7f5c7f967609", + "native_offset" : "0x00000" + } +, + { + "is_managed" : "false", + "native_address" : "0x7f5c7f541103", + "native_offset" : "0x00000" + } + + ] +}, +{ + "is_managed" : false, + "offset_free_hash" : "0x0", + "offset_rich_hash" : "0x0", + "crashed" : false, + "native_thread_id" : "0x7f5af9e1a700", + "thread_info_addr" : "0x7f5ad0000b60", + "thread_name" : "Thread Pool Wor", + "ctx" : { + "IP" : "0x7f5c7f971618", + "SP" : "0x7f5af9e19cb0", + "BP" : "0xa92d48" + }, + "unmanaged_frames" : [ + { + "is_managed" : "false", + "native_address" : "0x462e99", + "native_offset" : "0x00000" + } +, + { + "is_managed" : "false", + "native_address" : "0x64d4ca", + "native_offset" : "0x00000" + } +, + { + "is_managed" : "false", + "native_address" : "0x64eca0", + "native_offset" : "0x00000" + } +, + { + "is_managed" : "false", + "native_address" : "0x657d77", + "native_offset" : "0x00000" + } +, + { + "is_managed" : "false", + "native_address" : "0x4ba6e5", + "native_offset" : "0x00000" + } +, + { + "is_managed" : "false", + "native_address" : "0x7f5c7f9733c0", + "native_offset" : "0x00000" + } +, + { + "is_managed" : "false", + "native_address" : "0x7f5c7f971618", + "native_offset" : "0x00000" + } +, + { + "is_managed" : "false", + "native_address" : "0x7f5c7f971743", + "native_offset" : "0x00000" + } +, + { + "is_managed" : "false", + "native_address" : "0x6b63df", + "native_offset" : "0x00000" + } +, + { + "is_managed" : "false", + "native_address" : "0x6576a3", + "native_offset" : "0x00000" + } +, + { + "is_managed" : "false", + "native_address" : "0x7f5c7f967609", + "native_offset" : "0x00000" + } +, + { + "is_managed" : "false", + "native_address" : "0x7f5c7f541103", + "native_offset" : "0x00000" + } + + ] +}, +{ + "is_managed" : false, + "offset_free_hash" : "0x0", + "offset_rich_hash" : "0x0", + "crashed" : false, + "native_thread_id" : "0x7f5ab28c7700", + "thread_info_addr" : "0x7f5b3c002870", + "thread_name" : "Thread Pool Wor", + "ctx" : { + "IP" : "0x7f5c7f971618", + "SP" : "0x7f5ab28c6cb0", + "BP" : "0xa92d48" + }, + "unmanaged_frames" : [ + { + "is_managed" : "false", + "native_address" : "0x462e99", + "native_offset" : "0x00000" + } +, + { + "is_managed" : "false", + "native_address" : "0x64d4ca", + "native_offset" : "0x00000" + } +, + { + "is_managed" : "false", + "native_address" : "0x64eca0", + "native_offset" : "0x00000" + } +, + { + "is_managed" : "false", + "native_address" : "0x657d77", + "native_offset" : "0x00000" + } +, + { + "is_managed" : "false", + "native_address" : "0x4ba6e5", + "native_offset" : "0x00000" + } +, + { + "is_managed" : "false", + "native_address" : "0x7f5c7f9733c0", + "native_offset" : "0x00000" + } +, + { + "is_managed" : "false", + "native_address" : "0x7f5c7f971618", + "native_offset" : "0x00000" + } +, + { + "is_managed" : "false", + "native_address" : "0x7f5c7f971743", + "native_offset" : "0x00000" + } +, + { + "is_managed" : "false", + "native_address" : "0x6b63df", + "native_offset" : "0x00000" + } +, + { + "is_managed" : "false", + "native_address" : "0x6576a3", + "native_offset" : "0x00000" + } +, + { + "is_managed" : "false", + "native_address" : "0x7f5c7f967609", + "native_offset" : "0x00000" + } +, + { + "is_managed" : "false", + "native_address" : "0x7f5c7f541103", + "native_offset" : "0x00000" + } + + ] +}, +{ + "is_managed" : true, + "offset_free_hash" : "0xd5ed0e7ac", + "offset_rich_hash" : "0xd5ed0eccf", + "crashed" : false, + "native_thread_id" : "0x7f5b8c387700", + "thread_info_addr" : "0x7f5b7c000b60", + "thread_name" : "Thread Pool Wor", + "ctx" : { + "IP" : "0x7f5c7f97236c", + "SP" : "0x7f5b8c386350", + "BP" : "0xd" + }, + "managed_frames" : [ + { + "is_managed" : "false", + "native_address" : "unregistered" + } +, + { + "is_managed" : "true", + "guid" : "4E15BBAE-9D70-43D8-AFD6-CFD50BD9BD5A", + "token" : "0x00000", + "native_offset" : "0x0", + "filename" : "System.dll", + "sizeofimage" : "0x286000", + "timestamp" : "0x94933251", + "il_offset" : "0x00000" + } +, + { + "is_managed" : "true", + "guid" : "4E15BBAE-9D70-43D8-AFD6-CFD50BD9BD5A", + "token" : "0x6003e13", + "native_offset" : "0x0", + "filename" : "System.dll", + "sizeofimage" : "0x286000", + "timestamp" : "0x94933251", + "il_offset" : "0x00012" + } +, + { + "is_managed" : "true", + "guid" : "4E15BBAE-9D70-43D8-AFD6-CFD50BD9BD5A", + "token" : "0x60041b8", + "native_offset" : "0x0", + "filename" : "System.dll", + "sizeofimage" : "0x286000", + "timestamp" : "0x94933251", + "il_offset" : "0x00027" + } +, + { + "is_managed" : "true", + "guid" : "4E15BBAE-9D70-43D8-AFD6-CFD50BD9BD5A", + "token" : "0x60041b7", + "native_offset" : "0x0", + "filename" : "System.dll", + "sizeofimage" : "0x286000", + "timestamp" : "0x94933251", + "il_offset" : "0x002dc" + } +, + { + "is_managed" : "true", + "guid" : "4E15BBAE-9D70-43D8-AFD6-CFD50BD9BD5A", + "token" : "0x60043ad", + "native_offset" : "0x0", + "filename" : "System.dll", + "sizeofimage" : "0x286000", + "timestamp" : "0x94933251", + "il_offset" : "0x00000" + } +, + { + "is_managed" : "true", + "guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", + "token" : "0x6002392", + "native_offset" : "0x0", + "filename" : "mscorlib.dll", + "sizeofimage" : "0x474000", + "timestamp" : "0xda7f05f4", + "il_offset" : "0x00025" + } +, + { + "is_managed" : "true", + "guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", + "token" : "0x600238e", + "native_offset" : "0x0", + "filename" : "mscorlib.dll", + "sizeofimage" : "0x474000", + "timestamp" : "0xda7f05f4", + "il_offset" : "0x00000" + } +, + { + "is_managed" : "true", + "guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", + "token" : "0x6002391", + "native_offset" : "0x0", + "filename" : "mscorlib.dll", + "sizeofimage" : "0x474000", + "timestamp" : "0xda7f05f4", + "il_offset" : "0x00000" + } +, + { + "is_managed" : "true", + "guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", + "token" : "0x6001ebe", + "native_offset" : "0x0", + "filename" : "mscorlib.dll", + "sizeofimage" : "0x474000", + "timestamp" : "0xda7f05f4", + "il_offset" : "0x00071" + } +, + { + "is_managed" : "true", + "guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", + "token" : "0x6001ebc", + "native_offset" : "0x0", + "filename" : "mscorlib.dll", + "sizeofimage" : "0x474000", + "timestamp" : "0xda7f05f4", + "il_offset" : "0x00000" + } +, + { + "is_managed" : "true", + "guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", + "token" : "0x60023fa", + "native_offset" : "0x0", + "filename" : "mscorlib.dll", + "sizeofimage" : "0x474000", + "timestamp" : "0xda7f05f4", + "il_offset" : "0x00034" + } +, + { + "is_managed" : "true", + "guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", + "token" : "0x6002390", + "native_offset" : "0x0", + "filename" : "mscorlib.dll", + "sizeofimage" : "0x474000", + "timestamp" : "0xda7f05f4", + "il_offset" : "0x0004a" + } +, + { + "is_managed" : "true", + "guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", + "token" : "0x6002506", + "native_offset" : "0x0", + "filename" : "mscorlib.dll", + "sizeofimage" : "0x474000", + "timestamp" : "0xda7f05f4", + "il_offset" : "0x00000" + } +, + { + "is_managed" : "true", + "guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", + "token" : "0x6001f16", + "native_offset" : "0x0", + "filename" : "mscorlib.dll", + "sizeofimage" : "0x474000", + "timestamp" : "0xda7f05f4", + "il_offset" : "0x00025" + } +, + { + "is_managed" : "true", + "guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", + "token" : "0x6001ebe", + "native_offset" : "0x0", + "filename" : "mscorlib.dll", + "sizeofimage" : "0x474000", + "timestamp" : "0xda7f05f4", + "il_offset" : "0x00071" + } +, + { + "is_managed" : "true", + "guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", + "token" : "0x6001ebc", + "native_offset" : "0x0", + "filename" : "mscorlib.dll", + "sizeofimage" : "0x474000", + "timestamp" : "0xda7f05f4", + "il_offset" : "0x00000" + } +, + { + "is_managed" : "true", + "guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", + "token" : "0x6001ebb", + "native_offset" : "0x0", + "filename" : "mscorlib.dll", + "sizeofimage" : "0x474000", + "timestamp" : "0xda7f05f4", + "il_offset" : "0x0002b" + } +, + { + "is_managed" : "true", + "guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", + "token" : "0x6001f17", + "native_offset" : "0x0", + "filename" : "mscorlib.dll", + "sizeofimage" : "0x474000", + "timestamp" : "0xda7f05f4", + "il_offset" : "0x0000f" + } +, + { + "is_managed" : "true", + "guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", + "token" : "0x00000", + "native_offset" : "0x0", + "filename" : "mscorlib.dll", + "sizeofimage" : "0x474000", + "timestamp" : "0xda7f05f4", + "il_offset" : "0x0002a" + } + + ], +"unmanaged_frames" : [ +{ + "is_managed" : "false", + "native_address" : "0x462e99", + "native_offset" : "0x00000" + } +, +{ + "is_managed" : "false", + "native_address" : "0x64d4ca", + "native_offset" : "0x00000" + } +, +{ + "is_managed" : "false", + "native_address" : "0x64eca0", + "native_offset" : "0x00000" + } +, +{ + "is_managed" : "false", + "native_address" : "0x657d77", + "native_offset" : "0x00000" + } +, +{ + "is_managed" : "false", + "native_address" : "0x4ba6e5", + "native_offset" : "0x00000" + } +, +{ + "is_managed" : "false", + "native_address" : "0x7f5c7f9733c0", + "native_offset" : "0x00000" + } +, +{ + "is_managed" : "false", + "native_address" : "0x7f5c7f97236c", + "native_offset" : "0x00000" + } +, +{ + "is_managed" : "false", + "native_address" : "0x7f5c7c24bc0b", + "native_offset" : "0x00000" + } +, +{ + "is_managed" : "false", + "native_address" : "0x7f5c7c24a81e", + "native_offset" : "0x00000" + } +, +{ + "is_managed" : "true", + "guid" : "4E15BBAE-9D70-43D8-AFD6-CFD50BD9BD5A", + "token" : "0x00000", + "native_offset" : "0x0", + "filename" : "System.dll", + "sizeofimage" : "0x286000", + "timestamp" : "0x94933251", + "il_offset" : "0x00000" + } + +] +}, +{ +"is_managed" : true, +"offset_free_hash" : "0x6d8818c17", +"offset_rich_hash" : "0x6d8818d14", +"crashed" : false, +"native_thread_id" : "0x7f5b757eb700", +"thread_info_addr" : "0x7f5b24000b60", +"thread_name" : "Thread Pool Wor", +"ctx" : { + "IP" : "0x7f5c7f96e7b1", + "SP" : "0x7f5b757ea590", + "BP" : "0xaa1820" +}, +"managed_frames" : [ +{ + "is_managed" : "false", + "native_address" : "unregistered" + } +, +{ + "is_managed" : "true", + "guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", + "token" : "0x00000", + "native_offset" : "0x0", + "filename" : "mscorlib.dll", + "sizeofimage" : "0x474000", + "timestamp" : "0xda7f05f4", + "il_offset" : "0x00000" + } +, +{ + "is_managed" : "true", + "guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", + "token" : "0x6001f3d", + "native_offset" : "0x0", + "filename" : "mscorlib.dll", + "sizeofimage" : "0x474000", + "timestamp" : "0xda7f05f4", + "il_offset" : "0x00019" + } +, +{ + "is_managed" : "true", + "guid" : "4E15BBAE-9D70-43D8-AFD6-CFD50BD9BD5A", + "token" : "0x6002c9b", + "native_offset" : "0x0", + "filename" : "System.dll", + "sizeofimage" : "0x286000", + "timestamp" : "0x94933251", + "il_offset" : "0x00002" + } +, +{ + "is_managed" : "true", + "guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", + "token" : "0x6001f16", + "native_offset" : "0x0", + "filename" : "mscorlib.dll", + "sizeofimage" : "0x474000", + "timestamp" : "0xda7f05f4", + "il_offset" : "0x00014" + } +, +{ + "is_managed" : "true", + "guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", + "token" : "0x6001ebe", + "native_offset" : "0x0", + "filename" : "mscorlib.dll", + "sizeofimage" : "0x474000", + "timestamp" : "0xda7f05f4", + "il_offset" : "0x00071" + } +, +{ + "is_managed" : "true", + "guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", + "token" : "0x6001ebc", + "native_offset" : "0x0", + "filename" : "mscorlib.dll", + "sizeofimage" : "0x474000", + "timestamp" : "0xda7f05f4", + "il_offset" : "0x00000" + } +, +{ + "is_managed" : "true", + "guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", + "token" : "0x6001ebb", + "native_offset" : "0x0", + "filename" : "mscorlib.dll", + "sizeofimage" : "0x474000", + "timestamp" : "0xda7f05f4", + "il_offset" : "0x0002b" + } +, +{ + "is_managed" : "true", + "guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", + "token" : "0x6001f18", + "native_offset" : "0x0", + "filename" : "mscorlib.dll", + "sizeofimage" : "0x474000", + "timestamp" : "0xda7f05f4", + "il_offset" : "0x00008" + } +, +{ + "is_managed" : "true", + "guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", + "token" : "0x00000", + "native_offset" : "0x0", + "filename" : "mscorlib.dll", + "sizeofimage" : "0x474000", + "timestamp" : "0xda7f05f4", + "il_offset" : "0x0002a" + } + +], +"unmanaged_frames" : [ +{ +"is_managed" : "false", +"native_address" : "0x462e99", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x64d4ca", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x64eca0", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x657d77", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x4ba6e5", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f9733c0", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f96e7b1", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x70ca6b", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x717454", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x654e90", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x5ecd4b", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x00000", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x00000" +} + +] +}, +{ +"is_managed" : false, +"offset_free_hash" : "0x0", +"offset_rich_hash" : "0x0", +"crashed" : false, +"native_thread_id" : "0x7f5ac1aad700", +"thread_info_addr" : "0x7f5abc002870", +"thread_name" : "Thread Pool Wor", +"ctx" : { +"IP" : "0x7f5c7f971618", +"SP" : "0x7f5ac1aaccb0", +"BP" : "0xa92d48" +}, +"unmanaged_frames" : [ +{ +"is_managed" : "false", +"native_address" : "0x462e99", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x64d4ca", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x64eca0", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x657d77", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x4ba6e5", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f9733c0", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f971618", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f971743", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x6b63df", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x6576a3", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f967609", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f541103", +"native_offset" : "0x00000" +} + +] +}, +{ +"is_managed" : true, +"offset_free_hash" : "0x1363e40d5d", +"offset_rich_hash" : "0x1363e41151", +"crashed" : false, +"native_thread_id" : "0x7f5c777fb700", +"thread_info_addr" : "0x7f5c64000b60", +"thread_name" : "Thread Pool Wor", +"ctx" : { +"IP" : "0x7f5c7f97236c", +"SP" : "0x7f5c777fa080", +"BP" : "0x7f5c64000b60" +}, +"managed_frames" : [ +{ +"is_managed" : "false", +"native_address" : "unregistered" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x00000", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x00000" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x60058c7", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x00010" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x6005885", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x00002" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x600586c", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x00026" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x600586b", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x000a1" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x6005407", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x000b3" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x6005409", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x00028" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x6005933", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x00000" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x6005486", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x00000" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x00000", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x0000a" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x6005488", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x00000" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x00000", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x0000a" +} +, +{ +"is_managed" : "true", +"guid" : "F0F27428-B6F4-4672-BFCC-276474714DFC", +"token" : "0x6000031", +"native_offset" : "0x0", +"filename" : "OmniSharp.Stdio.dll", +"sizeofimage" : "0xa000", +"timestamp" : "0x9f4eb15e", +"il_offset" : "0x00048" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x6004607", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x0002c" +} +, +{ +"is_managed" : "true", +"guid" : "F0F27428-B6F4-4672-BFCC-276474714DFC", +"token" : "0x600000f", +"native_offset" : "0x0", +"filename" : "OmniSharp.Stdio.dll", +"sizeofimage" : "0xa000", +"timestamp" : "0x9f4eb15e", +"il_offset" : "0x0001c" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x6002294", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x0000f" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x600238e", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x00000" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x6002391", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x00000" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x6001ebe", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x00071" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x6001ebc", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x00000" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x60023fa", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x00034" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x6002390", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x0004a" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x600238f", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x00000" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x6001fc9", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x00074" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x6001fde", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x00000" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x00000", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x0002a" +} + +], +"unmanaged_frames" : [ +{ +"is_managed" : "false", +"native_address" : "0x462e99", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x64d4ca", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x64eca0", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x657d77", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x4ba6e5", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f9733c0", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f97236c", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x5834df", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x581e16", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x6ba6b1", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x5dc4a1", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x00000", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x00000" +} + +] +}, +{ +"is_managed" : true, +"offset_free_hash" : "0xd5ed0e7ac", +"offset_rich_hash" : "0xd5ed0eccf", +"crashed" : false, +"native_thread_id" : "0x7f5b777fb700", +"thread_info_addr" : "0x7f5b64000b60", +"thread_name" : "Thread Pool Wor", +"ctx" : { +"IP" : "0x7f5c7f97236c", +"SP" : "0x7f5b777fa350", +"BP" : "0x12" +}, +"managed_frames" : [ +{ +"is_managed" : "false", +"native_address" : "unregistered" +} +, +{ +"is_managed" : "true", +"guid" : "4E15BBAE-9D70-43D8-AFD6-CFD50BD9BD5A", +"token" : "0x00000", +"native_offset" : "0x0", +"filename" : "System.dll", +"sizeofimage" : "0x286000", +"timestamp" : "0x94933251", +"il_offset" : "0x00000" +} +, +{ +"is_managed" : "true", +"guid" : "4E15BBAE-9D70-43D8-AFD6-CFD50BD9BD5A", +"token" : "0x6003e13", +"native_offset" : "0x0", +"filename" : "System.dll", +"sizeofimage" : "0x286000", +"timestamp" : "0x94933251", +"il_offset" : "0x00012" +} +, +{ +"is_managed" : "true", +"guid" : "4E15BBAE-9D70-43D8-AFD6-CFD50BD9BD5A", +"token" : "0x60041b8", +"native_offset" : "0x0", +"filename" : "System.dll", +"sizeofimage" : "0x286000", +"timestamp" : "0x94933251", +"il_offset" : "0x00027" +} +, +{ +"is_managed" : "true", +"guid" : "4E15BBAE-9D70-43D8-AFD6-CFD50BD9BD5A", +"token" : "0x60041b7", +"native_offset" : "0x0", +"filename" : "System.dll", +"sizeofimage" : "0x286000", +"timestamp" : "0x94933251", +"il_offset" : "0x002dc" +} +, +{ +"is_managed" : "true", +"guid" : "4E15BBAE-9D70-43D8-AFD6-CFD50BD9BD5A", +"token" : "0x60043ad", +"native_offset" : "0x0", +"filename" : "System.dll", +"sizeofimage" : "0x286000", +"timestamp" : "0x94933251", +"il_offset" : "0x00000" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x6002392", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x00025" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x600238e", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x00000" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x6002391", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x00000" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x6001ebe", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x00071" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x6001ebc", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x00000" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x60023fa", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x00034" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x6002390", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x0004a" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x6002506", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x00000" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x6001f16", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x00025" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x6001ebe", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x00071" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x6001ebc", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x00000" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x6001ebb", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x0002b" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x6001f17", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x0000f" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x00000", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x0002a" +} + +], +"unmanaged_frames" : [ +{ +"is_managed" : "false", +"native_address" : "0x462e99", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x64d4ca", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x64eca0", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x657d77", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x4ba6e5", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f9733c0", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f97236c", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7c24bc0b", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7c24a81e", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "true", +"guid" : "4E15BBAE-9D70-43D8-AFD6-CFD50BD9BD5A", +"token" : "0x00000", +"native_offset" : "0x0", +"filename" : "System.dll", +"sizeofimage" : "0x286000", +"timestamp" : "0x94933251", +"il_offset" : "0x00000" +} + +] +}, +{ +"is_managed" : false, +"offset_free_hash" : "0x0", +"offset_rich_hash" : "0x0", +"crashed" : false, +"native_thread_id" : "0x7f5bf19e6700", +"thread_info_addr" : "0x7f5be8000b60", +"thread_name" : "Thread Pool Wor", +"ctx" : { +"IP" : "0x7f5c7f971618", +"SP" : "0x7f5bf19e5cb0", +"BP" : "0xa92d48" +}, +"unmanaged_frames" : [ +{ +"is_managed" : "false", +"native_address" : "0x462e99", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x64d4ca", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x64eca0", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x657d77", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x4ba6e5", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f9733c0", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f971618", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f971743", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x6b63df", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x6576a3", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f967609", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f541103", +"native_offset" : "0x00000" +} + +] +}, +{ +"is_managed" : false, +"offset_free_hash" : "0x0", +"offset_rich_hash" : "0x0", +"crashed" : false, +"native_thread_id" : "0x7f5be0db4700", +"thread_info_addr" : "0x7f5bdc000b60", +"thread_name" : "Thread Pool I/O", +"ctx" : { +"IP" : "0x7f5c7f53496f", +"SP" : "0x7f5be0db3ca0", +"BP" : "0x65b240" +}, +"unmanaged_frames" : [ +{ +"is_managed" : "false", +"native_address" : "0x462e99", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x64d4ca", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x64eca0", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x657d77", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x4ba6e5", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f9733c0", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f53496f", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x65aae5", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x65bc06", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x6576a3", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f967609", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f541103", +"native_offset" : "0x00000" +} + +] +}, +{ +"is_managed" : false, +"offset_free_hash" : "0x0", +"offset_rich_hash" : "0x0", +"crashed" : false, +"native_thread_id" : "0x7f5bba23f700", +"thread_info_addr" : "0x7f5ba4000b60", +"thread_name" : "Thread Pool Wor", +"ctx" : { +"IP" : "0x7f5c7f971618", +"SP" : "0x7f5bba23ecb0", +"BP" : "0xa92d48" +}, +"unmanaged_frames" : [ +{ +"is_managed" : "false", +"native_address" : "0x462e99", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x64d4ca", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x64eca0", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x657d77", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x4ba6e5", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f9733c0", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f971618", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f971743", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x6b63df", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x6576a3", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f967609", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f541103", +"native_offset" : "0x00000" +} + +] +}, +{ +"is_managed" : false, +"offset_free_hash" : "0x0", +"offset_rich_hash" : "0x0", +"crashed" : false, +"native_thread_id" : "0x7f5ac2bf6700", +"thread_info_addr" : "0x7f5ab4000b60", +"thread_name" : "Thread Pool Wor", +"ctx" : { +"IP" : "0x7f5c7f971618", +"SP" : "0x7f5ac2bf5cb0", +"BP" : "0xa92d48" +}, +"unmanaged_frames" : [ +{ +"is_managed" : "false", +"native_address" : "0x462e99", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x64d4ca", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x64eca0", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x657d77", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x4ba6e5", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f9733c0", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f971618", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f971743", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x6b63df", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x6576a3", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f967609", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f541103", +"native_offset" : "0x00000" +} + +] +}, +{ +"is_managed" : false, +"offset_free_hash" : "0x0", +"offset_rich_hash" : "0x0", +"crashed" : false, +"native_thread_id" : "0x7f5aa7162700", +"thread_info_addr" : "0x7f5b60002870", +"thread_name" : "Thread Pool Wor", +"ctx" : { +"IP" : "0x7f5c7f971618", +"SP" : "0x7f5aa7161cb0", +"BP" : "0xa92d48" +}, +"unmanaged_frames" : [ +{ +"is_managed" : "false", +"native_address" : "0x462e99", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x64d4ca", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x64eca0", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x657d77", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x4ba6e5", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f9733c0", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f971618", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f971743", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x6b63df", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x6576a3", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f967609", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f541103", +"native_offset" : "0x00000" +} + +] +}, +{ +"is_managed" : false, +"offset_free_hash" : "0x0", +"offset_rich_hash" : "0x0", +"crashed" : false, +"native_thread_id" : "0x7f5afac21700", +"thread_info_addr" : "0x7f5ae4000b60", +"thread_name" : "Thread Pool Wor", +"ctx" : { +"IP" : "0x7f5c7f971618", +"SP" : "0x7f5afac20cb0", +"BP" : "0xa92d48" +}, +"unmanaged_frames" : [ +{ +"is_managed" : "false", +"native_address" : "0x462e99", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x64d4ca", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x64eca0", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x657d77", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x4ba6e5", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f9733c0", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f971618", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f971743", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x6b63df", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x6576a3", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f967609", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f541103", +"native_offset" : "0x00000" +} + +] +}, +{ +"is_managed" : false, +"offset_free_hash" : "0x0", +"offset_rich_hash" : "0x0", +"crashed" : false, +"native_thread_id" : "0x7f5aa9443700", +"thread_info_addr" : "0x7f5b40002870", +"thread_name" : "Thread Pool Wor", +"ctx" : { +"IP" : "0x7f5c7f971618", +"SP" : "0x7f5aa9442cb0", +"BP" : "0xa92d48" +}, +"unmanaged_frames" : [ +{ +"is_managed" : "false", +"native_address" : "0x462e99", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x64d4ca", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x64eca0", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x657d77", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x4ba6e5", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f9733c0", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f971618", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f971743", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x6b63df", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x6576a3", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f967609", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f541103", +"native_offset" : "0x00000" +} + +] +}, +{ +"is_managed" : true, +"offset_free_hash" : "0x1b27ce3945", +"offset_rich_hash" : "0x1b27ce3f7c", +"crashed" : false, +"native_thread_id" : "0x7f5acb175700", +"thread_info_addr" : "0x7f5af4085a50", +"thread_name" : "Thread Pool Wor", +"ctx" : { +"IP" : "0x7f5c7f96e376", +"SP" : "0x7f5acb172f50", +"BP" : "0x2473e30" +}, +"managed_frames" : [ +{ +"is_managed" : "false", +"native_address" : "unregistered" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x00000", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x00000" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x600204a", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x00044" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x6002036", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x00014" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x6002035", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x00000" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x6002030", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x00019" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x6002032", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x00000" +} +, +{ +"is_managed" : "true", +"guid" : "4322D44F-99C8-4AAB-9075-EFD37869F964", +"token" : "0x6000d2d", +"native_offset" : "0x0", +"filename" : "Microsoft.Build.dll", +"sizeofimage" : "0x1da000", +"timestamp" : "0xecf1af40", +"il_offset" : "0x00053" +} +, +{ +"is_managed" : "true", +"guid" : "4322D44F-99C8-4AAB-9075-EFD37869F964", +"token" : "0x6000c3f", +"native_offset" : "0x0", +"filename" : "Microsoft.Build.dll", +"sizeofimage" : "0x1da000", +"timestamp" : "0xecf1af40", +"il_offset" : "0x00007" +} +, +{ +"is_managed" : "true", +"guid" : "4322D44F-99C8-4AAB-9075-EFD37869F964", +"token" : "0x6000c42", +"native_offset" : "0x0", +"filename" : "Microsoft.Build.dll", +"sizeofimage" : "0x1da000", +"timestamp" : "0xecf1af40", +"il_offset" : "0x00007" +} +, +{ +"is_managed" : "true", +"guid" : "4322D44F-99C8-4AAB-9075-EFD37869F964", +"token" : "0x6000e75", +"native_offset" : "0x0", +"filename" : "Microsoft.Build.dll", +"sizeofimage" : "0x1da000", +"timestamp" : "0xecf1af40", +"il_offset" : "0x000d3" +} +, +{ +"is_managed" : "true", +"guid" : "4322D44F-99C8-4AAB-9075-EFD37869F964", +"token" : "0x6000e76", +"native_offset" : "0x0", +"filename" : "Microsoft.Build.dll", +"sizeofimage" : "0x1da000", +"timestamp" : "0xecf1af40", +"il_offset" : "0x00000" +} +, +{ +"is_managed" : "true", +"guid" : "4322D44F-99C8-4AAB-9075-EFD37869F964", +"token" : "0x6000e62", +"native_offset" : "0x0", +"filename" : "Microsoft.Build.dll", +"sizeofimage" : "0x1da000", +"timestamp" : "0xecf1af40", +"il_offset" : "0x00000" +} +, +{ +"is_managed" : "true", +"guid" : "4322D44F-99C8-4AAB-9075-EFD37869F964", +"token" : "0x6000e60", +"native_offset" : "0x0", +"filename" : "Microsoft.Build.dll", +"sizeofimage" : "0x1da000", +"timestamp" : "0xecf1af40", +"il_offset" : "0x00000" +} +, +{ +"is_managed" : "true", +"guid" : "4322D44F-99C8-4AAB-9075-EFD37869F964", +"token" : "0x6000e5f", +"native_offset" : "0x0", +"filename" : "Microsoft.Build.dll", +"sizeofimage" : "0x1da000", +"timestamp" : "0xecf1af40", +"il_offset" : "0x00000" +} +, +{ +"is_managed" : "true", +"guid" : "1A71FA80-2BD1-4574-8EE9-23C03674F4D4", +"token" : "0x6000034", +"native_offset" : "0x0", +"filename" : "OmniSharp.MSBuild.dll", +"sizeofimage" : "0x1e000", +"timestamp" : "0xc213212e", +"il_offset" : "0x0007b" +} +, +{ +"is_managed" : "true", +"guid" : "1A71FA80-2BD1-4574-8EE9-23C03674F4D4", +"token" : "0x60000d9", +"native_offset" : "0x0", +"filename" : "OmniSharp.MSBuild.dll", +"sizeofimage" : "0x1e000", +"timestamp" : "0xc213212e", +"il_offset" : "0x00019" +} +, +{ +"is_managed" : "true", +"guid" : "1A71FA80-2BD1-4574-8EE9-23C03674F4D4", +"token" : "0x600016c", +"native_offset" : "0x0", +"filename" : "OmniSharp.MSBuild.dll", +"sizeofimage" : "0x1e000", +"timestamp" : "0xc213212e", +"il_offset" : "0x00000" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x00000", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x00042" +} +, +{ +"is_managed" : "true", +"guid" : "1A71FA80-2BD1-4574-8EE9-23C03674F4D4", +"token" : "0x600004f", +"native_offset" : "0x0", +"filename" : "OmniSharp.MSBuild.dll", +"sizeofimage" : "0x1e000", +"timestamp" : "0xc213212e", +"il_offset" : "0x0001b" +} +, +{ +"is_managed" : "true", +"guid" : "1A71FA80-2BD1-4574-8EE9-23C03674F4D4", +"token" : "0x600004e", +"native_offset" : "0x0", +"filename" : "OmniSharp.MSBuild.dll", +"sizeofimage" : "0x1e000", +"timestamp" : "0xc213212e", +"il_offset" : "0x00020" +} +, +{ +"is_managed" : "true", +"guid" : "1A71FA80-2BD1-4574-8EE9-23C03674F4D4", +"token" : "0x600004c", +"native_offset" : "0x0", +"filename" : "OmniSharp.MSBuild.dll", +"sizeofimage" : "0x1e000", +"timestamp" : "0xc213212e", +"il_offset" : "0x000a1" +} +, +{ +"is_managed" : "true", +"guid" : "1A71FA80-2BD1-4574-8EE9-23C03674F4D4", +"token" : "0x6000167", +"native_offset" : "0x0", +"filename" : "OmniSharp.MSBuild.dll", +"sizeofimage" : "0x1e000", +"timestamp" : "0xc213212e", +"il_offset" : "0x00073" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x600462c", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x00000" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x6001ebe", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x00071" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x6001ebc", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x00000" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x600462b", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x00024" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x6002454", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x0001a" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x60023a7", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x00052" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x600238b", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x0003c" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x600228e", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x0004f" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x6002406", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x00034" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x6002412", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x00000" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x60020f6", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x00007" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x6001fe1", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x00008" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x6001fc9", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x00074" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x6001fde", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x00000" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x00000", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x0002a" +} + +], +"unmanaged_frames" : [ +{ +"is_managed" : "false", +"native_address" : "0x462e99", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x64d4ca", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x64eca0", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x657d77", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x4ba6e5", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f9733c0", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f96e376", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x70cac5", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x66fa19", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x670fdf", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x6717b8", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x654c1b", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x5ed9b3", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x00000", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x00000" +} + +] +}, +{ +"is_managed" : true, +"offset_free_hash" : "0xd5ed0e7ac", +"offset_rich_hash" : "0xd5ed0eccf", +"crashed" : false, +"native_thread_id" : "0x7f5b765f2700", +"thread_info_addr" : "0x7f5b38000b60", +"thread_name" : "Thread Pool Wor", +"ctx" : { +"IP" : "0x7f5c7f97236c", +"SP" : "0x7f5b765f1350", +"BP" : "0x1d" +}, +"managed_frames" : [ +{ +"is_managed" : "false", +"native_address" : "unregistered" +} +, +{ +"is_managed" : "true", +"guid" : "4E15BBAE-9D70-43D8-AFD6-CFD50BD9BD5A", +"token" : "0x00000", +"native_offset" : "0x0", +"filename" : "System.dll", +"sizeofimage" : "0x286000", +"timestamp" : "0x94933251", +"il_offset" : "0x00000" +} +, +{ +"is_managed" : "true", +"guid" : "4E15BBAE-9D70-43D8-AFD6-CFD50BD9BD5A", +"token" : "0x6003e13", +"native_offset" : "0x0", +"filename" : "System.dll", +"sizeofimage" : "0x286000", +"timestamp" : "0x94933251", +"il_offset" : "0x00012" +} +, +{ +"is_managed" : "true", +"guid" : "4E15BBAE-9D70-43D8-AFD6-CFD50BD9BD5A", +"token" : "0x60041b8", +"native_offset" : "0x0", +"filename" : "System.dll", +"sizeofimage" : "0x286000", +"timestamp" : "0x94933251", +"il_offset" : "0x00027" +} +, +{ +"is_managed" : "true", +"guid" : "4E15BBAE-9D70-43D8-AFD6-CFD50BD9BD5A", +"token" : "0x60041b7", +"native_offset" : "0x0", +"filename" : "System.dll", +"sizeofimage" : "0x286000", +"timestamp" : "0x94933251", +"il_offset" : "0x002dc" +} +, +{ +"is_managed" : "true", +"guid" : "4E15BBAE-9D70-43D8-AFD6-CFD50BD9BD5A", +"token" : "0x60043ad", +"native_offset" : "0x0", +"filename" : "System.dll", +"sizeofimage" : "0x286000", +"timestamp" : "0x94933251", +"il_offset" : "0x00000" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x6002392", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x00025" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x600238e", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x00000" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x6002391", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x00000" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x6001ebe", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x00071" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x6001ebc", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x00000" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x60023fa", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x00034" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x6002390", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x0004a" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x6002506", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x00000" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x6001f16", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x00025" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x6001ebe", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x00071" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x6001ebc", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x00000" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x6001ebb", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x0002b" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x6001f17", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x0000f" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x00000", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x0002a" +} + +], +"unmanaged_frames" : [ +{ +"is_managed" : "false", +"native_address" : "0x462e99", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x64d4ca", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x64eca0", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x657d77", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x4ba6e5", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f9733c0", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f97236c", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7c24bc0b", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7c24a81e", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "true", +"guid" : "4E15BBAE-9D70-43D8-AFD6-CFD50BD9BD5A", +"token" : "0x00000", +"native_offset" : "0x0", +"filename" : "System.dll", +"sizeofimage" : "0x286000", +"timestamp" : "0x94933251", +"il_offset" : "0x00000" +} + +] +}, +{ +"is_managed" : false, +"offset_free_hash" : "0x0", +"offset_rich_hash" : "0x0", +"crashed" : false, +"native_thread_id" : "0x7f5aca965700", +"thread_info_addr" : "0x7f5b1412e120", +"thread_name" : "Thread Pool Wor", +"ctx" : { +"IP" : "0x7f5c7f971618", +"SP" : "0x7f5aca964cb0", +"BP" : "0xa92d48" +}, +"unmanaged_frames" : [ +{ +"is_managed" : "false", +"native_address" : "0x462e99", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x64d4ca", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x64eca0", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x657d77", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x4ba6e5", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f9733c0", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f971618", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f971743", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x6b63df", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x6576a3", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f967609", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f541103", +"native_offset" : "0x00000" +} + +] +}, +{ +"is_managed" : false, +"offset_free_hash" : "0x0", +"offset_rich_hash" : "0x0", +"crashed" : false, +"native_thread_id" : "0x7f5bf3673700", +"thread_info_addr" : "0x7f5bec000b60", +"thread_name" : "Thread Pool Wor", +"ctx" : { +"IP" : "0x7f5c7f971618", +"SP" : "0x7f5bf3672cb0", +"BP" : "0xa92d48" +}, +"unmanaged_frames" : [ +{ +"is_managed" : "false", +"native_address" : "0x462e99", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x64d4ca", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x64eca0", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x657d77", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x4ba6e5", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f9733c0", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f971618", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f971743", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x6b63df", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x6576a3", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f967609", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f541103", +"native_offset" : "0x00000" +} + +] +}, +{ +"is_managed" : false, +"offset_free_hash" : "0x0", +"offset_rich_hash" : "0x0", +"crashed" : false, +"native_thread_id" : "0x7f5aa09b8700", +"thread_info_addr" : "0x7f5bc818b310", +"thread_name" : "Thread Pool Wor", +"ctx" : { +"IP" : "0x7f5c7f971618", +"SP" : "0x7f5aa09b7cb0", +"BP" : "0xa92d48" +}, +"unmanaged_frames" : [ +{ +"is_managed" : "false", +"native_address" : "0x462e99", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x64d4ca", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x64eca0", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x657d77", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x4ba6e5", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f9733c0", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f971618", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f971743", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x6b63df", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x6576a3", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f967609", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f541103", +"native_offset" : "0x00000" +} + +] +}, +{ +"is_managed" : true, +"offset_free_hash" : "0x71cb46c11", +"offset_rich_hash" : "0x71cb46d12", +"crashed" : false, +"native_thread_id" : "0x7f5c57dff700", +"thread_info_addr" : "0x7f5c4c000b60", +"thread_name" : "mono", +"ctx" : { +"IP" : "0x7f5c7f96e7b1", +"SP" : "0x7f5c57dfe680", +"BP" : "0xaa1820" +}, +"managed_frames" : [ +{ +"is_managed" : "false", +"native_address" : "unregistered" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x00000", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x00000" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x6001f3d", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x00019" +} +, +{ +"is_managed" : "true", +"guid" : "B122ED5B-25A5-470E-9286-8ED644084142", +"token" : "0x6000102", +"native_offset" : "0x0", +"filename" : "OmniSharp.Shared.dll", +"sizeofimage" : "0x12000", +"timestamp" : "0xd5c298d0", +"il_offset" : "0x00006" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x6001f16", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x00014" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x6001ebe", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x00071" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x6001ebc", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x00000" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x6001ebb", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x0002b" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x6001f18", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x00008" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x00000", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x0002a" +} + +], +"unmanaged_frames" : [ +{ +"is_managed" : "false", +"native_address" : "0x462e99", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x64d4ca", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x64eca0", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x657d77", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x4ba6e5", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f9733c0", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f96e7b1", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x70ca6b", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x717454", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x654e90", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x5ecd4b", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x00000", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x00000" +} + +] +}, +{ +"is_managed" : false, +"offset_free_hash" : "0x0", +"offset_rich_hash" : "0x0", +"crashed" : false, +"native_thread_id" : "0x7f5bd1a48700", +"thread_info_addr" : "0x7f5bc0000b60", +"thread_name" : "Thread Pool Wor", +"ctx" : { +"IP" : "0x7f5c7f971618", +"SP" : "0x7f5bd1a47cb0", +"BP" : "0xa92d48" +}, +"unmanaged_frames" : [ +{ +"is_managed" : "false", +"native_address" : "0x462e99", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x64d4ca", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x64eca0", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x657d77", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x4ba6e5", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f9733c0", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f971618", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f971743", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x6b63df", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x6576a3", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f967609", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f541103", +"native_offset" : "0x00000" +} + +] +}, +{ +"is_managed" : false, +"offset_free_hash" : "0x0", +"offset_rich_hash" : "0x0", +"crashed" : false, +"native_thread_id" : "0x7f5ab2bce700", +"thread_info_addr" : "0x7f5b240061f0", +"thread_name" : "Thread Pool Wor", +"ctx" : { +"IP" : "0x7f5c7f971618", +"SP" : "0x7f5ab2bcdcb0", +"BP" : "0xa92d48" +}, +"unmanaged_frames" : [ +{ +"is_managed" : "false", +"native_address" : "0x462e99", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x64d4ca", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x64eca0", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x657d77", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x4ba6e5", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f9733c0", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f971618", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f971743", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x6b63df", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x6576a3", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f967609", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f541103", +"native_offset" : "0x00000" +} + +] +}, +{ +"is_managed" : false, +"offset_free_hash" : "0x0", +"offset_rich_hash" : "0x0", +"crashed" : false, +"native_thread_id" : "0x7f5b0bc03700", +"thread_info_addr" : "0x7f5b04000b60", +"thread_name" : "Thread Pool Wor", +"ctx" : { +"IP" : "0x7f5c7f971618", +"SP" : "0x7f5b0bc02cb0", +"BP" : "0xa92d48" +}, +"unmanaged_frames" : [ +{ +"is_managed" : "false", +"native_address" : "0x462e99", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x64d4ca", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x64eca0", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x657d77", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x4ba6e5", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f9733c0", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f971618", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f971743", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x6b63df", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x6576a3", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f967609", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f541103", +"native_offset" : "0x00000" +} + +] +}, +{ +"is_managed" : false, +"offset_free_hash" : "0x0", +"offset_rich_hash" : "0x0", +"crashed" : false, +"native_thread_id" : "0x7f5aa5f59700", +"thread_info_addr" : "0x7f5b9c1436f0", +"thread_name" : "Thread Pool Wor", +"ctx" : { +"IP" : "0x7f5c7f971618", +"SP" : "0x7f5aa5f58cb0", +"BP" : "0xa92d48" +}, +"unmanaged_frames" : [ +{ +"is_managed" : "false", +"native_address" : "0x462e99", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x64d4ca", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x64eca0", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x657d77", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x4ba6e5", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f9733c0", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f971618", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f971743", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x6b63df", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x6576a3", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f967609", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f541103", +"native_offset" : "0x00000" +} + +] +}, +{ +"is_managed" : false, +"offset_free_hash" : "0x0", +"offset_rich_hash" : "0x0", +"crashed" : false, +"native_thread_id" : "0x7f5ab24c5700", +"thread_info_addr" : "0x7f5b44002870", +"thread_name" : "Thread Pool Wor", +"ctx" : { +"IP" : "0x7f5c7f971618", +"SP" : "0x7f5ab24c4cb0", +"BP" : "0xa92d48" +}, +"unmanaged_frames" : [ +{ +"is_managed" : "false", +"native_address" : "0x462e99", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x64d4ca", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x64eca0", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x657d77", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x4ba6e5", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f9733c0", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f971618", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f971743", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x6b63df", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x6576a3", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f967609", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f541103", +"native_offset" : "0x00000" +} + +] +}, +{ +"is_managed" : false, +"offset_free_hash" : "0x0", +"offset_rich_hash" : "0x0", +"crashed" : false, +"native_thread_id" : "0x7f5ac16ab700", +"thread_info_addr" : "0x7f5ad000ab20", +"thread_name" : "Thread Pool Wor", +"ctx" : { +"IP" : "0x7f5c7f971618", +"SP" : "0x7f5ac16aacb0", +"BP" : "0xa92d48" +}, +"unmanaged_frames" : [ +{ +"is_managed" : "false", +"native_address" : "0x462e99", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x64d4ca", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x64eca0", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x657d77", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x4ba6e5", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f9733c0", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f971618", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f971743", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x6b63df", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x6576a3", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f967609", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f541103", +"native_offset" : "0x00000" +} + +] +}, +{ +"is_managed" : true, +"offset_free_hash" : "0xd5ed0e7ac", +"offset_rich_hash" : "0xd5ed0eccf", +"crashed" : false, +"native_thread_id" : "0x7f5b773f9700", +"thread_info_addr" : "0x7f5b5c000b60", +"thread_name" : "Thread Pool Wor", +"ctx" : { +"IP" : "0x7f5c7f97236c", +"SP" : "0x7f5b773f8350", +"BP" : "0x14" +}, +"managed_frames" : [ +{ +"is_managed" : "false", +"native_address" : "unregistered" +} +, +{ +"is_managed" : "true", +"guid" : "4E15BBAE-9D70-43D8-AFD6-CFD50BD9BD5A", +"token" : "0x00000", +"native_offset" : "0x0", +"filename" : "System.dll", +"sizeofimage" : "0x286000", +"timestamp" : "0x94933251", +"il_offset" : "0x00000" +} +, +{ +"is_managed" : "true", +"guid" : "4E15BBAE-9D70-43D8-AFD6-CFD50BD9BD5A", +"token" : "0x6003e13", +"native_offset" : "0x0", +"filename" : "System.dll", +"sizeofimage" : "0x286000", +"timestamp" : "0x94933251", +"il_offset" : "0x00012" +} +, +{ +"is_managed" : "true", +"guid" : "4E15BBAE-9D70-43D8-AFD6-CFD50BD9BD5A", +"token" : "0x60041b8", +"native_offset" : "0x0", +"filename" : "System.dll", +"sizeofimage" : "0x286000", +"timestamp" : "0x94933251", +"il_offset" : "0x00027" +} +, +{ +"is_managed" : "true", +"guid" : "4E15BBAE-9D70-43D8-AFD6-CFD50BD9BD5A", +"token" : "0x60041b7", +"native_offset" : "0x0", +"filename" : "System.dll", +"sizeofimage" : "0x286000", +"timestamp" : "0x94933251", +"il_offset" : "0x002dc" +} +, +{ +"is_managed" : "true", +"guid" : "4E15BBAE-9D70-43D8-AFD6-CFD50BD9BD5A", +"token" : "0x60043ad", +"native_offset" : "0x0", +"filename" : "System.dll", +"sizeofimage" : "0x286000", +"timestamp" : "0x94933251", +"il_offset" : "0x00000" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x6002392", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x00025" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x600238e", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x00000" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x6002391", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x00000" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x6001ebe", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x00071" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x6001ebc", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x00000" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x60023fa", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x00034" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x6002390", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x0004a" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x6002506", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x00000" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x6001f16", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x00025" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x6001ebe", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x00071" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x6001ebc", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x00000" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x6001ebb", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x0002b" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x6001f17", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x0000f" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x00000", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x0002a" +} + +], +"unmanaged_frames" : [ +{ +"is_managed" : "false", +"native_address" : "0x462e99", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x64d4ca", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x64eca0", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x657d77", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x4ba6e5", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f9733c0", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f97236c", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7c24bc0b", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7c24a81e", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "true", +"guid" : "4E15BBAE-9D70-43D8-AFD6-CFD50BD9BD5A", +"token" : "0x00000", +"native_offset" : "0x0", +"filename" : "System.dll", +"sizeofimage" : "0x286000", +"timestamp" : "0x94933251", +"il_offset" : "0x00000" +} + +] +}, +{ +"is_managed" : false, +"offset_free_hash" : "0x0", +"offset_rich_hash" : "0x0", +"crashed" : false, +"native_thread_id" : "0x7f5c56b63700", +"thread_info_addr" : "0x7f5c40000b60", +"thread_name" : "Thread Pool Wor", +"ctx" : { +"IP" : "0x7f5c7f971618", +"SP" : "0x7f5c56b62cb0", +"BP" : "0xa92d48" +}, +"unmanaged_frames" : [ +{ +"is_managed" : "false", +"native_address" : "0x462e99", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x64d4ca", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x64eca0", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x657d77", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x4ba6e5", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f9733c0", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f971618", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f971743", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x6b63df", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x6576a3", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f967609", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f541103", +"native_offset" : "0x00000" +} + +] +}, +{ +"is_managed" : false, +"offset_free_hash" : "0x0", +"offset_rich_hash" : "0x0", +"crashed" : false, +"native_thread_id" : "0x7f5bb9e3d700", +"thread_info_addr" : "0x7f5b9c000b60", +"thread_name" : "Thread Pool Wor", +"ctx" : { +"IP" : "0x7f5c7f971618", +"SP" : "0x7f5bb9e3ccb0", +"BP" : "0xa92d48" +}, +"unmanaged_frames" : [ +{ +"is_managed" : "false", +"native_address" : "0x462e99", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x64d4ca", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x64eca0", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x657d77", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x4ba6e5", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f9733c0", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f971618", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f971743", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x6b63df", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x6576a3", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f967609", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f541103", +"native_offset" : "0x00000" +} + +] +}, +{ +"is_managed" : false, +"offset_free_hash" : "0x0", +"offset_rich_hash" : "0x0", +"crashed" : false, +"native_thread_id" : "0x7f5c135de700", +"thread_info_addr" : "0x7f5c04000b60", +"thread_name" : "Thread Pool Wor", +"ctx" : { +"IP" : "0x7f5c7f971618", +"SP" : "0x7f5c135ddcb0", +"BP" : "0xa92d48" +}, +"unmanaged_frames" : [ +{ +"is_managed" : "false", +"native_address" : "0x462e99", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x64d4ca", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x64eca0", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x657d77", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x4ba6e5", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f9733c0", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f971618", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f971743", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x6b63df", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x6576a3", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f967609", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f541103", +"native_offset" : "0x00000" +} + +] +}, +{ +"is_managed" : false, +"offset_free_hash" : "0x0", +"offset_rich_hash" : "0x0", +"crashed" : false, +"native_thread_id" : "0x7f5b8cd7b700", +"thread_info_addr" : "0x7f5b88000b60", +"thread_name" : "Thread Pool Wor", +"ctx" : { +"IP" : "0x7f5c7f971618", +"SP" : "0x7f5b8cd7acb0", +"BP" : "0xa92d48" +}, +"unmanaged_frames" : [ +{ +"is_managed" : "false", +"native_address" : "0x462e99", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x64d4ca", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x64eca0", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x657d77", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x4ba6e5", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f9733c0", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f971618", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f971743", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x6b63df", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x6576a3", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f967609", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f541103", +"native_offset" : "0x00000" +} + +] +}, +{ +"is_managed" : false, +"offset_free_hash" : "0x0", +"offset_rich_hash" : "0x0", +"crashed" : false, +"native_thread_id" : "0x7f5aa6d60700", +"thread_info_addr" : "0x7f5b68002870", +"thread_name" : "Thread Pool Wor", +"ctx" : { +"IP" : "0x7f5c7f971618", +"SP" : "0x7f5aa6d5fcb0", +"BP" : "0xa92d48" +}, +"unmanaged_frames" : [ +{ +"is_managed" : "false", +"native_address" : "0x462e99", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x64d4ca", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x64eca0", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x657d77", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x4ba6e5", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f9733c0", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f971618", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f971743", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x6b63df", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x6576a3", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f967609", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f541103", +"native_offset" : "0x00000" +} + +] +}, +{ +"is_managed" : false, +"offset_free_hash" : "0x0", +"offset_rich_hash" : "0x0", +"crashed" : false, +"native_thread_id" : "0x7f5c121b6700", +"thread_info_addr" : "0x7f5c00000b60", +"thread_name" : "Thread Pool Wor", +"ctx" : { +"IP" : "0x7f5c7f971618", +"SP" : "0x7f5c121b5cb0", +"BP" : "0xa92d48" +}, +"unmanaged_frames" : [ +{ +"is_managed" : "false", +"native_address" : "0x462e99", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x64d4ca", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x64eca0", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x657d77", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x4ba6e5", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f9733c0", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f971618", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f971743", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x6b63df", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x6576a3", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f967609", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f541103", +"native_offset" : "0x00000" +} + +] +}, +{ +"is_managed" : false, +"offset_free_hash" : "0x0", +"offset_rich_hash" : "0x0", +"crashed" : false, +"native_thread_id" : "0x7f5afa81f700", +"thread_info_addr" : "0x7f5adc000b60", +"thread_name" : "Thread Pool Wor", +"ctx" : { +"IP" : "0x7f5c7f971618", +"SP" : "0x7f5afa81ecb0", +"BP" : "0xa92d48" +}, +"unmanaged_frames" : [ +{ +"is_managed" : "false", +"native_address" : "0x462e99", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x64d4ca", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x64eca0", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x657d77", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x4ba6e5", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f9733c0", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f971618", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f971743", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x6b63df", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x6576a3", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f967609", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f541103", +"native_offset" : "0x00000" +} + +] +}, +{ +"is_managed" : false, +"offset_free_hash" : "0x0", +"offset_rich_hash" : "0x0", +"crashed" : false, +"native_thread_id" : "0x7f5aa9041700", +"thread_info_addr" : "0x7f5b48002870", +"thread_name" : "Thread Pool Wor", +"ctx" : { +"IP" : "0x7f5c7f971618", +"SP" : "0x7f5aa9040cb0", +"BP" : "0xa92d48" +}, +"unmanaged_frames" : [ +{ +"is_managed" : "false", +"native_address" : "0x462e99", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x64d4ca", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x64eca0", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x657d77", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x4ba6e5", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f9733c0", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f971618", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f971743", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x6b63df", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x6576a3", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f967609", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f541103", +"native_offset" : "0x00000" +} + +] +}, +{ +"is_managed" : true, +"offset_free_hash" : "0xd5ed0e7ac", +"offset_rich_hash" : "0xd5ed0eccf", +"crashed" : false, +"native_thread_id" : "0x7f5b761f0700", +"thread_info_addr" : "0x7f5b30000b60", +"thread_name" : "Thread Pool Wor", +"ctx" : { +"IP" : "0x7f5c7f97236c", +"SP" : "0x7f5b761ef350", +"BP" : "0x21" +}, +"managed_frames" : [ +{ +"is_managed" : "false", +"native_address" : "unregistered" +} +, +{ +"is_managed" : "true", +"guid" : "4E15BBAE-9D70-43D8-AFD6-CFD50BD9BD5A", +"token" : "0x00000", +"native_offset" : "0x0", +"filename" : "System.dll", +"sizeofimage" : "0x286000", +"timestamp" : "0x94933251", +"il_offset" : "0x00000" +} +, +{ +"is_managed" : "true", +"guid" : "4E15BBAE-9D70-43D8-AFD6-CFD50BD9BD5A", +"token" : "0x6003e13", +"native_offset" : "0x0", +"filename" : "System.dll", +"sizeofimage" : "0x286000", +"timestamp" : "0x94933251", +"il_offset" : "0x00012" +} +, +{ +"is_managed" : "true", +"guid" : "4E15BBAE-9D70-43D8-AFD6-CFD50BD9BD5A", +"token" : "0x60041b8", +"native_offset" : "0x0", +"filename" : "System.dll", +"sizeofimage" : "0x286000", +"timestamp" : "0x94933251", +"il_offset" : "0x00027" +} +, +{ +"is_managed" : "true", +"guid" : "4E15BBAE-9D70-43D8-AFD6-CFD50BD9BD5A", +"token" : "0x60041b7", +"native_offset" : "0x0", +"filename" : "System.dll", +"sizeofimage" : "0x286000", +"timestamp" : "0x94933251", +"il_offset" : "0x002dc" +} +, +{ +"is_managed" : "true", +"guid" : "4E15BBAE-9D70-43D8-AFD6-CFD50BD9BD5A", +"token" : "0x60043ad", +"native_offset" : "0x0", +"filename" : "System.dll", +"sizeofimage" : "0x286000", +"timestamp" : "0x94933251", +"il_offset" : "0x00000" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x6002392", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x00025" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x600238e", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x00000" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x6002391", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x00000" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x6001ebe", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x00071" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x6001ebc", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x00000" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x60023fa", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x00034" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x6002390", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x0004a" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x6002506", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x00000" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x6001f16", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x00025" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x6001ebe", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x00071" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x6001ebc", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x00000" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x6001ebb", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x0002b" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x6001f17", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x0000f" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x00000", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x0002a" +} + +], +"unmanaged_frames" : [ +{ +"is_managed" : "false", +"native_address" : "0x462e99", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x64d4ca", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x64eca0", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x657d77", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x4ba6e5", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f9733c0", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f97236c", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7c24bc0b", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7c24a81e", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "true", +"guid" : "4E15BBAE-9D70-43D8-AFD6-CFD50BD9BD5A", +"token" : "0x00000", +"native_offset" : "0x0", +"filename" : "System.dll", +"sizeofimage" : "0x286000", +"timestamp" : "0x94933251", +"il_offset" : "0x00000" +} + +] +}, +{ +"is_managed" : false, +"offset_free_hash" : "0x0", +"offset_rich_hash" : "0x0", +"crashed" : false, +"native_thread_id" : "0x7f5aca563700", +"thread_info_addr" : "0x7f5b1c038e00", +"thread_name" : "Thread Pool Wor", +"ctx" : { +"IP" : "0x7f5c7f971618", +"SP" : "0x7f5aca562cb0", +"BP" : "0xa92d48" +}, +"unmanaged_frames" : [ +{ +"is_managed" : "false", +"native_address" : "0x462e99", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x64d4ca", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x64eca0", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x657d77", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x4ba6e5", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f9733c0", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f971618", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f971743", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x6b63df", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x6576a3", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f967609", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f541103", +"native_offset" : "0x00000" +} + +] +}, +{ +"is_managed" : false, +"offset_free_hash" : "0x0", +"offset_rich_hash" : "0x0", +"crashed" : false, +"native_thread_id" : "0x7f5aa05b6700", +"thread_info_addr" : "0x7f5bcc29f0c0", +"thread_name" : "Thread Pool Wor", +"ctx" : { +"IP" : "0x7f5c7f971618", +"SP" : "0x7f5aa05b5cb0", +"BP" : "0xa92d48" +}, +"unmanaged_frames" : [ +{ +"is_managed" : "false", +"native_address" : "0x462e99", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x64d4ca", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x64eca0", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x657d77", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x4ba6e5", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f9733c0", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f971618", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f971743", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x6b63df", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x6576a3", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f967609", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f541103", +"native_offset" : "0x00000" +} + +] +}, +{ +"is_managed" : false, +"offset_free_hash" : "0x0", +"offset_rich_hash" : "0x0", +"crashed" : false, +"native_thread_id" : "0x7f5c579fd700", +"thread_info_addr" : "0x7f5c48000b60", +"thread_name" : "Thread Pool Wor", +"ctx" : { +"IP" : "0x7f5c7f971618", +"SP" : "0x7f5c579fccb0", +"BP" : "0xa92d48" +}, +"unmanaged_frames" : [ +{ +"is_managed" : "false", +"native_address" : "0x462e99", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x64d4ca", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x64eca0", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x657d77", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x4ba6e5", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f9733c0", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f971618", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f971743", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x6b63df", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x6576a3", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f967609", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f541103", +"native_offset" : "0x00000" +} + +] +}, +{ +"is_managed" : false, +"offset_free_hash" : "0x0", +"offset_rich_hash" : "0x0", +"crashed" : false, +"native_thread_id" : "0x7f5be05ee700", +"thread_info_addr" : "0x7f5bd4000b60", +"thread_name" : "Thread Pool Wor", +"ctx" : { +"IP" : "0x7f5c7f971618", +"SP" : "0x7f5be05edcb0", +"BP" : "0xa92d48" +}, +"unmanaged_frames" : [ +{ +"is_managed" : "false", +"native_address" : "0x462e99", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x64d4ca", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x64eca0", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x657d77", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x4ba6e5", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f9733c0", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f971618", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f971743", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x6b63df", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x6576a3", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f967609", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f541103", +"native_offset" : "0x00000" +} + +] +}, +{ +"is_managed" : true, +"offset_free_hash" : "0xae0302bb7", +"offset_rich_hash" : "0xae0302eae", +"crashed" : false, +"native_thread_id" : "0x7f5c12a4b700", +"thread_info_addr" : "0x7f5c08000b60", +"thread_name" : "RequestBuilder ", +"ctx" : { +"IP" : "0x7f5c7f96e376", +"SP" : "0x7f5c12a4a270", +"BP" : "0x7f5bb40081a0" +}, +"managed_frames" : [ +{ +"is_managed" : "false", +"native_address" : "unregistered" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x00000", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x00000" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x6001ef6", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x0002f" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x6001ee9", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x0000e" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x6001eeb", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x00000" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x6001e3b", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x0001d" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x6001e3a", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x000d9" +} +, +{ +"is_managed" : "true", +"guid" : "4E15BBAE-9D70-43D8-AFD6-CFD50BD9BD5A", +"token" : "0x6003b82", +"native_offset" : "0x0", +"filename" : "System.dll", +"sizeofimage" : "0x286000", +"timestamp" : "0x94933251", +"il_offset" : "0x00067" +} +, +{ +"is_managed" : "true", +"guid" : "4E15BBAE-9D70-43D8-AFD6-CFD50BD9BD5A", +"token" : "0x6004276", +"native_offset" : "0x0", +"filename" : "System.dll", +"sizeofimage" : "0x286000", +"timestamp" : "0x94933251", +"il_offset" : "0x0004d" +} +, +{ +"is_managed" : "true", +"guid" : "4322D44F-99C8-4AAB-9075-EFD37869F964", +"token" : "0x6002330", +"native_offset" : "0x0", +"filename" : "Microsoft.Build.dll", +"sizeofimage" : "0x1da000", +"timestamp" : "0xecf1af40", +"il_offset" : "0x0002e" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x6001f16", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x00014" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x6001ebe", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x00071" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x6001ebc", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x00000" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x6001ebb", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x0002b" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x6001f18", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x00008" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x00000", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x0002a" +} + +], +"unmanaged_frames" : [ +{ +"is_managed" : "false", +"native_address" : "0x462e99", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x64d4ca", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x64eca0", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x657d77", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x4ba6e5", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f9733c0", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f96e376", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x70cac5", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x66fa19", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x670fdf", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x6aa67d", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x5eb533", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x00000", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x00000" +} + +] +}, +{ +"is_managed" : false, +"offset_free_hash" : "0x0", +"offset_rich_hash" : "0x0", +"crashed" : false, +"native_thread_id" : "0x7f5aa511a700", +"thread_info_addr" : "0x7f5ba01fb700", +"thread_name" : "Thread Pool Wor", +"ctx" : { +"IP" : "0x7f5c7f971618", +"SP" : "0x7f5aa5119cb0", +"BP" : "0xa92d48" +}, +"unmanaged_frames" : [ +{ +"is_managed" : "false", +"native_address" : "0x462e99", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x64d4ca", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x64eca0", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x657d77", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x4ba6e5", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f9733c0", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f971618", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f971743", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x6b63df", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x6576a3", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f967609", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f541103", +"native_offset" : "0x00000" +} + +] +}, +{ +"is_managed" : false, +"offset_free_hash" : "0x0", +"offset_rich_hash" : "0x0", +"crashed" : false, +"native_thread_id" : "0x7f5ab1ef9700", +"thread_info_addr" : "0x7f5b2c002870", +"thread_name" : "Thread Pool Wor", +"ctx" : { +"IP" : "0x7f5c7f971618", +"SP" : "0x7f5ab1ef8cb0", +"BP" : "0xa92d48" +}, +"unmanaged_frames" : [ +{ +"is_managed" : "false", +"native_address" : "0x462e99", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x64d4ca", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x64eca0", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x657d77", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x4ba6e5", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f9733c0", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f971618", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f971743", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x6b63df", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x6576a3", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f967609", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f541103", +"native_offset" : "0x00000" +} + +] +}, +{ +"is_managed" : true, +"offset_free_hash" : "0x9bfc759f0", +"offset_rich_hash" : "0x9bfc75b7f", +"crashed" : false, +"native_thread_id" : "0x7f5c773ff700", +"thread_info_addr" : "0x7f5c58000b60", +"thread_name" : "Timer-Scheduler", +"ctx" : { +"IP" : "0x7f5c7f96e7b1", +"SP" : "0x7f5c773fdf30", +"BP" : "0x2471890" +}, +"managed_frames" : [ +{ +"is_managed" : "false", +"native_address" : "unregistered" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x00000", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x00000" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x600204a", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x00044" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x6002036", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x00014" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x6002035", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x00000" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x6002030", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x00019" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x6002033", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x00000" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x60020ef", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x0003c" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x6001f16", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x00014" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x6001ebe", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x00071" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x6001ebc", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x00000" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x6001ebb", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x0002b" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x6001f18", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x00008" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x00000", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x0002a" +} + +], +"unmanaged_frames" : [ +{ +"is_managed" : "false", +"native_address" : "0x462e99", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x64d4ca", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x64eca0", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x657d77", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x4ba6e5", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f9733c0", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f96e7b1", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x70ca6b", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x66fa19", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x67103e", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x6717b8", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x654c1b", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x5ed9b3", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x00000", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x00000" +} + +] +}, +{ +"is_managed" : false, +"offset_free_hash" : "0x0", +"offset_rich_hash" : "0x0", +"crashed" : false, +"native_thread_id" : "0x7f5acbb7a700", +"thread_info_addr" : "0x7f5adc089cc0", +"thread_name" : "Thread Pool Wor", +"ctx" : { +"IP" : "0x7f5c7f971618", +"SP" : "0x7f5acbb79cb0", +"BP" : "0xa92d48" +}, +"unmanaged_frames" : [ +{ +"is_managed" : "false", +"native_address" : "0x462e99", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x64d4ca", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x64eca0", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x657d77", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x4ba6e5", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f9733c0", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f971618", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f971743", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x6b63df", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x6576a3", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f967609", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f541103", +"native_offset" : "0x00000" +} + +] +}, +{ +"is_managed" : true, +"offset_free_hash" : "0xd5ed0e7ac", +"offset_rich_hash" : "0xd5ed0eccf", +"crashed" : false, +"native_thread_id" : "0x7f5b76ff7700", +"thread_info_addr" : "0x7f5b54000b60", +"thread_name" : "Thread Pool Wor", +"ctx" : { +"IP" : "0x7f5c7f97236c", +"SP" : "0x7f5b76ff6350", +"BP" : "0x18" +}, +"managed_frames" : [ +{ +"is_managed" : "false", +"native_address" : "unregistered" +} +, +{ +"is_managed" : "true", +"guid" : "4E15BBAE-9D70-43D8-AFD6-CFD50BD9BD5A", +"token" : "0x00000", +"native_offset" : "0x0", +"filename" : "System.dll", +"sizeofimage" : "0x286000", +"timestamp" : "0x94933251", +"il_offset" : "0x00000" +} +, +{ +"is_managed" : "true", +"guid" : "4E15BBAE-9D70-43D8-AFD6-CFD50BD9BD5A", +"token" : "0x6003e13", +"native_offset" : "0x0", +"filename" : "System.dll", +"sizeofimage" : "0x286000", +"timestamp" : "0x94933251", +"il_offset" : "0x00012" +} +, +{ +"is_managed" : "true", +"guid" : "4E15BBAE-9D70-43D8-AFD6-CFD50BD9BD5A", +"token" : "0x60041b8", +"native_offset" : "0x0", +"filename" : "System.dll", +"sizeofimage" : "0x286000", +"timestamp" : "0x94933251", +"il_offset" : "0x00027" +} +, +{ +"is_managed" : "true", +"guid" : "4E15BBAE-9D70-43D8-AFD6-CFD50BD9BD5A", +"token" : "0x60041b7", +"native_offset" : "0x0", +"filename" : "System.dll", +"sizeofimage" : "0x286000", +"timestamp" : "0x94933251", +"il_offset" : "0x002dc" +} +, +{ +"is_managed" : "true", +"guid" : "4E15BBAE-9D70-43D8-AFD6-CFD50BD9BD5A", +"token" : "0x60043ad", +"native_offset" : "0x0", +"filename" : "System.dll", +"sizeofimage" : "0x286000", +"timestamp" : "0x94933251", +"il_offset" : "0x00000" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x6002392", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x00025" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x600238e", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x00000" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x6002391", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x00000" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x6001ebe", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x00071" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x6001ebc", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x00000" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x60023fa", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x00034" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x6002390", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x0004a" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x6002506", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x00000" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x6001f16", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x00025" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x6001ebe", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x00071" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x6001ebc", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x00000" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x6001ebb", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x0002b" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x6001f17", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x0000f" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x00000", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x0002a" +} + +], +"unmanaged_frames" : [ +{ +"is_managed" : "false", +"native_address" : "0x462e99", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x64d4ca", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x64eca0", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x657d77", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x4ba6e5", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f9733c0", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f97236c", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7c24bc0b", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7c24a81e", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "true", +"guid" : "4E15BBAE-9D70-43D8-AFD6-CFD50BD9BD5A", +"token" : "0x00000", +"native_offset" : "0x0", +"filename" : "System.dll", +"sizeofimage" : "0x286000", +"timestamp" : "0x94933251", +"il_offset" : "0x00000" +} + +] +}, +{ +"is_managed" : false, +"offset_free_hash" : "0x0", +"offset_rich_hash" : "0x0", +"crashed" : false, +"native_thread_id" : "0x7f5c56761700", +"thread_info_addr" : "0x7f5c38000b60", +"thread_name" : "Thread Pool Wor", +"ctx" : { +"IP" : "0x7f5c7f971618", +"SP" : "0x7f5c56760cb0", +"BP" : "0xa92d48" +}, +"unmanaged_frames" : [ +{ +"is_managed" : "false", +"native_address" : "0x462e99", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x64d4ca", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x64eca0", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x657d77", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x4ba6e5", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f9733c0", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f971618", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f971743", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x6b63df", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x6576a3", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f967609", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f541103", +"native_offset" : "0x00000" +} + +] +}, +{ +"is_managed" : false, +"offset_free_hash" : "0x0", +"offset_rich_hash" : "0x0", +"crashed" : false, +"native_thread_id" : "0x7f5ac87f7700", +"thread_info_addr" : "0x7f5ac4000b60", +"thread_name" : "Thread Pool Wor", +"ctx" : { +"IP" : "0x7f5c7f971618", +"SP" : "0x7f5ac87f6cb0", +"BP" : "0xa92d48" +}, +"unmanaged_frames" : [ +{ +"is_managed" : "false", +"native_address" : "0x462e99", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x64d4ca", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x64eca0", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x657d77", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x4ba6e5", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f9733c0", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f971618", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f971743", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x6b63df", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x6576a3", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f967609", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f541103", +"native_offset" : "0x00000" +} + +] +}, +{ +"is_managed" : true, +"offset_free_hash" : "0x92d1d8509", +"offset_rich_hash" : "0x92d1d8834", +"crashed" : false, +"native_thread_id" : "0x7f5c7f41dfc0", +"thread_info_addr" : "0x247c240", +"thread_name" : "mono", +"ctx" : { +"IP" : "0x7f5c7f96e376", +"SP" : "0x7ffcc24e4540", +"BP" : "0x2472690" +}, +"managed_frames" : [ +{ +"is_managed" : "false", +"native_address" : "unregistered" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x00000", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x00000" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x600204a", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x00044" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x6002036", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x00014" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x6002035", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x00000" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x6002030", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x00019" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x6002032", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x00000" +} +, +{ +"is_managed" : "true", +"guid" : "71687585-38F6-45E8-803B-45D63EEEFAA0", +"token" : "0x6000006", +"native_offset" : "0x0", +"filename" : "OmniSharp.exe", +"sizeofimage" : "0x8000", +"timestamp" : "0xa1351079", +"il_offset" : "0x00182" +} +, +{ +"is_managed" : "true", +"guid" : "6AB45C39-4161-4FCD-85A7-FAD519CAB701", +"token" : "0x60000e3", +"native_offset" : "0x0", +"filename" : "OmniSharp.Host.dll", +"sizeofimage" : "0x1a000", +"timestamp" : "0x9d322109", +"il_offset" : "0x0000b" +} +, +{ +"is_managed" : "true", +"guid" : "344A1E8C-D659-4B17-B1E0-1F8DF6AE8827", +"token" : "0x60000b9", +"native_offset" : "0x0", +"filename" : "McMaster.Extensions.CommandLineUtils.dll", +"sizeofimage" : "0x28000", +"timestamp" : "0x83b188f9", +"il_offset" : "0x00039" +} +, +{ +"is_managed" : "true", +"guid" : "6AB45C39-4161-4FCD-85A7-FAD519CAB701", +"token" : "0x6000002", +"native_offset" : "0x0", +"filename" : "OmniSharp.Host.dll", +"sizeofimage" : "0x1a000", +"timestamp" : "0x9d322109", +"il_offset" : "0x00081" +} +, +{ +"is_managed" : "true", +"guid" : "71687585-38F6-45E8-803B-45D63EEEFAA0", +"token" : "0x6000004", +"native_offset" : "0x0", +"filename" : "OmniSharp.exe", +"sizeofimage" : "0x8000", +"timestamp" : "0xa1351079", +"il_offset" : "0x00028" +} +, +{ +"is_managed" : "true", +"guid" : "6AB45C39-4161-4FCD-85A7-FAD519CAB701", +"token" : "0x600001d", +"native_offset" : "0x0", +"filename" : "OmniSharp.Host.dll", +"sizeofimage" : "0x1a000", +"timestamp" : "0x9d322109", +"il_offset" : "0x0001c" +} +, +{ +"is_managed" : "true", +"guid" : "71687585-38F6-45E8-803B-45D63EEEFAA0", +"token" : "0x6000001", +"native_offset" : "0x0", +"filename" : "OmniSharp.exe", +"sizeofimage" : "0x8000", +"timestamp" : "0xa1351079", +"il_offset" : "0x00005" +} +, +{ +"is_managed" : "true", +"guid" : "71687585-38F6-45E8-803B-45D63EEEFAA0", +"token" : "0x00000", +"native_offset" : "0x0", +"filename" : "OmniSharp.exe", +"sizeofimage" : "0x8000", +"timestamp" : "0xa1351079", +"il_offset" : "0x0002a" +} + +], +"unmanaged_frames" : [ +{ +"is_managed" : "false", +"native_address" : "0x462e99", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x64d4ca", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x64eca0", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x657d77", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x4ba6e5", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f9733c0", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f96e376", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x70cac5", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x66fa19", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x670fdf", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x6717b8", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x654c1b", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x5ed9b3", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x00000", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x00000" +} + +] +}, +{ +"is_managed" : false, +"offset_free_hash" : "0x0", +"offset_rich_hash" : "0x0", +"crashed" : false, +"native_thread_id" : "0x7f5aa695e700", +"thread_info_addr" : "0x7f5b7c002980", +"thread_name" : "Thread Pool Wor", +"ctx" : { +"IP" : "0x7f5c7f971618", +"SP" : "0x7f5aa695dcb0", +"BP" : "0xa92d48" +}, +"unmanaged_frames" : [ +{ +"is_managed" : "false", +"native_address" : "0x462e99", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x64d4ca", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x64eca0", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x657d77", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x4ba6e5", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f9733c0", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f971618", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f971743", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x6b63df", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x6576a3", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f967609", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f541103", +"native_offset" : "0x00000" +} + +] +}, +{ +"is_managed" : false, +"offset_free_hash" : "0x0", +"offset_rich_hash" : "0x0", +"crashed" : false, +"native_thread_id" : "0x7f5afa41d700", +"thread_info_addr" : "0x7f5ad4000b60", +"thread_name" : "Thread Pool Wor", +"ctx" : { +"IP" : "0x7f5c7f971618", +"SP" : "0x7f5afa41ccb0", +"BP" : "0xa92d48" +}, +"unmanaged_frames" : [ +{ +"is_managed" : "false", +"native_address" : "0x462e99", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x64d4ca", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x64eca0", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x657d77", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x4ba6e5", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f9733c0", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f971618", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f971743", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x6b63df", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x6576a3", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f967609", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f541103", +"native_offset" : "0x00000" +} + +] +}, +{ +"is_managed" : true, +"offset_free_hash" : "0xd5ed0e7ac", +"offset_rich_hash" : "0xd5ed0eccf", +"crashed" : false, +"native_thread_id" : "0x7f5b8c98a700", +"thread_info_addr" : "0x7f5b80000b60", +"thread_name" : "Thread Pool Wor", +"ctx" : { +"IP" : "0x7f5c7f97236c", +"SP" : "0x7f5b8c989350", +"BP" : "0x4" +}, +"managed_frames" : [ +{ +"is_managed" : "false", +"native_address" : "unregistered" +} +, +{ +"is_managed" : "true", +"guid" : "4E15BBAE-9D70-43D8-AFD6-CFD50BD9BD5A", +"token" : "0x00000", +"native_offset" : "0x0", +"filename" : "System.dll", +"sizeofimage" : "0x286000", +"timestamp" : "0x94933251", +"il_offset" : "0x00000" +} +, +{ +"is_managed" : "true", +"guid" : "4E15BBAE-9D70-43D8-AFD6-CFD50BD9BD5A", +"token" : "0x6003e13", +"native_offset" : "0x0", +"filename" : "System.dll", +"sizeofimage" : "0x286000", +"timestamp" : "0x94933251", +"il_offset" : "0x00012" +} +, +{ +"is_managed" : "true", +"guid" : "4E15BBAE-9D70-43D8-AFD6-CFD50BD9BD5A", +"token" : "0x60041b8", +"native_offset" : "0x0", +"filename" : "System.dll", +"sizeofimage" : "0x286000", +"timestamp" : "0x94933251", +"il_offset" : "0x00027" +} +, +{ +"is_managed" : "true", +"guid" : "4E15BBAE-9D70-43D8-AFD6-CFD50BD9BD5A", +"token" : "0x60041b7", +"native_offset" : "0x0", +"filename" : "System.dll", +"sizeofimage" : "0x286000", +"timestamp" : "0x94933251", +"il_offset" : "0x002dc" +} +, +{ +"is_managed" : "true", +"guid" : "4E15BBAE-9D70-43D8-AFD6-CFD50BD9BD5A", +"token" : "0x60043ad", +"native_offset" : "0x0", +"filename" : "System.dll", +"sizeofimage" : "0x286000", +"timestamp" : "0x94933251", +"il_offset" : "0x00000" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x6002392", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x00025" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x600238e", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x00000" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x6002391", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x00000" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x6001ebe", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x00071" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x6001ebc", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x00000" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x60023fa", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x00034" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x6002390", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x0004a" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x6002506", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x00000" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x6001f16", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x00025" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x6001ebe", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x00071" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x6001ebc", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x00000" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x6001ebb", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x0002b" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x6001f17", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x0000f" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x00000", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x0002a" +} + +], +"unmanaged_frames" : [ +{ +"is_managed" : "false", +"native_address" : "0x462e99", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x64d4ca", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x64eca0", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x657d77", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x4ba6e5", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f9733c0", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f97236c", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7c24bc0b", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7c24a81e", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "true", +"guid" : "4E15BBAE-9D70-43D8-AFD6-CFD50BD9BD5A", +"token" : "0x00000", +"native_offset" : "0x0", +"filename" : "System.dll", +"sizeofimage" : "0x286000", +"timestamp" : "0x94933251", +"il_offset" : "0x00000" +} + +] +}, +{ +"is_managed" : false, +"offset_free_hash" : "0x0", +"offset_rich_hash" : "0x0", +"crashed" : false, +"native_thread_id" : "0x7f5aa8c3f700", +"thread_info_addr" : "0x7f5b50002870", +"thread_name" : "Thread Pool Wor", +"ctx" : { +"IP" : "0x7f5c7f971618", +"SP" : "0x7f5aa8c3ecb0", +"BP" : "0xa92d48" +}, +"unmanaged_frames" : [ +{ +"is_managed" : "false", +"native_address" : "0x462e99", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x64d4ca", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x64eca0", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x657d77", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x4ba6e5", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f9733c0", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f971618", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f971743", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x6b63df", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x6576a3", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f967609", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f541103", +"native_offset" : "0x00000" +} + +] +}, +{ +"is_managed" : true, +"offset_free_hash" : "0xd5ed0e7ac", +"offset_rich_hash" : "0xd5ed0eccf", +"crashed" : false, +"native_thread_id" : "0x7f5b75dee700", +"thread_info_addr" : "0x7f5b28000b60", +"thread_name" : "Thread Pool Wor", +"ctx" : { +"IP" : "0x7f5c7f97236c", +"SP" : "0x7f5b75ded350", +"BP" : "0x23" +}, +"managed_frames" : [ +{ +"is_managed" : "false", +"native_address" : "unregistered" +} +, +{ +"is_managed" : "true", +"guid" : "4E15BBAE-9D70-43D8-AFD6-CFD50BD9BD5A", +"token" : "0x00000", +"native_offset" : "0x0", +"filename" : "System.dll", +"sizeofimage" : "0x286000", +"timestamp" : "0x94933251", +"il_offset" : "0x00000" +} +, +{ +"is_managed" : "true", +"guid" : "4E15BBAE-9D70-43D8-AFD6-CFD50BD9BD5A", +"token" : "0x6003e13", +"native_offset" : "0x0", +"filename" : "System.dll", +"sizeofimage" : "0x286000", +"timestamp" : "0x94933251", +"il_offset" : "0x00012" +} +, +{ +"is_managed" : "true", +"guid" : "4E15BBAE-9D70-43D8-AFD6-CFD50BD9BD5A", +"token" : "0x60041b8", +"native_offset" : "0x0", +"filename" : "System.dll", +"sizeofimage" : "0x286000", +"timestamp" : "0x94933251", +"il_offset" : "0x00027" +} +, +{ +"is_managed" : "true", +"guid" : "4E15BBAE-9D70-43D8-AFD6-CFD50BD9BD5A", +"token" : "0x60041b7", +"native_offset" : "0x0", +"filename" : "System.dll", +"sizeofimage" : "0x286000", +"timestamp" : "0x94933251", +"il_offset" : "0x002dc" +} +, +{ +"is_managed" : "true", +"guid" : "4E15BBAE-9D70-43D8-AFD6-CFD50BD9BD5A", +"token" : "0x60043ad", +"native_offset" : "0x0", +"filename" : "System.dll", +"sizeofimage" : "0x286000", +"timestamp" : "0x94933251", +"il_offset" : "0x00000" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x6002392", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x00025" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x600238e", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x00000" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x6002391", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x00000" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x6001ebe", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x00071" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x6001ebc", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x00000" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x60023fa", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x00034" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x6002390", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x0004a" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x6002506", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x00000" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x6001f16", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x00025" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x6001ebe", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x00071" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x6001ebc", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x00000" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x6001ebb", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x0002b" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x6001f17", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x0000f" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x00000", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x0002a" +} + +], +"unmanaged_frames" : [ +{ +"is_managed" : "false", +"native_address" : "0x462e99", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x64d4ca", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x64eca0", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x657d77", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x4ba6e5", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f9733c0", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f97236c", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7c24bc0b", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7c24a81e", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "true", +"guid" : "4E15BBAE-9D70-43D8-AFD6-CFD50BD9BD5A", +"token" : "0x00000", +"native_offset" : "0x0", +"filename" : "System.dll", +"sizeofimage" : "0x286000", +"timestamp" : "0x94933251", +"il_offset" : "0x00000" +} + +] +}, +{ +"is_managed" : false, +"offset_free_hash" : "0x0", +"offset_rich_hash" : "0x0", +"crashed" : false, +"native_thread_id" : "0x7f5c77dfe700", +"thread_info_addr" : "0x7f5c68000b60", +"thread_name" : "Thread Pool Wor", +"ctx" : { +"IP" : "0x7f5c7f971618", +"SP" : "0x7f5c77dfdcb0", +"BP" : "0xa92d48" +}, +"unmanaged_frames" : [ +{ +"is_managed" : "false", +"native_address" : "0x462e99", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x64d4ca", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x64eca0", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x657d77", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x4ba6e5", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f9733c0", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f971618", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f971743", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x6b63df", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x6576a3", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f967609", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f541103", +"native_offset" : "0x00000" +} + +] +}, +{ +"is_managed" : true, +"offset_free_hash" : "0xd5ed0e7ac", +"offset_rich_hash" : "0xd5ed0eccf", +"crashed" : false, +"native_thread_id" : "0x7f5b77dfe700", +"thread_info_addr" : "0x7f5b68000b60", +"thread_name" : "Thread Pool Wor", +"ctx" : { +"IP" : "0x7f5c7f97236c", +"SP" : "0x7f5b77dfd350", +"BP" : "0xf" +}, +"managed_frames" : [ +{ +"is_managed" : "false", +"native_address" : "unregistered" +} +, +{ +"is_managed" : "true", +"guid" : "4E15BBAE-9D70-43D8-AFD6-CFD50BD9BD5A", +"token" : "0x00000", +"native_offset" : "0x0", +"filename" : "System.dll", +"sizeofimage" : "0x286000", +"timestamp" : "0x94933251", +"il_offset" : "0x00000" +} +, +{ +"is_managed" : "true", +"guid" : "4E15BBAE-9D70-43D8-AFD6-CFD50BD9BD5A", +"token" : "0x6003e13", +"native_offset" : "0x0", +"filename" : "System.dll", +"sizeofimage" : "0x286000", +"timestamp" : "0x94933251", +"il_offset" : "0x00012" +} +, +{ +"is_managed" : "true", +"guid" : "4E15BBAE-9D70-43D8-AFD6-CFD50BD9BD5A", +"token" : "0x60041b8", +"native_offset" : "0x0", +"filename" : "System.dll", +"sizeofimage" : "0x286000", +"timestamp" : "0x94933251", +"il_offset" : "0x00027" +} +, +{ +"is_managed" : "true", +"guid" : "4E15BBAE-9D70-43D8-AFD6-CFD50BD9BD5A", +"token" : "0x60041b7", +"native_offset" : "0x0", +"filename" : "System.dll", +"sizeofimage" : "0x286000", +"timestamp" : "0x94933251", +"il_offset" : "0x002dc" +} +, +{ +"is_managed" : "true", +"guid" : "4E15BBAE-9D70-43D8-AFD6-CFD50BD9BD5A", +"token" : "0x60043ad", +"native_offset" : "0x0", +"filename" : "System.dll", +"sizeofimage" : "0x286000", +"timestamp" : "0x94933251", +"il_offset" : "0x00000" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x6002392", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x00025" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x600238e", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x00000" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x6002391", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x00000" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x6001ebe", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x00071" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x6001ebc", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x00000" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x60023fa", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x00034" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x6002390", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x0004a" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x6002506", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x00000" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x6001f16", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x00025" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x6001ebe", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x00071" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x6001ebc", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x00000" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x6001ebb", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x0002b" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x6001f17", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x0000f" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x00000", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x0002a" +} + +], +"unmanaged_frames" : [ +{ +"is_managed" : "false", +"native_address" : "0x462e99", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x64d4ca", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x64eca0", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x657d77", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x4ba6e5", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f9733c0", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f97236c", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7c24bc0b", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7c24a81e", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "true", +"guid" : "4E15BBAE-9D70-43D8-AFD6-CFD50BD9BD5A", +"token" : "0x00000", +"native_offset" : "0x0", +"filename" : "System.dll", +"sizeofimage" : "0x286000", +"timestamp" : "0x94933251", +"il_offset" : "0x00000" +} + +] +}, +{ +"is_managed" : false, +"offset_free_hash" : "0x0", +"offset_rich_hash" : "0x0", +"crashed" : false, +"native_thread_id" : "0x7f5bba842700", +"thread_info_addr" : "0x7f5ba8000b60", +"thread_name" : "Thread Pool Wor", +"ctx" : { +"IP" : "0x7f5c7f971618", +"SP" : "0x7f5bba841cb0", +"BP" : "0xa92d48" +}, +"unmanaged_frames" : [ +{ +"is_managed" : "false", +"native_address" : "0x462e99", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x64d4ca", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x64eca0", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x657d77", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x4ba6e5", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f9733c0", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f971618", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f971743", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x6b63df", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x6576a3", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f967609", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f541103", +"native_offset" : "0x00000" +} + +] +}, +{ +"is_managed" : false, +"offset_free_hash" : "0x0", +"offset_rich_hash" : "0x0", +"crashed" : false, +"native_thread_id" : "0x7f5c55a26700", +"thread_info_addr" : "0x7f5c20000b60", +"thread_name" : "Thread Pool Wor", +"ctx" : { +"IP" : "0x7f5c7f971618", +"SP" : "0x7f5c55a25cb0", +"BP" : "0xa92d48" +}, +"unmanaged_frames" : [ +{ +"is_managed" : "false", +"native_address" : "0x462e99", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x64d4ca", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x64eca0", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x657d77", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x4ba6e5", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f9733c0", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f971618", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f971743", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x6b63df", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x6576a3", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f967609", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f541103", +"native_offset" : "0x00000" +} + +] +}, +{ +"is_managed" : false, +"offset_free_hash" : "0x0", +"offset_rich_hash" : "0x0", +"crashed" : false, +"native_thread_id" : "0x7f5aa4d18700", +"thread_info_addr" : "0x7f5ba8160c00", +"thread_name" : "Thread Pool Wor", +"ctx" : { +"IP" : "0x7f5c7f971618", +"SP" : "0x7f5aa4d17cb0", +"BP" : "0xa92d48" +}, +"unmanaged_frames" : [ +{ +"is_managed" : "false", +"native_address" : "0x462e99", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x64d4ca", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x64eca0", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x657d77", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x4ba6e5", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f9733c0", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f971618", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f971743", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x6b63df", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x6576a3", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f967609", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f541103", +"native_offset" : "0x00000" +} + +] +}, +{ +"is_managed" : false, +"offset_free_hash" : "0x0", +"offset_rich_hash" : "0x0", +"crashed" : false, +"native_thread_id" : "0x7f5aa7765700", +"thread_info_addr" : "0x7f5b5c002870", +"thread_name" : "Thread Pool Wor", +"ctx" : { +"IP" : "0x7f5c7f971618", +"SP" : "0x7f5aa7764cb0", +"BP" : "0xa92d48" +}, +"unmanaged_frames" : [ +{ +"is_managed" : "false", +"native_address" : "0x462e99", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x64d4ca", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x64eca0", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x657d77", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x4ba6e5", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f9733c0", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f971618", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f971743", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x6b63df", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x6576a3", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f967609", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f541103", +"native_offset" : "0x00000" +} + +] +}, +{ +"is_managed" : false, +"offset_free_hash" : "0x0", +"offset_rich_hash" : "0x0", +"crashed" : false, +"native_thread_id" : "0x7f5b75351700", +"thread_info_addr" : "0x7f5b18000b60", +"thread_name" : "Thread Pool Wor", +"ctx" : { +"IP" : "0x7f5c7f971618", +"SP" : "0x7f5b75350cb0", +"BP" : "0xa92d48" +}, +"unmanaged_frames" : [ +{ +"is_managed" : "false", +"native_address" : "0x462e99", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x64d4ca", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x64eca0", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x657d77", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x4ba6e5", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f9733c0", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f971618", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f971743", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x6b63df", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x6576a3", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f967609", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f541103", +"native_offset" : "0x00000" +} + +] +}, +{ +"is_managed" : false, +"offset_free_hash" : "0x0", +"offset_rich_hash" : "0x0", +"crashed" : false, +"native_thread_id" : "0x7f5acb778700", +"thread_info_addr" : "0x7f5ae4064240", +"thread_name" : "Thread Pool Wor", +"ctx" : { +"IP" : "0x7f5c7f971618", +"SP" : "0x7f5acb777cb0", +"BP" : "0xa92d48" +}, +"unmanaged_frames" : [ +{ +"is_managed" : "false", +"native_address" : "0x462e99", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x64d4ca", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x64eca0", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x657d77", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x4ba6e5", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f9733c0", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f971618", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f971743", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x6b63df", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x6576a3", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f967609", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f541103", +"native_offset" : "0x00000" +} + +] +}, +{ +"is_managed" : true, +"offset_free_hash" : "0xd5ed0e7ac", +"offset_rich_hash" : "0xd5ed0eccf", +"crashed" : false, +"native_thread_id" : "0x7f5b76bf5700", +"thread_info_addr" : "0x7f5b4c000b60", +"thread_name" : "Thread Pool Wor", +"ctx" : { +"IP" : "0x7f5c7f97236c", +"SP" : "0x7f5b76bf4350", +"BP" : "0x1a" +}, +"managed_frames" : [ +{ +"is_managed" : "false", +"native_address" : "unregistered" +} +, +{ +"is_managed" : "true", +"guid" : "4E15BBAE-9D70-43D8-AFD6-CFD50BD9BD5A", +"token" : "0x00000", +"native_offset" : "0x0", +"filename" : "System.dll", +"sizeofimage" : "0x286000", +"timestamp" : "0x94933251", +"il_offset" : "0x00000" +} +, +{ +"is_managed" : "true", +"guid" : "4E15BBAE-9D70-43D8-AFD6-CFD50BD9BD5A", +"token" : "0x6003e13", +"native_offset" : "0x0", +"filename" : "System.dll", +"sizeofimage" : "0x286000", +"timestamp" : "0x94933251", +"il_offset" : "0x00012" +} +, +{ +"is_managed" : "true", +"guid" : "4E15BBAE-9D70-43D8-AFD6-CFD50BD9BD5A", +"token" : "0x60041b8", +"native_offset" : "0x0", +"filename" : "System.dll", +"sizeofimage" : "0x286000", +"timestamp" : "0x94933251", +"il_offset" : "0x00027" +} +, +{ +"is_managed" : "true", +"guid" : "4E15BBAE-9D70-43D8-AFD6-CFD50BD9BD5A", +"token" : "0x60041b7", +"native_offset" : "0x0", +"filename" : "System.dll", +"sizeofimage" : "0x286000", +"timestamp" : "0x94933251", +"il_offset" : "0x002dc" +} +, +{ +"is_managed" : "true", +"guid" : "4E15BBAE-9D70-43D8-AFD6-CFD50BD9BD5A", +"token" : "0x60043ad", +"native_offset" : "0x0", +"filename" : "System.dll", +"sizeofimage" : "0x286000", +"timestamp" : "0x94933251", +"il_offset" : "0x00000" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x6002392", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x00025" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x600238e", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x00000" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x6002391", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x00000" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x6001ebe", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x00071" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x6001ebc", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x00000" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x60023fa", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x00034" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x6002390", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x0004a" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x6002506", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x00000" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x6001f16", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x00025" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x6001ebe", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x00071" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x6001ebc", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x00000" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x6001ebb", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x0002b" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x6001f17", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x0000f" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x00000", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x0002a" +} + +], +"unmanaged_frames" : [ +{ +"is_managed" : "false", +"native_address" : "0x462e99", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x64d4ca", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x64eca0", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x657d77", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x4ba6e5", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f9733c0", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f97236c", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7c24bc0b", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7c24a81e", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "true", +"guid" : "4E15BBAE-9D70-43D8-AFD6-CFD50BD9BD5A", +"token" : "0x00000", +"native_offset" : "0x0", +"filename" : "System.dll", +"sizeofimage" : "0x286000", +"timestamp" : "0x94933251", +"il_offset" : "0x00000" +} + +] +}, +{ +"is_managed" : true, +"offset_free_hash" : "0x8e3043601", +"offset_rich_hash" : "0x8e3043892", +"crashed" : false, +"native_thread_id" : "0x7f5c5635f700", +"thread_info_addr" : "0x7f5c30000b60", +"thread_name" : "In-proc Node (D", +"ctx" : { +"IP" : "0x7f5c7f96e376", +"SP" : "0x7f5c5635df10", +"BP" : "0xa91fa0" +}, +"managed_frames" : [ +{ +"is_managed" : "false", +"native_address" : "unregistered" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x00000", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x00000" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x600204b", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x000c7" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x600203d", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x000a1" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x6002040", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x00000" +} +, +{ +"is_managed" : "true", +"guid" : "4322D44F-99C8-4AAB-9075-EFD37869F964", +"token" : "0x6001301", +"native_offset" : "0x0", +"filename" : "Microsoft.Build.dll", +"sizeofimage" : "0x1da000", +"timestamp" : "0xecf1af40", +"il_offset" : "0x00047" +} +, +{ +"is_managed" : "true", +"guid" : "4322D44F-99C8-4AAB-9075-EFD37869F964", +"token" : "0x6001522", +"native_offset" : "0x0", +"filename" : "Microsoft.Build.dll", +"sizeofimage" : "0x1da000", +"timestamp" : "0xecf1af40", +"il_offset" : "0x00000" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x6001f16", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x00014" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x6001ebe", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x00071" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x6001ebc", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x00000" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x6001ebb", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x0002b" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x6001f18", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x00008" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x00000", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x0002a" +} + +], +"unmanaged_frames" : [ +{ +"is_managed" : "false", +"native_address" : "0x462e99", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x64d4ca", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x64eca0", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x657d77", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x4ba6e5", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f9733c0", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f96e376", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x70cac5", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x66f2b1", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x671709", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x654c1b", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x5ed9b3", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x00000", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x00000" +} + +] +}, +{ +"is_managed" : false, +"offset_free_hash" : "0x0", +"offset_rich_hash" : "0x0", +"crashed" : false, +"native_thread_id" : "0x7f5bd204b700", +"thread_info_addr" : "0x7f5bc4000b60", +"thread_name" : "Thread Pool Wor", +"ctx" : { +"IP" : "0x7f5c7f971618", +"SP" : "0x7f5bd204acb0", +"BP" : "0xa92d48" +}, +"unmanaged_frames" : [ +{ +"is_managed" : "false", +"native_address" : "0x462e99", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x64d4ca", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x64eca0", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x657d77", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x4ba6e5", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f9733c0", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f971618", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f971743", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x6b63df", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x6576a3", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f967609", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f541103", +"native_offset" : "0x00000" +} + +] +}, +{ +"is_managed" : true, +"offset_free_hash" : "0xae0302bb7", +"offset_rich_hash" : "0xae0302eae", +"crashed" : false, +"native_thread_id" : "0x7f5c5631e700", +"thread_info_addr" : "0x7f5c24000b60", +"thread_name" : "RequestBuilder ", +"ctx" : { +"IP" : "0x7f5c7f96e376", +"SP" : "0x7f5c5631d270", +"BP" : "0x7f5bb4008210" +}, +"managed_frames" : [ +{ +"is_managed" : "false", +"native_address" : "unregistered" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x00000", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x00000" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x6001ef6", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x0002f" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x6001ee9", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x0000e" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x6001eeb", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x00000" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x6001e3b", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x0001d" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x6001e3a", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x000d9" +} +, +{ +"is_managed" : "true", +"guid" : "4E15BBAE-9D70-43D8-AFD6-CFD50BD9BD5A", +"token" : "0x6003b82", +"native_offset" : "0x0", +"filename" : "System.dll", +"sizeofimage" : "0x286000", +"timestamp" : "0x94933251", +"il_offset" : "0x00067" +} +, +{ +"is_managed" : "true", +"guid" : "4E15BBAE-9D70-43D8-AFD6-CFD50BD9BD5A", +"token" : "0x6004276", +"native_offset" : "0x0", +"filename" : "System.dll", +"sizeofimage" : "0x286000", +"timestamp" : "0x94933251", +"il_offset" : "0x0004d" +} +, +{ +"is_managed" : "true", +"guid" : "4322D44F-99C8-4AAB-9075-EFD37869F964", +"token" : "0x6002330", +"native_offset" : "0x0", +"filename" : "Microsoft.Build.dll", +"sizeofimage" : "0x1da000", +"timestamp" : "0xecf1af40", +"il_offset" : "0x0002e" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x6001f16", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x00014" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x6001ebe", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x00071" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x6001ebc", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x00000" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x6001ebb", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x0002b" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x6001f18", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x00008" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x00000", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x0002a" +} + +], +"unmanaged_frames" : [ +{ +"is_managed" : "false", +"native_address" : "0x462e99", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x64d4ca", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x64eca0", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x657d77", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x4ba6e5", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f9733c0", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f96e376", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x70cac5", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x66fa19", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x670fdf", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x6aa67d", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x5eb533", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x00000", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x00000" +} + +] +}, +{ +"is_managed" : true, +"offset_free_hash" : "0xaebd47c26", +"offset_rich_hash" : "0xaebd47eb2", +"crashed" : false, +"native_thread_id" : "0x7f5c7445a700", +"thread_info_addr" : "0x7f5c50000b60", +"thread_name" : "mono", +"ctx" : { +"IP" : "0x7f5c7f96e376", +"SP" : "0x7f5c744592b0", +"BP" : "0x2477780" +}, +"managed_frames" : [ +{ +"is_managed" : "false", +"native_address" : "unregistered" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x00000", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x00000" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x6001ef6", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x0002f" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x6001ee9", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x0000e" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x6001eeb", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x00000" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x6001e3b", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x0001d" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x6001e3a", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x000d9" +} +, +{ +"is_managed" : "true", +"guid" : "4E15BBAE-9D70-43D8-AFD6-CFD50BD9BD5A", +"token" : "0x6003b82", +"native_offset" : "0x0", +"filename" : "System.dll", +"sizeofimage" : "0x286000", +"timestamp" : "0x94933251", +"il_offset" : "0x00067" +} +, +{ +"is_managed" : "true", +"guid" : "4E15BBAE-9D70-43D8-AFD6-CFD50BD9BD5A", +"token" : "0x6003b81", +"native_offset" : "0x0", +"filename" : "System.dll", +"sizeofimage" : "0x286000", +"timestamp" : "0x94933251", +"il_offset" : "0x00006" +} +, +{ +"is_managed" : "true", +"guid" : "4E15BBAE-9D70-43D8-AFD6-CFD50BD9BD5A", +"token" : "0x6003b7c", +"native_offset" : "0x0", +"filename" : "System.dll", +"sizeofimage" : "0x286000", +"timestamp" : "0x94933251", +"il_offset" : "0x00009" +} +, +{ +"is_managed" : "true", +"guid" : "D425A4C4-D357-418F-9029-4B510D8C538F", +"token" : "0x6000069", +"native_offset" : "0x0", +"filename" : "Microsoft.AspNetCore.Razor.LanguageServer.Common.dll", +"sizeofimage" : "0xe000", +"timestamp" : "0xe8a35612", +"il_offset" : "0x00001" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x6001f16", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x00014" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x6001ebe", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x00071" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x6001ebc", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x00000" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x6001ebb", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x0002b" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x6001f18", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x00008" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x00000", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x0002a" +} + +], +"unmanaged_frames" : [ +{ +"is_managed" : "false", +"native_address" : "0x462e99", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x64d4ca", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x64eca0", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x657d77", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x4ba6e5", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f9733c0", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f96e376", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x70cac5", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x66fa19", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x670fdf", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x6aa67d", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x5eb533", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x00000", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x00000" +} + +] +}, +{ +"is_managed" : false, +"offset_free_hash" : "0x0", +"offset_rich_hash" : "0x0", +"crashed" : false, +"native_thread_id" : "0x7f5b74b33700", +"thread_info_addr" : "0x7f5b1c000b60", +"thread_name" : "Thread Pool Wor", +"ctx" : { +"IP" : "0x7f5c7f971618", +"SP" : "0x7f5b74b32cb0", +"BP" : "0xa92d48" +}, +"unmanaged_frames" : [ +{ +"is_managed" : "false", +"native_address" : "0x462e99", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x64d4ca", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x64eca0", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x657d77", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x4ba6e5", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f9733c0", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f971618", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f971743", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x6b63df", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x6576a3", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f967609", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f541103", +"native_offset" : "0x00000" +} + +] +}, +{ +"is_managed" : false, +"offset_free_hash" : "0x0", +"offset_rich_hash" : "0x0", +"crashed" : false, +"native_thread_id" : "0x7f5aa655c700", +"thread_info_addr" : "0x7f5b8400aee0", +"thread_name" : "Thread Pool Wor", +"ctx" : { +"IP" : "0x7f5c7f971618", +"SP" : "0x7f5aa655bcb0", +"BP" : "0xa92d48" +}, +"unmanaged_frames" : [ +{ +"is_managed" : "false", +"native_address" : "0x462e99", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x64d4ca", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x64eca0", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x657d77", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x4ba6e5", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f9733c0", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f971618", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f971743", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x6b63df", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x6576a3", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f967609", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f541103", +"native_offset" : "0x00000" +} + +] +}, +{ +"is_managed" : false, +"offset_free_hash" : "0x0", +"offset_rich_hash" : "0x0", +"crashed" : false, +"native_thread_id" : "0x7f5afa01b700", +"thread_info_addr" : "0x7f5acc000b60", +"thread_name" : "Thread Pool Wor", +"ctx" : { +"IP" : "0x7f5c7f971618", +"SP" : "0x7f5afa01acb0", +"BP" : "0xa92d48" +}, +"unmanaged_frames" : [ +{ +"is_managed" : "false", +"native_address" : "0x462e99", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x64d4ca", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x64eca0", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x657d77", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x4ba6e5", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f9733c0", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f971618", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f971743", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x6b63df", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x6576a3", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f967609", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f541103", +"native_offset" : "0x00000" +} + +] +}, +{ +"is_managed" : false, +"offset_free_hash" : "0x0", +"offset_rich_hash" : "0x0", +"crashed" : false, +"native_thread_id" : "0x7f5aad59b700", +"thread_info_addr" : "0x7f5b34002870", +"thread_name" : "Thread Pool Wor", +"ctx" : { +"IP" : "0x7f5c7f971618", +"SP" : "0x7f5aad59acb0", +"BP" : "0xa92d48" +}, +"unmanaged_frames" : [ +{ +"is_managed" : "false", +"native_address" : "0x462e99", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x64d4ca", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x64eca0", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x657d77", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x4ba6e5", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f9733c0", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f971618", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f971743", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x6b63df", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x6576a3", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f967609", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f541103", +"native_offset" : "0x00000" +} + +] +}, +{ +"is_managed" : true, +"offset_free_hash" : "0xd5ed0e7ac", +"offset_rich_hash" : "0xd5ed0eccf", +"crashed" : false, +"native_thread_id" : "0x7f5b8c588700", +"thread_info_addr" : "0x7f5b78000b60", +"thread_name" : "Thread Pool Wor", +"ctx" : { +"IP" : "0x7f5c7f97236c", +"SP" : "0x7f5b8c587350", +"BP" : "0xc" +}, +"managed_frames" : [ +{ +"is_managed" : "false", +"native_address" : "unregistered" +} +, +{ +"is_managed" : "true", +"guid" : "4E15BBAE-9D70-43D8-AFD6-CFD50BD9BD5A", +"token" : "0x00000", +"native_offset" : "0x0", +"filename" : "System.dll", +"sizeofimage" : "0x286000", +"timestamp" : "0x94933251", +"il_offset" : "0x00000" +} +, +{ +"is_managed" : "true", +"guid" : "4E15BBAE-9D70-43D8-AFD6-CFD50BD9BD5A", +"token" : "0x6003e13", +"native_offset" : "0x0", +"filename" : "System.dll", +"sizeofimage" : "0x286000", +"timestamp" : "0x94933251", +"il_offset" : "0x00012" +} +, +{ +"is_managed" : "true", +"guid" : "4E15BBAE-9D70-43D8-AFD6-CFD50BD9BD5A", +"token" : "0x60041b8", +"native_offset" : "0x0", +"filename" : "System.dll", +"sizeofimage" : "0x286000", +"timestamp" : "0x94933251", +"il_offset" : "0x00027" +} +, +{ +"is_managed" : "true", +"guid" : "4E15BBAE-9D70-43D8-AFD6-CFD50BD9BD5A", +"token" : "0x60041b7", +"native_offset" : "0x0", +"filename" : "System.dll", +"sizeofimage" : "0x286000", +"timestamp" : "0x94933251", +"il_offset" : "0x002dc" +} +, +{ +"is_managed" : "true", +"guid" : "4E15BBAE-9D70-43D8-AFD6-CFD50BD9BD5A", +"token" : "0x60043ad", +"native_offset" : "0x0", +"filename" : "System.dll", +"sizeofimage" : "0x286000", +"timestamp" : "0x94933251", +"il_offset" : "0x00000" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x6002392", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x00025" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x600238e", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x00000" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x6002391", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x00000" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x6001ebe", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x00071" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x6001ebc", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x00000" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x60023fa", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x00034" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x6002390", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x0004a" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x6002506", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x00000" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x6001f16", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x00025" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x6001ebe", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x00071" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x6001ebc", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x00000" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x6001ebb", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x0002b" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x6001f17", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x0000f" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x00000", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x0002a" +} + +], +"unmanaged_frames" : [ +{ +"is_managed" : "false", +"native_address" : "0x462e99", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x64d4ca", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x64eca0", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x657d77", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x4ba6e5", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f9733c0", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f97236c", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7c24bc0b", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7c24a81e", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "true", +"guid" : "4E15BBAE-9D70-43D8-AFD6-CFD50BD9BD5A", +"token" : "0x00000", +"native_offset" : "0x0", +"filename" : "System.dll", +"sizeofimage" : "0x286000", +"timestamp" : "0x94933251", +"il_offset" : "0x00000" +} + +] +}, +{ +"is_managed" : true, +"offset_free_hash" : "0xd5ed0e7ac", +"offset_rich_hash" : "0xd5ed0eccf", +"crashed" : false, +"native_thread_id" : "0x7f5b759ec700", +"thread_info_addr" : "0x7f5b20000b60", +"thread_name" : "Thread Pool Wor", +"ctx" : { +"IP" : "0x7f5c7f97236c", +"SP" : "0x7f5b759eb350", +"BP" : "0x26" +}, +"managed_frames" : [ +{ +"is_managed" : "false", +"native_address" : "unregistered" +} +, +{ +"is_managed" : "true", +"guid" : "4E15BBAE-9D70-43D8-AFD6-CFD50BD9BD5A", +"token" : "0x00000", +"native_offset" : "0x0", +"filename" : "System.dll", +"sizeofimage" : "0x286000", +"timestamp" : "0x94933251", +"il_offset" : "0x00000" +} +, +{ +"is_managed" : "true", +"guid" : "4E15BBAE-9D70-43D8-AFD6-CFD50BD9BD5A", +"token" : "0x6003e13", +"native_offset" : "0x0", +"filename" : "System.dll", +"sizeofimage" : "0x286000", +"timestamp" : "0x94933251", +"il_offset" : "0x00012" +} +, +{ +"is_managed" : "true", +"guid" : "4E15BBAE-9D70-43D8-AFD6-CFD50BD9BD5A", +"token" : "0x60041b8", +"native_offset" : "0x0", +"filename" : "System.dll", +"sizeofimage" : "0x286000", +"timestamp" : "0x94933251", +"il_offset" : "0x00027" +} +, +{ +"is_managed" : "true", +"guid" : "4E15BBAE-9D70-43D8-AFD6-CFD50BD9BD5A", +"token" : "0x60041b7", +"native_offset" : "0x0", +"filename" : "System.dll", +"sizeofimage" : "0x286000", +"timestamp" : "0x94933251", +"il_offset" : "0x002dc" +} +, +{ +"is_managed" : "true", +"guid" : "4E15BBAE-9D70-43D8-AFD6-CFD50BD9BD5A", +"token" : "0x60043ad", +"native_offset" : "0x0", +"filename" : "System.dll", +"sizeofimage" : "0x286000", +"timestamp" : "0x94933251", +"il_offset" : "0x00000" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x6002392", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x00025" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x600238e", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x00000" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x6002391", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x00000" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x6001ebe", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x00071" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x6001ebc", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x00000" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x60023fa", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x00034" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x6002390", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x0004a" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x6002506", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x00000" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x6001f16", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x00025" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x6001ebe", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x00071" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x6001ebc", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x00000" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x6001ebb", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x0002b" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x6001f17", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x0000f" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x00000", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x0002a" +} + +], +"unmanaged_frames" : [ +{ +"is_managed" : "false", +"native_address" : "0x462e99", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x64d4ca", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x64eca0", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x657d77", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x4ba6e5", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f9733c0", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f97236c", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7c24bc0b", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7c24a81e", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "true", +"guid" : "4E15BBAE-9D70-43D8-AFD6-CFD50BD9BD5A", +"token" : "0x00000", +"native_offset" : "0x0", +"filename" : "System.dll", +"sizeofimage" : "0x286000", +"timestamp" : "0x94933251", +"il_offset" : "0x00000" +} + +] +}, +{ +"is_managed" : false, +"offset_free_hash" : "0x0", +"offset_rich_hash" : "0x0", +"crashed" : false, +"native_thread_id" : "0x7f5ac1cae700", +"thread_info_addr" : "0x7f5ab4002870", +"thread_name" : "Thread Pool Wor", +"ctx" : { +"IP" : "0x7f5c7f971618", +"SP" : "0x7f5ac1cadcb0", +"BP" : "0xa92d48" +}, +"unmanaged_frames" : [ +{ +"is_managed" : "false", +"native_address" : "0x462e99", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x64d4ca", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x64eca0", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x657d77", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x4ba6e5", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f9733c0", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f971618", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f971743", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x6b63df", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x6576a3", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f967609", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f541103", +"native_offset" : "0x00000" +} + +] +}, +{ +"is_managed" : true, +"offset_free_hash" : "0x90c3917a0", +"offset_rich_hash" : "0x90c391a98", +"crashed" : false, +"native_thread_id" : "0x7f5c779fc700", +"thread_info_addr" : "0x7f5c60000b60", +"thread_name" : "Thread Pool Wor", +"ctx" : { +"IP" : "0x7f5c7f96e7b1", +"SP" : "0x7f5c779faca0", +"BP" : "0xa91fa0" +}, +"managed_frames" : [ +{ +"is_managed" : "false", +"native_address" : "unregistered" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x00000", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x00000" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x600204b", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x000c7" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x600203d", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x000a1" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x600203e", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x0002c" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x60020d4", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x0002d" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x6001fe3", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x00007" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x6001ebe", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x00071" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x6001ebc", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x00000" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x6001fe1", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x00021" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x6001fc9", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x00074" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x6001fde", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x00000" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x00000", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x0002a" +} + +], +"unmanaged_frames" : [ +{ +"is_managed" : "false", +"native_address" : "0x462e99", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x64d4ca", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x64eca0", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x657d77", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x4ba6e5", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f9733c0", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f96e7b1", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x70ca6b", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x66f23c", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x671709", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x654c1b", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x5ed9b3", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x00000", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x00000" +} + +] +}, +{ +"is_managed" : true, +"offset_free_hash" : "0xd5ed0e7ac", +"offset_rich_hash" : "0xd5ed0eccf", +"crashed" : false, +"native_thread_id" : "0x7f5b779fc700", +"thread_info_addr" : "0x7f5b60000b60", +"thread_name" : "Thread Pool Wor", +"ctx" : { +"IP" : "0x7f5c7f97236c", +"SP" : "0x7f5b779fb350", +"BP" : "0x11" +}, +"managed_frames" : [ +{ +"is_managed" : "false", +"native_address" : "unregistered" +} +, +{ +"is_managed" : "true", +"guid" : "4E15BBAE-9D70-43D8-AFD6-CFD50BD9BD5A", +"token" : "0x00000", +"native_offset" : "0x0", +"filename" : "System.dll", +"sizeofimage" : "0x286000", +"timestamp" : "0x94933251", +"il_offset" : "0x00000" +} +, +{ +"is_managed" : "true", +"guid" : "4E15BBAE-9D70-43D8-AFD6-CFD50BD9BD5A", +"token" : "0x6003e13", +"native_offset" : "0x0", +"filename" : "System.dll", +"sizeofimage" : "0x286000", +"timestamp" : "0x94933251", +"il_offset" : "0x00012" +} +, +{ +"is_managed" : "true", +"guid" : "4E15BBAE-9D70-43D8-AFD6-CFD50BD9BD5A", +"token" : "0x60041b8", +"native_offset" : "0x0", +"filename" : "System.dll", +"sizeofimage" : "0x286000", +"timestamp" : "0x94933251", +"il_offset" : "0x00027" +} +, +{ +"is_managed" : "true", +"guid" : "4E15BBAE-9D70-43D8-AFD6-CFD50BD9BD5A", +"token" : "0x60041b7", +"native_offset" : "0x0", +"filename" : "System.dll", +"sizeofimage" : "0x286000", +"timestamp" : "0x94933251", +"il_offset" : "0x002dc" +} +, +{ +"is_managed" : "true", +"guid" : "4E15BBAE-9D70-43D8-AFD6-CFD50BD9BD5A", +"token" : "0x60043ad", +"native_offset" : "0x0", +"filename" : "System.dll", +"sizeofimage" : "0x286000", +"timestamp" : "0x94933251", +"il_offset" : "0x00000" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x6002392", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x00025" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x600238e", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x00000" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x6002391", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x00000" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x6001ebe", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x00071" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x6001ebc", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x00000" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x60023fa", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x00034" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x6002390", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x0004a" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x6002506", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x00000" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x6001f16", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x00025" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x6001ebe", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x00071" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x6001ebc", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x00000" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x6001ebb", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x0002b" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x6001f17", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x0000f" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x00000", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x0002a" +} + +], +"unmanaged_frames" : [ +{ +"is_managed" : "false", +"native_address" : "0x462e99", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x64d4ca", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x64eca0", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x657d77", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x4ba6e5", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f9733c0", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f97236c", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7c24bc0b", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7c24a81e", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "true", +"guid" : "4E15BBAE-9D70-43D8-AFD6-CFD50BD9BD5A", +"token" : "0x00000", +"native_offset" : "0x0", +"filename" : "System.dll", +"sizeofimage" : "0x286000", +"timestamp" : "0x94933251", +"il_offset" : "0x00000" +} + +] +}, +{ +"is_managed" : false, +"offset_free_hash" : "0x0", +"offset_rich_hash" : "0x0", +"crashed" : false, +"native_thread_id" : "0x7f5bf1be7700", +"thread_info_addr" : "0x7f5be4000b60", +"thread_name" : "Thread Pool Wor", +"ctx" : { +"IP" : "0x7f5c7f971618", +"SP" : "0x7f5bf1be6cb0", +"BP" : "0xa92d48" +}, +"unmanaged_frames" : [ +{ +"is_managed" : "false", +"native_address" : "0x462e99", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x64d4ca", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x64eca0", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x657d77", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x4ba6e5", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f9733c0", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f971618", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f971743", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x6b63df", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x6576a3", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f967609", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f541103", +"native_offset" : "0x00000" +} + +] +}, +{ +"is_managed" : false, +"offset_free_hash" : "0x0", +"offset_rich_hash" : "0x0", +"crashed" : false, +"native_thread_id" : "0x7f5bba440700", +"thread_info_addr" : "0x7f5ba0000b60", +"thread_name" : "Thread Pool Wor", +"ctx" : { +"IP" : "0x7f5c7f971618", +"SP" : "0x7f5bba43fcb0", +"BP" : "0xa92d48" +}, +"unmanaged_frames" : [ +{ +"is_managed" : "false", +"native_address" : "0x462e99", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x64d4ca", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x64eca0", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x657d77", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x4ba6e5", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f9733c0", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f971618", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f971743", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x6b63df", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x6576a3", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f967609", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f541103", +"native_offset" : "0x00000" +} + +] +}, +{ +"is_managed" : false, +"offset_free_hash" : "0x0", +"offset_rich_hash" : "0x0", +"crashed" : false, +"native_thread_id" : "0x7f5ac2df7700", +"thread_info_addr" : "0x7f5abc000b60", +"thread_name" : "Thread Pool Wor", +"ctx" : { +"IP" : "0x7f5c7f971618", +"SP" : "0x7f5ac2df6cb0", +"BP" : "0xa92d48" +}, +"unmanaged_frames" : [ +{ +"is_managed" : "false", +"native_address" : "0x462e99", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x64d4ca", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x64eca0", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x657d77", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x4ba6e5", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f9733c0", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f971618", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f971743", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x6b63df", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x6576a3", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f967609", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f541103", +"native_offset" : "0x00000" +} + +] +}, +{ +"is_managed" : true, +"offset_free_hash" : "0x2374905179", +"offset_rich_hash" : "0x2374906e7a", +"crashed" : true, +"native_thread_id" : "0x7f5c5549b700", +"thread_info_addr" : "0x7f5c18000b60", +"thread_name" : "RequestBuilder ", +"ctx" : { +"IP" : "0x7f5c7f5a6efd", +"SP" : "0x7f5c55497388", +"BP" : "0x7f5c083490d0" +}, +"managed_frames" : [ +{ +"is_managed" : "false", +"native_address" : "unregistered" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x00000", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x00000" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x6004b8e", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x00010" +} +, +{ +"is_managed" : "true", +"guid" : "C7C3266B-978E-4FFA-A232-563707C9B595", +"token" : "0x60001b7", +"native_offset" : "0x0", +"filename" : "Microsoft.Build.Tasks.Core.dll", +"sizeofimage" : "0x14a000", +"timestamp" : "0x923d8cb2", +"il_offset" : "0x0004d" +} +, +{ +"is_managed" : "true", +"guid" : "C7C3266B-978E-4FFA-A232-563707C9B595", +"token" : "0x6001200", +"native_offset" : "0x0", +"filename" : "Microsoft.Build.Tasks.Core.dll", +"sizeofimage" : "0x14a000", +"timestamp" : "0x923d8cb2", +"il_offset" : "0x00006" +} +, +{ +"is_managed" : "true", +"guid" : "C7C3266B-978E-4FFA-A232-563707C9B595", +"token" : "0x600154b", +"native_offset" : "0x0", +"filename" : "Microsoft.Build.Tasks.Core.dll", +"sizeofimage" : "0x14a000", +"timestamp" : "0x923d8cb2", +"il_offset" : "0x00000" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x6006521", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x00034" +} +, +{ +"is_managed" : "true", +"guid" : "C7C3266B-978E-4FFA-A232-563707C9B595", +"token" : "0x60001bc", +"native_offset" : "0x0", +"filename" : "Microsoft.Build.Tasks.Core.dll", +"sizeofimage" : "0x14a000", +"timestamp" : "0x923d8cb2", +"il_offset" : "0x00006" +} +, +{ +"is_managed" : "true", +"guid" : "C7C3266B-978E-4FFA-A232-563707C9B595", +"token" : "0x00000", +"native_offset" : "0x0", +"filename" : "Microsoft.Build.Tasks.Core.dll", +"sizeofimage" : "0x14a000", +"timestamp" : "0x923d8cb2", +"il_offset" : "0x0005c" +} +, +{ +"is_managed" : "true", +"guid" : "C7C3266B-978E-4FFA-A232-563707C9B595", +"token" : "0x6000a2d", +"native_offset" : "0x0", +"filename" : "Microsoft.Build.Tasks.Core.dll", +"sizeofimage" : "0x14a000", +"timestamp" : "0x923d8cb2", +"il_offset" : "0x00010" +} +, +{ +"is_managed" : "true", +"guid" : "C7C3266B-978E-4FFA-A232-563707C9B595", +"token" : "0x600027c", +"native_offset" : "0x0", +"filename" : "Microsoft.Build.Tasks.Core.dll", +"sizeofimage" : "0x14a000", +"timestamp" : "0x923d8cb2", +"il_offset" : "0x00023" +} +, +{ +"is_managed" : "true", +"guid" : "C7C3266B-978E-4FFA-A232-563707C9B595", +"token" : "0x600027e", +"native_offset" : "0x0", +"filename" : "Microsoft.Build.Tasks.Core.dll", +"sizeofimage" : "0x14a000", +"timestamp" : "0x923d8cb2", +"il_offset" : "0x0003a" +} +, +{ +"is_managed" : "true", +"guid" : "C7C3266B-978E-4FFA-A232-563707C9B595", +"token" : "0x600028a", +"native_offset" : "0x0", +"filename" : "Microsoft.Build.Tasks.Core.dll", +"sizeofimage" : "0x14a000", +"timestamp" : "0x923d8cb2", +"il_offset" : "0x000ea" +} +, +{ +"is_managed" : "true", +"guid" : "C7C3266B-978E-4FFA-A232-563707C9B595", +"token" : "0x6000289", +"native_offset" : "0x0", +"filename" : "Microsoft.Build.Tasks.Core.dll", +"sizeofimage" : "0x14a000", +"timestamp" : "0x923d8cb2", +"il_offset" : "0x0000a" +} +, +{ +"is_managed" : "true", +"guid" : "C7C3266B-978E-4FFA-A232-563707C9B595", +"token" : "0x6000288", +"native_offset" : "0x0", +"filename" : "Microsoft.Build.Tasks.Core.dll", +"sizeofimage" : "0x14a000", +"timestamp" : "0x923d8cb2", +"il_offset" : "0x00038" +} +, +{ +"is_managed" : "true", +"guid" : "C7C3266B-978E-4FFA-A232-563707C9B595", +"token" : "0x600032a", +"native_offset" : "0x0", +"filename" : "Microsoft.Build.Tasks.Core.dll", +"sizeofimage" : "0x14a000", +"timestamp" : "0x923d8cb2", +"il_offset" : "0x00515" +} +, +{ +"is_managed" : "true", +"guid" : "C7C3266B-978E-4FFA-A232-563707C9B595", +"token" : "0x600033b", +"native_offset" : "0x0", +"filename" : "Microsoft.Build.Tasks.Core.dll", +"sizeofimage" : "0x14a000", +"timestamp" : "0x923d8cb2", +"il_offset" : "0x00000" +} +, +{ +"is_managed" : "true", +"guid" : "4322D44F-99C8-4AAB-9075-EFD37869F964", +"token" : "0x600156c", +"native_offset" : "0x0", +"filename" : "Microsoft.Build.dll", +"sizeofimage" : "0x1da000", +"timestamp" : "0xecf1af40", +"il_offset" : "0x00029" +} +, +{ +"is_managed" : "true", +"guid" : "4322D44F-99C8-4AAB-9075-EFD37869F964", +"token" : "0x600235e", +"native_offset" : "0x0", +"filename" : "Microsoft.Build.dll", +"sizeofimage" : "0x1da000", +"timestamp" : "0xecf1af40", +"il_offset" : "0x002fc" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x6004612", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x0002c" +} +, +{ +"is_managed" : "true", +"guid" : "4322D44F-99C8-4AAB-9075-EFD37869F964", +"token" : "0x600140b", +"native_offset" : "0x0", +"filename" : "Microsoft.Build.dll", +"sizeofimage" : "0x1da000", +"timestamp" : "0xecf1af40", +"il_offset" : "0x00046" +} +, +{ +"is_managed" : "true", +"guid" : "4322D44F-99C8-4AAB-9075-EFD37869F964", +"token" : "0x6002359", +"native_offset" : "0x0", +"filename" : "Microsoft.Build.dll", +"sizeofimage" : "0x1da000", +"timestamp" : "0xecf1af40", +"il_offset" : "0x00065" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x6004612", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x0002c" +} +, +{ +"is_managed" : "true", +"guid" : "4322D44F-99C8-4AAB-9075-EFD37869F964", +"token" : "0x6001409", +"native_offset" : "0x0", +"filename" : "Microsoft.Build.dll", +"sizeofimage" : "0x1da000", +"timestamp" : "0xecf1af40", +"il_offset" : "0x00046" +} +, +{ +"is_managed" : "true", +"guid" : "4322D44F-99C8-4AAB-9075-EFD37869F964", +"token" : "0x6002355", +"native_offset" : "0x0", +"filename" : "Microsoft.Build.dll", +"sizeofimage" : "0x1da000", +"timestamp" : "0xecf1af40", +"il_offset" : "0x001f5" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x6004612", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x0002c" +} +, +{ +"is_managed" : "true", +"guid" : "4322D44F-99C8-4AAB-9075-EFD37869F964", +"token" : "0x6001404", +"native_offset" : "0x0", +"filename" : "Microsoft.Build.dll", +"sizeofimage" : "0x1da000", +"timestamp" : "0xecf1af40", +"il_offset" : "0x0003d" +} +, +{ +"is_managed" : "true", +"guid" : "4322D44F-99C8-4AAB-9075-EFD37869F964", +"token" : "0x6002353", +"native_offset" : "0x0", +"filename" : "Microsoft.Build.dll", +"sizeofimage" : "0x1da000", +"timestamp" : "0xecf1af40", +"il_offset" : "0x0015c" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x6004612", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x0002c" +} +, +{ +"is_managed" : "true", +"guid" : "4322D44F-99C8-4AAB-9075-EFD37869F964", +"token" : "0x6001403", +"native_offset" : "0x0", +"filename" : "Microsoft.Build.dll", +"sizeofimage" : "0x1da000", +"timestamp" : "0xecf1af40", +"il_offset" : "0x0002c" +} +, +{ +"is_managed" : "true", +"guid" : "4322D44F-99C8-4AAB-9075-EFD37869F964", +"token" : "0x6002351", +"native_offset" : "0x0", +"filename" : "Microsoft.Build.dll", +"sizeofimage" : "0x1da000", +"timestamp" : "0xecf1af40", +"il_offset" : "0x00187" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x6004612", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x0002c" +} +, +{ +"is_managed" : "true", +"guid" : "4322D44F-99C8-4AAB-9075-EFD37869F964", +"token" : "0x60013fe", +"native_offset" : "0x0", +"filename" : "Microsoft.Build.dll", +"sizeofimage" : "0x1da000", +"timestamp" : "0xecf1af40", +"il_offset" : "0x00061" +} +, +{ +"is_managed" : "true", +"guid" : "4322D44F-99C8-4AAB-9075-EFD37869F964", +"token" : "0x600234f", +"native_offset" : "0x0", +"filename" : "Microsoft.Build.dll", +"sizeofimage" : "0x1da000", +"timestamp" : "0xecf1af40", +"il_offset" : "0x0005f" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x6004612", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x0002c" +} +, +{ +"is_managed" : "true", +"guid" : "4322D44F-99C8-4AAB-9075-EFD37869F964", +"token" : "0x60013d8", +"native_offset" : "0x0", +"filename" : "Microsoft.Build.dll", +"sizeofimage" : "0x1da000", +"timestamp" : "0xecf1af40", +"il_offset" : "0x00046" +} +, +{ +"is_managed" : "true", +"guid" : "4322D44F-99C8-4AAB-9075-EFD37869F964", +"token" : "0x600234d", +"native_offset" : "0x0", +"filename" : "Microsoft.Build.dll", +"sizeofimage" : "0x1da000", +"timestamp" : "0xecf1af40", +"il_offset" : "0x002b6" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x6004607", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x0002c" +} +, +{ +"is_managed" : "true", +"guid" : "4322D44F-99C8-4AAB-9075-EFD37869F964", +"token" : "0x60013d1", +"native_offset" : "0x0", +"filename" : "Microsoft.Build.dll", +"sizeofimage" : "0x1da000", +"timestamp" : "0xecf1af40", +"il_offset" : "0x0003d" +} +, +{ +"is_managed" : "true", +"guid" : "4322D44F-99C8-4AAB-9075-EFD37869F964", +"token" : "0x6002347", +"native_offset" : "0x0", +"filename" : "Microsoft.Build.dll", +"sizeofimage" : "0x1da000", +"timestamp" : "0xecf1af40", +"il_offset" : "0x0041d" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x600462c", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x00000" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x6001ebe", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x00071" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x6001ebc", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x00000" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x600462b", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x00024" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x600244b", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x00000" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x6002392", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x00025" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x600238e", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x00000" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x6002391", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x00000" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x6001ebe", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x00071" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x6001ebc", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x00000" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x60023fa", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x00034" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x6002390", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x0004a" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x60024db", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x00014" +} +, +{ +"is_managed" : "true", +"guid" : "4322D44F-99C8-4AAB-9075-EFD37869F964", +"token" : "0x6002330", +"native_offset" : "0x0", +"filename" : "Microsoft.Build.dll", +"sizeofimage" : "0x1da000", +"timestamp" : "0xecf1af40", +"il_offset" : "0x0001a" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x6001f16", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x00014" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x6001ebe", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x00071" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x6001ebc", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x00000" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x6001ebb", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x0002b" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x6001f18", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x00008" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x00000", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x0002a" +} + +], +"unmanaged_frames" : [ +{ +"is_managed" : "false", +"native_address" : "0x462e99", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x64d4ca", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x64eca0", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x657f85", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x4bb3dc", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x4bb5c9", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x4651ed", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x4b40a6", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f5a6efd", +"native_offset" : "0x00000" +} + +] +}, +{ +"is_managed" : false, +"offset_free_hash" : "0x0", +"offset_rich_hash" : "0x0", +"crashed" : false, +"native_thread_id" : "0x7f5aa7363700", +"thread_info_addr" : "0x7f5b64002870", +"thread_name" : "Thread Pool Wor", +"ctx" : { +"IP" : "0x7f5c7f971618", +"SP" : "0x7f5aa7362cb0", +"BP" : "0xa92d48" +}, +"unmanaged_frames" : [ +{ +"is_managed" : "false", +"native_address" : "0x462e99", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x64d4ca", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x64eca0", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x657d77", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x4ba6e5", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f9733c0", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f971618", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f971743", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x6b63df", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x6576a3", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f967609", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f541103", +"native_offset" : "0x00000" +} + +] +}, +{ +"is_managed" : false, +"offset_free_hash" : "0x0", +"offset_rich_hash" : "0x0", +"crashed" : false, +"native_thread_id" : "0x7f5afae22700", +"thread_info_addr" : "0x7f5af0000b60", +"thread_name" : "Thread Pool Wor", +"ctx" : { +"IP" : "0x7f5c7f971618", +"SP" : "0x7f5afae21cb0", +"BP" : "0xa92d48" +}, +"unmanaged_frames" : [ +{ +"is_managed" : "false", +"native_address" : "0x462e99", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x64d4ca", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x64eca0", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x657d77", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x4ba6e5", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f9733c0", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f971618", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f971743", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x6b63df", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x6576a3", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f967609", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f541103", +"native_offset" : "0x00000" +} + +] +}, +{ +"is_managed" : false, +"offset_free_hash" : "0x0", +"offset_rich_hash" : "0x0", +"crashed" : false, +"native_thread_id" : "0x7f5acb376700", +"thread_info_addr" : "0x7f5aec01e3c0", +"thread_name" : "Thread Pool Wor", +"ctx" : { +"IP" : "0x7f5c7f971618", +"SP" : "0x7f5acb375cb0", +"BP" : "0xa92d48" +}, +"unmanaged_frames" : [ +{ +"is_managed" : "false", +"native_address" : "0x462e99", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x64d4ca", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x64eca0", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x657d77", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x4ba6e5", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f9733c0", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f971618", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f971743", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x6b63df", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x6576a3", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f967609", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f541103", +"native_offset" : "0x00000" +} + +] +}, +{ +"is_managed" : true, +"offset_free_hash" : "0xd5ed0e7ac", +"offset_rich_hash" : "0xd5ed0eccf", +"crashed" : false, +"native_thread_id" : "0x7f5b767f3700", +"thread_info_addr" : "0x7f5b44000b60", +"thread_name" : "Thread Pool Wor", +"ctx" : { +"IP" : "0x7f5c7f97236c", +"SP" : "0x7f5b767f2350", +"BP" : "0x1c" +}, +"managed_frames" : [ +{ +"is_managed" : "false", +"native_address" : "unregistered" +} +, +{ +"is_managed" : "true", +"guid" : "4E15BBAE-9D70-43D8-AFD6-CFD50BD9BD5A", +"token" : "0x00000", +"native_offset" : "0x0", +"filename" : "System.dll", +"sizeofimage" : "0x286000", +"timestamp" : "0x94933251", +"il_offset" : "0x00000" +} +, +{ +"is_managed" : "true", +"guid" : "4E15BBAE-9D70-43D8-AFD6-CFD50BD9BD5A", +"token" : "0x6003e13", +"native_offset" : "0x0", +"filename" : "System.dll", +"sizeofimage" : "0x286000", +"timestamp" : "0x94933251", +"il_offset" : "0x00012" +} +, +{ +"is_managed" : "true", +"guid" : "4E15BBAE-9D70-43D8-AFD6-CFD50BD9BD5A", +"token" : "0x60041b8", +"native_offset" : "0x0", +"filename" : "System.dll", +"sizeofimage" : "0x286000", +"timestamp" : "0x94933251", +"il_offset" : "0x00027" +} +, +{ +"is_managed" : "true", +"guid" : "4E15BBAE-9D70-43D8-AFD6-CFD50BD9BD5A", +"token" : "0x60041b7", +"native_offset" : "0x0", +"filename" : "System.dll", +"sizeofimage" : "0x286000", +"timestamp" : "0x94933251", +"il_offset" : "0x002dc" +} +, +{ +"is_managed" : "true", +"guid" : "4E15BBAE-9D70-43D8-AFD6-CFD50BD9BD5A", +"token" : "0x60043ad", +"native_offset" : "0x0", +"filename" : "System.dll", +"sizeofimage" : "0x286000", +"timestamp" : "0x94933251", +"il_offset" : "0x00000" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x6002392", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x00025" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x600238e", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x00000" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x6002391", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x00000" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x6001ebe", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x00071" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x6001ebc", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x00000" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x60023fa", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x00034" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x6002390", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x0004a" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x6002506", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x00000" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x6001f16", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x00025" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x6001ebe", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x00071" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x6001ebc", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x00000" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x6001ebb", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x0002b" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x6001f17", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x0000f" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x00000", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x0002a" +} + +], +"unmanaged_frames" : [ +{ +"is_managed" : "false", +"native_address" : "0x462e99", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x64d4ca", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x64eca0", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x657d77", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x4ba6e5", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f9733c0", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f97236c", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7c24bc0b", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7c24a81e", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "true", +"guid" : "4E15BBAE-9D70-43D8-AFD6-CFD50BD9BD5A", +"token" : "0x00000", +"native_offset" : "0x0", +"filename" : "System.dll", +"sizeofimage" : "0x286000", +"timestamp" : "0x94933251", +"il_offset" : "0x00000" +} + +] +}, +{ +"is_managed" : false, +"offset_free_hash" : "0x0", +"offset_rich_hash" : "0x0", +"crashed" : false, +"native_thread_id" : "0x7f5acab66700", +"thread_info_addr" : "0x7f5b0417f2c0", +"thread_name" : "Thread Pool Wor", +"ctx" : { +"IP" : "0x7f5c7f971618", +"SP" : "0x7f5acab65cb0", +"BP" : "0xa92d48" +}, +"unmanaged_frames" : [ +{ +"is_managed" : "false", +"native_address" : "0x462e99", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x64d4ca", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x64eca0", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x657d77", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x4ba6e5", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f9733c0", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f971618", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f971743", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x6b63df", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x6576a3", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f967609", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f541103", +"native_offset" : "0x00000" +} + +] +}, +{ +"is_managed" : false, +"offset_free_hash" : "0x0", +"offset_rich_hash" : "0x0", +"crashed" : false, +"native_thread_id" : "0x7f5aa0bb9700", +"thread_info_addr" : "0x7f5bbc041160", +"thread_name" : "Thread Pool Wor", +"ctx" : { +"IP" : "0x7f5c7f971618", +"SP" : "0x7f5aa0bb8cb0", +"BP" : "0xa92d48" +}, +"unmanaged_frames" : [ +{ +"is_managed" : "false", +"native_address" : "0x462e99", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x64d4ca", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x64eca0", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x657d77", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x4ba6e5", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f9733c0", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f971618", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f971743", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x6b63df", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x6576a3", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f967609", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f541103", +"native_offset" : "0x00000" +} + +] +}, +{ +"is_managed" : false, +"offset_free_hash" : "0x0", +"offset_rich_hash" : "0x0", +"crashed" : false, +"native_thread_id" : "0x7f5bd1c49700", +"thread_info_addr" : "0x7f5bbc000b60", +"thread_name" : "Thread Pool Wor", +"ctx" : { +"IP" : "0x7f5c7f971618", +"SP" : "0x7f5bd1c48cb0", +"BP" : "0xa92d48" +}, +"unmanaged_frames" : [ +{ +"is_managed" : "false", +"native_address" : "0x462e99", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x64d4ca", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x64eca0", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x657d77", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x4ba6e5", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f9733c0", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f971618", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f971743", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x6b63df", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x6576a3", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f967609", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f541103", +"native_offset" : "0x00000" +} + +] +}, +{ +"is_managed" : false, +"offset_free_hash" : "0x0", +"offset_rich_hash" : "0x0", +"crashed" : false, +"native_thread_id" : "0x7f5ab2dcf700", +"thread_info_addr" : "0x7f5b18242850", +"thread_name" : "Thread Pool Wor", +"ctx" : { +"IP" : "0x7f5c7f971618", +"SP" : "0x7f5ab2dcecb0", +"BP" : "0xa92d48" +}, +"unmanaged_frames" : [ +{ +"is_managed" : "false", +"native_address" : "0x462e99", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x64d4ca", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x64eca0", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x657d77", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x4ba6e5", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f9733c0", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f971618", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f971743", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x6b63df", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x6576a3", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f967609", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f541103", +"native_offset" : "0x00000" +} + +] +}, +{ +"is_managed" : false, +"offset_free_hash" : "0x0", +"offset_rich_hash" : "0x0", +"crashed" : false, +"native_thread_id" : "0x7f5b74731700", +"thread_info_addr" : "0x7f5b14000b60", +"thread_name" : "Thread Pool Wor", +"ctx" : { +"IP" : "0x7f5c7f971618", +"SP" : "0x7f5b74730cb0", +"BP" : "0xa92d48" +}, +"unmanaged_frames" : [ +{ +"is_managed" : "false", +"native_address" : "0x462e99", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x64d4ca", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x64eca0", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x657d77", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x4ba6e5", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f9733c0", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f971618", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f971743", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x6b63df", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x6576a3", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f967609", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f541103", +"native_offset" : "0x00000" +} + +] +}, +{ +"is_managed" : false, +"offset_free_hash" : "0x0", +"offset_rich_hash" : "0x0", +"crashed" : false, +"native_thread_id" : "0x7f5aa615a700", +"thread_info_addr" : "0x7f5b885b7dd0", +"thread_name" : "Thread Pool Wor", +"ctx" : { +"IP" : "0x7f5c7f971618", +"SP" : "0x7f5aa6159cb0", +"BP" : "0xa92d48" +}, +"unmanaged_frames" : [ +{ +"is_managed" : "false", +"native_address" : "0x462e99", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x64d4ca", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x64eca0", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x657d77", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x4ba6e5", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f9733c0", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f971618", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f971743", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x6b63df", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x6576a3", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f967609", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f541103", +"native_offset" : "0x00000" +} + +] +}, +{ +"is_managed" : false, +"offset_free_hash" : "0x0", +"offset_rich_hash" : "0x0", +"crashed" : false, +"native_thread_id" : "0x7f5aa415b700", +"thread_info_addr" : "0x7f5bb40a4720", +"thread_name" : "Thread Pool Wor", +"ctx" : { +"IP" : "0x7f5c7f971618", +"SP" : "0x7f5aa415acb0", +"BP" : "0xa92d48" +}, +"unmanaged_frames" : [ +{ +"is_managed" : "false", +"native_address" : "0x462e99", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x64d4ca", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x64eca0", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x657d77", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x4ba6e5", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f9733c0", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f971618", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f971743", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x6b63df", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x6576a3", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f967609", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f541103", +"native_offset" : "0x00000" +} + +] +}, +{ +"is_managed" : false, +"offset_free_hash" : "0x0", +"offset_rich_hash" : "0x0", +"crashed" : false, +"native_thread_id" : "0x7f5ab26c6700", +"thread_info_addr" : "0x7f5b38002870", +"thread_name" : "Thread Pool Wor", +"ctx" : { +"IP" : "0x7f5c7f971618", +"SP" : "0x7f5ab26c5cb0", +"BP" : "0xa92d48" +}, +"unmanaged_frames" : [ +{ +"is_managed" : "false", +"native_address" : "0x462e99", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x64d4ca", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x64eca0", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x657d77", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x4ba6e5", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f9733c0", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f971618", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f971743", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x6b63df", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x6576a3", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f967609", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f541103", +"native_offset" : "0x00000" +} + +] +}, +{ +"is_managed" : false, +"offset_free_hash" : "0x0", +"offset_rich_hash" : "0x0", +"crashed" : false, +"native_thread_id" : "0x7f5c55eab700", +"thread_info_addr" : "0x7f5c28000b60", +"thread_name" : "Thread Pool Wor", +"ctx" : { +"IP" : "0x7f5c7f971618", +"SP" : "0x7f5c55eaacb0", +"BP" : "0xa92d48" +}, +"unmanaged_frames" : [ +{ +"is_managed" : "false", +"native_address" : "0x462e99", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x64d4ca", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x64eca0", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x657d77", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x4ba6e5", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f9733c0", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f971618", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f971743", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x6b63df", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x6576a3", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f967609", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f541103", +"native_offset" : "0x00000" +} + +] +}, +{ +"is_managed" : false, +"offset_free_hash" : "0x0", +"offset_rich_hash" : "0x0", +"crashed" : false, +"native_thread_id" : "0x7f5ac18ac700", +"thread_info_addr" : "0x7f5ac409f110", +"thread_name" : "Thread Pool Wor", +"ctx" : { +"IP" : "0x7f5c7f971618", +"SP" : "0x7f5ac18abcb0", +"BP" : "0xa92d48" +}, +"unmanaged_frames" : [ +{ +"is_managed" : "false", +"native_address" : "0x462e99", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x64d4ca", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x64eca0", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x657d77", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x4ba6e5", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f9733c0", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f971618", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f971743", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x6b63df", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x6576a3", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f967609", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f541103", +"native_offset" : "0x00000" +} + +] +}, +{ +"is_managed" : true, +"offset_free_hash" : "0xd5ed0e7ac", +"offset_rich_hash" : "0xd5ed0eccf", +"crashed" : false, +"native_thread_id" : "0x7f5b775fa700", +"thread_info_addr" : "0x7f5b58000b60", +"thread_name" : "Thread Pool Wor", +"ctx" : { +"IP" : "0x7f5c7f97236c", +"SP" : "0x7f5b775f9350", +"BP" : "0x13" +}, +"managed_frames" : [ +{ +"is_managed" : "false", +"native_address" : "unregistered" +} +, +{ +"is_managed" : "true", +"guid" : "4E15BBAE-9D70-43D8-AFD6-CFD50BD9BD5A", +"token" : "0x00000", +"native_offset" : "0x0", +"filename" : "System.dll", +"sizeofimage" : "0x286000", +"timestamp" : "0x94933251", +"il_offset" : "0x00000" +} +, +{ +"is_managed" : "true", +"guid" : "4E15BBAE-9D70-43D8-AFD6-CFD50BD9BD5A", +"token" : "0x6003e13", +"native_offset" : "0x0", +"filename" : "System.dll", +"sizeofimage" : "0x286000", +"timestamp" : "0x94933251", +"il_offset" : "0x00012" +} +, +{ +"is_managed" : "true", +"guid" : "4E15BBAE-9D70-43D8-AFD6-CFD50BD9BD5A", +"token" : "0x60041b8", +"native_offset" : "0x0", +"filename" : "System.dll", +"sizeofimage" : "0x286000", +"timestamp" : "0x94933251", +"il_offset" : "0x00027" +} +, +{ +"is_managed" : "true", +"guid" : "4E15BBAE-9D70-43D8-AFD6-CFD50BD9BD5A", +"token" : "0x60041b7", +"native_offset" : "0x0", +"filename" : "System.dll", +"sizeofimage" : "0x286000", +"timestamp" : "0x94933251", +"il_offset" : "0x002dc" +} +, +{ +"is_managed" : "true", +"guid" : "4E15BBAE-9D70-43D8-AFD6-CFD50BD9BD5A", +"token" : "0x60043ad", +"native_offset" : "0x0", +"filename" : "System.dll", +"sizeofimage" : "0x286000", +"timestamp" : "0x94933251", +"il_offset" : "0x00000" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x6002392", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x00025" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x600238e", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x00000" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x6002391", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x00000" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x6001ebe", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x00071" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x6001ebc", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x00000" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x60023fa", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x00034" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x6002390", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x0004a" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x6002506", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x00000" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x6001f16", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x00025" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x6001ebe", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x00071" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x6001ebc", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x00000" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x6001ebb", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x0002b" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x6001f17", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x0000f" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x00000", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x0002a" +} + +], +"unmanaged_frames" : [ +{ +"is_managed" : "false", +"native_address" : "0x462e99", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x64d4ca", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x64eca0", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x657d77", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x4ba6e5", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f9733c0", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f97236c", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7c24bc0b", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7c24a81e", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "true", +"guid" : "4E15BBAE-9D70-43D8-AFD6-CFD50BD9BD5A", +"token" : "0x00000", +"native_offset" : "0x0", +"filename" : "System.dll", +"sizeofimage" : "0x286000", +"timestamp" : "0x94933251", +"il_offset" : "0x00000" +} + +] +}, +{ +"is_managed" : false, +"offset_free_hash" : "0x0", +"offset_rich_hash" : "0x0", +"crashed" : false, +"native_thread_id" : "0x7f5bba03e700", +"thread_info_addr" : "0x7f5b98000b60", +"thread_name" : "Thread Pool Wor", +"ctx" : { +"IP" : "0x7f5c7f971618", +"SP" : "0x7f5bba03dcb0", +"BP" : "0xa92d48" +}, +"unmanaged_frames" : [ +{ +"is_managed" : "false", +"native_address" : "0x462e99", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x64d4ca", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x64eca0", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x657d77", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x4ba6e5", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f9733c0", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f971618", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f971743", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x6b63df", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x6576a3", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f967609", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f541103", +"native_offset" : "0x00000" +} + +] +}, +{ +"is_managed" : false, +"offset_free_hash" : "0x0", +"offset_rich_hash" : "0x0", +"crashed" : false, +"native_thread_id" : "0x7f5c137df700", +"thread_info_addr" : "0x7f5c0c000b60", +"thread_name" : "Thread Pool Wor", +"ctx" : { +"IP" : "0x7f5c7f971618", +"SP" : "0x7f5c137decb0", +"BP" : "0xa92d48" +}, +"unmanaged_frames" : [ +{ +"is_managed" : "false", +"native_address" : "0x462e99", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x64d4ca", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x64eca0", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x657d77", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x4ba6e5", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f9733c0", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f971618", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f971743", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x6b63df", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x6576a3", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f967609", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f541103", +"native_offset" : "0x00000" +} + +] +}, +{ +"is_managed" : false, +"offset_free_hash" : "0x0", +"offset_rich_hash" : "0x0", +"crashed" : false, +"native_thread_id" : "0x7f5abbe73700", +"thread_info_addr" : "0x7f5ad4073720", +"thread_name" : "Thread Pool Wor", +"ctx" : { +"IP" : "0x7f5c7f971618", +"SP" : "0x7f5abbe72cb0", +"BP" : "0xa92d48" +}, +"unmanaged_frames" : [ +{ +"is_managed" : "false", +"native_address" : "0x462e99", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x64d4ca", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x64eca0", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x657d77", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x4ba6e5", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f9733c0", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f971618", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f971743", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x6b63df", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x6576a3", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f967609", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f541103", +"native_offset" : "0x00000" +} + +] +}, +{ +"is_managed" : false, +"offset_free_hash" : "0x0", +"offset_rich_hash" : "0x0", +"crashed" : false, +"native_thread_id" : "0x7f5aa6f61700", +"thread_info_addr" : "0x7f5b6c002870", +"thread_name" : "Thread Pool Wor", +"ctx" : { +"IP" : "0x7f5c7f971618", +"SP" : "0x7f5aa6f60cb0", +"BP" : "0xa92d48" +}, +"unmanaged_frames" : [ +{ +"is_managed" : "false", +"native_address" : "0x462e99", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x64d4ca", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x64eca0", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x657d77", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x4ba6e5", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f9733c0", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f971618", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f971743", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x6b63df", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x6576a3", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f967609", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f541103", +"native_offset" : "0x00000" +} + +] +}, +{ +"is_managed" : false, +"offset_free_hash" : "0x0", +"offset_rich_hash" : "0x0", +"crashed" : false, +"native_thread_id" : "0x7f5c123b7700", +"thread_info_addr" : "0x7f5bfc000b60", +"thread_name" : "Thread Pool Wor", +"ctx" : { +"IP" : "0x7f5c7f971618", +"SP" : "0x7f5c123b6cb0", +"BP" : "0xa92d48" +}, +"unmanaged_frames" : [ +{ +"is_managed" : "false", +"native_address" : "0x462e99", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x64d4ca", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x64eca0", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x657d77", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x4ba6e5", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f9733c0", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f971618", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f971743", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x6b63df", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x6576a3", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f967609", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f541103", +"native_offset" : "0x00000" +} + +] +}, +{ +"is_managed" : false, +"offset_free_hash" : "0x0", +"offset_rich_hash" : "0x0", +"crashed" : false, +"native_thread_id" : "0x7f5afaa20700", +"thread_info_addr" : "0x7f5ae8000b60", +"thread_name" : "Thread Pool Wor", +"ctx" : { +"IP" : "0x7f5c7f971618", +"SP" : "0x7f5afaa1fcb0", +"BP" : "0xa92d48" +}, +"unmanaged_frames" : [ +{ +"is_managed" : "false", +"native_address" : "0x462e99", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x64d4ca", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x64eca0", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x657d77", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x4ba6e5", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f9733c0", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f971618", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f971743", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x6b63df", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x6576a3", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f967609", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f541103", +"native_offset" : "0x00000" +} + +] +}, +{ +"is_managed" : false, +"offset_free_hash" : "0x0", +"offset_rich_hash" : "0x0", +"crashed" : false, +"native_thread_id" : "0x7f5aa9242700", +"thread_info_addr" : "0x7f5b4c002870", +"thread_name" : "Thread Pool Wor", +"ctx" : { +"IP" : "0x7f5c7f971618", +"SP" : "0x7f5aa9241cb0", +"BP" : "0xa92d48" +}, +"unmanaged_frames" : [ +{ +"is_managed" : "false", +"native_address" : "0x462e99", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x64d4ca", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x64eca0", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x657d77", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x4ba6e5", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f9733c0", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f971618", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f971743", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x6b63df", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x6576a3", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f967609", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f541103", +"native_offset" : "0x00000" +} + +] +}, +{ +"is_managed" : true, +"offset_free_hash" : "0xd5ed0e7ac", +"offset_rich_hash" : "0xd5ed0eccf", +"crashed" : false, +"native_thread_id" : "0x7f5b763f1700", +"thread_info_addr" : "0x7f5b3c000b60", +"thread_name" : "Thread Pool Wor", +"ctx" : { +"IP" : "0x7f5c7f97236c", +"SP" : "0x7f5b763f0350", +"BP" : "0x20" +}, +"managed_frames" : [ +{ +"is_managed" : "false", +"native_address" : "unregistered" +} +, +{ +"is_managed" : "true", +"guid" : "4E15BBAE-9D70-43D8-AFD6-CFD50BD9BD5A", +"token" : "0x00000", +"native_offset" : "0x0", +"filename" : "System.dll", +"sizeofimage" : "0x286000", +"timestamp" : "0x94933251", +"il_offset" : "0x00000" +} +, +{ +"is_managed" : "true", +"guid" : "4E15BBAE-9D70-43D8-AFD6-CFD50BD9BD5A", +"token" : "0x6003e13", +"native_offset" : "0x0", +"filename" : "System.dll", +"sizeofimage" : "0x286000", +"timestamp" : "0x94933251", +"il_offset" : "0x00012" +} +, +{ +"is_managed" : "true", +"guid" : "4E15BBAE-9D70-43D8-AFD6-CFD50BD9BD5A", +"token" : "0x60041b8", +"native_offset" : "0x0", +"filename" : "System.dll", +"sizeofimage" : "0x286000", +"timestamp" : "0x94933251", +"il_offset" : "0x00027" +} +, +{ +"is_managed" : "true", +"guid" : "4E15BBAE-9D70-43D8-AFD6-CFD50BD9BD5A", +"token" : "0x60041b7", +"native_offset" : "0x0", +"filename" : "System.dll", +"sizeofimage" : "0x286000", +"timestamp" : "0x94933251", +"il_offset" : "0x002dc" +} +, +{ +"is_managed" : "true", +"guid" : "4E15BBAE-9D70-43D8-AFD6-CFD50BD9BD5A", +"token" : "0x60043ad", +"native_offset" : "0x0", +"filename" : "System.dll", +"sizeofimage" : "0x286000", +"timestamp" : "0x94933251", +"il_offset" : "0x00000" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x6002392", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x00025" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x600238e", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x00000" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x6002391", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x00000" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x6001ebe", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x00071" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x6001ebc", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x00000" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x60023fa", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x00034" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x6002390", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x0004a" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x6002506", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x00000" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x6001f16", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x00025" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x6001ebe", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x00071" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x6001ebc", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x00000" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x6001ebb", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x0002b" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x6001f17", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x0000f" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x00000", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x0002a" +} + +], +"unmanaged_frames" : [ +{ +"is_managed" : "false", +"native_address" : "0x462e99", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x64d4ca", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x64eca0", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x657d77", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x4ba6e5", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f9733c0", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f97236c", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7c24bc0b", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7c24a81e", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "true", +"guid" : "4E15BBAE-9D70-43D8-AFD6-CFD50BD9BD5A", +"token" : "0x00000", +"native_offset" : "0x0", +"filename" : "System.dll", +"sizeofimage" : "0x286000", +"timestamp" : "0x94933251", +"il_offset" : "0x00000" +} + +] +}, +{ +"is_managed" : false, +"offset_free_hash" : "0x0", +"offset_rich_hash" : "0x0", +"crashed" : false, +"native_thread_id" : "0x7f5aca764700", +"thread_info_addr" : "0x7f5b10325140", +"thread_name" : "Thread Pool Wor", +"ctx" : { +"IP" : "0x7f5c7f971618", +"SP" : "0x7f5aca763cb0", +"BP" : "0xa92d48" +}, +"unmanaged_frames" : [ +{ +"is_managed" : "false", +"native_address" : "0x462e99", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x64d4ca", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x64eca0", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x657d77", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x4ba6e5", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f9733c0", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f971618", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f971743", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x6b63df", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x6576a3", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f967609", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f541103", +"native_offset" : "0x00000" +} + +] +}, +{ +"is_managed" : false, +"offset_free_hash" : "0x0", +"offset_rich_hash" : "0x0", +"crashed" : false, +"native_thread_id" : "0x7f5aa07b7700", +"thread_info_addr" : "0x7f5bc4041ed0", +"thread_name" : "Thread Pool Wor", +"ctx" : { +"IP" : "0x7f5c7f971618", +"SP" : "0x7f5aa07b6cb0", +"BP" : "0xa92d48" +}, +"unmanaged_frames" : [ +{ +"is_managed" : "false", +"native_address" : "0x462e99", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x64d4ca", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x64eca0", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x657d77", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x4ba6e5", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f9733c0", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f971618", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f971743", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x6b63df", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x6576a3", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f967609", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f541103", +"native_offset" : "0x00000" +} + +] +}, +{ +"is_managed" : false, +"offset_free_hash" : "0x0", +"offset_rich_hash" : "0x0", +"crashed" : false, +"native_thread_id" : "0x7f5c57bfe700", +"thread_info_addr" : "0x7f5c44000b60", +"thread_name" : "Thread Pool Wor", +"ctx" : { +"IP" : "0x7f5c7f971618", +"SP" : "0x7f5c57bfdcb0", +"BP" : "0xa92d48" +}, +"unmanaged_frames" : [ +{ +"is_managed" : "false", +"native_address" : "0x462e99", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x64d4ca", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x64eca0", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x657d77", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x4ba6e5", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f9733c0", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f971618", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f971743", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x6b63df", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x6576a3", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f967609", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f541103", +"native_offset" : "0x00000" +} + +] +}, +{ +"is_managed" : false, +"offset_free_hash" : "0x0", +"offset_rich_hash" : "0x0", +"crashed" : false, +"native_thread_id" : "0x7f5bd1847700", +"thread_info_addr" : "0x7f5bb4000b60", +"thread_name" : "Thread Pool Wor", +"ctx" : { +"IP" : "0x7f5c7f971618", +"SP" : "0x7f5bd1846cb0", +"BP" : "0xa92d48" +}, +"unmanaged_frames" : [ +{ +"is_managed" : "false", +"native_address" : "0x462e99", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x64d4ca", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x64eca0", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x657d77", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x4ba6e5", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f9733c0", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f971618", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f971743", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x6b63df", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x6576a3", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f967609", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f541103", +"native_offset" : "0x00000" +} + +] +}, +{ +"is_managed" : false, +"offset_free_hash" : "0x0", +"offset_rich_hash" : "0x0", +"crashed" : false, +"native_thread_id" : "0x7f5aad317700", +"thread_info_addr" : "0x7f5b30002870", +"thread_name" : "Thread Pool Wor", +"ctx" : { +"IP" : "0x7f5c7f971618", +"SP" : "0x7f5aad316cb0", +"BP" : "0xa92d48" +}, +"unmanaged_frames" : [ +{ +"is_managed" : "false", +"native_address" : "0x462e99", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x64d4ca", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x64eca0", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x657d77", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x4ba6e5", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f9733c0", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f971618", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f971743", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x6b63df", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x6576a3", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f967609", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f541103", +"native_offset" : "0x00000" +} + +] +}, +{ +"is_managed" : false, +"offset_free_hash" : "0x0", +"offset_rich_hash" : "0x0", +"crashed" : false, +"native_thread_id" : "0x7f5b0ba02700", +"thread_info_addr" : "0x7f5afc000b60", +"thread_name" : "Thread Pool Wor", +"ctx" : { +"IP" : "0x7f5c7f971618", +"SP" : "0x7f5b0ba01cb0", +"BP" : "0xa92d48" +}, +"unmanaged_frames" : [ +{ +"is_managed" : "false", +"native_address" : "0x462e99", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x64d4ca", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x64eca0", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x657d77", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x4ba6e5", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f9733c0", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f971618", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f971743", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x6b63df", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x6576a3", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f967609", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f541103", +"native_offset" : "0x00000" +} + +] +}, +{ +"is_managed" : false, +"offset_free_hash" : "0x0", +"offset_rich_hash" : "0x0", +"crashed" : false, +"native_thread_id" : "0x7f5aa531b700", +"thread_info_addr" : "0x7f5ba478c2d0", +"thread_name" : "Thread Pool Wor", +"ctx" : { +"IP" : "0x7f5c7f971618", +"SP" : "0x7f5aa531acb0", +"BP" : "0xa92d48" +}, +"unmanaged_frames" : [ +{ +"is_managed" : "false", +"native_address" : "0x462e99", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x64d4ca", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x64eca0", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x657d77", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x4ba6e5", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f9733c0", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f971618", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f971743", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x6b63df", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x6576a3", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f967609", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f541103", +"native_offset" : "0x00000" +} + +] +}, +{ +"is_managed" : false, +"offset_free_hash" : "0x0", +"offset_rich_hash" : "0x0", +"crashed" : false, +"native_thread_id" : "0x7f5ac14aa700", +"thread_info_addr" : "0x7f5acc065aa0", +"thread_name" : "Thread Pool Wor", +"ctx" : { +"IP" : "0x7f5c7f971618", +"SP" : "0x7f5ac14a9cb0", +"BP" : "0xa92d48" +}, +"unmanaged_frames" : [ +{ +"is_managed" : "false", +"native_address" : "0x462e99", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x64d4ca", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x64eca0", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x657d77", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x4ba6e5", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f9733c0", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f971618", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f971743", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x6b63df", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x6576a3", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f967609", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f541103", +"native_offset" : "0x00000" +} + +] +}, +{ +"is_managed" : false, +"offset_free_hash" : "0x0", +"offset_rich_hash" : "0x0", +"crashed" : false, +"native_thread_id" : "0x7f5ab20fa700", +"thread_info_addr" : "0x7f5b20002870", +"thread_name" : "Thread Pool Wor", +"ctx" : { +"IP" : "0x7f5c7f971618", +"SP" : "0x7f5ab20f9cb0", +"BP" : "0xa92d48" +}, +"unmanaged_frames" : [ +{ +"is_managed" : "false", +"native_address" : "0x462e99", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x64d4ca", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x64eca0", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x657d77", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x4ba6e5", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f9733c0", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f971618", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f971743", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x6b63df", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x6576a3", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f967609", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f541103", +"native_offset" : "0x00000" +} + +] +}, +{ +"is_managed" : false, +"offset_free_hash" : "0x0", +"offset_rich_hash" : "0x0", +"crashed" : false, +"native_thread_id" : "0x7f5afb2a7700", +"thread_info_addr" : "0x7f5af4000b60", +"thread_name" : "Thread Pool Wor", +"ctx" : { +"IP" : "0x7f5c7f971618", +"SP" : "0x7f5afb2a6cb0", +"BP" : "0xa92d48" +}, +"unmanaged_frames" : [ +{ +"is_managed" : "false", +"native_address" : "0x462e99", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x64d4ca", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x64eca0", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x657d77", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x4ba6e5", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f9733c0", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f971618", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f971743", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x6b63df", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x6576a3", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f967609", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f541103", +"native_offset" : "0x00000" +} + +] +}, +{ +"is_managed" : false, +"offset_free_hash" : "0x0", +"offset_rich_hash" : "0x0", +"crashed" : false, +"native_thread_id" : "0x7f5acbd7b700", +"thread_info_addr" : "0x7f5ae0016440", +"thread_name" : "Thread Pool Wor", +"ctx" : { +"IP" : "0x7f5c7f971618", +"SP" : "0x7f5acbd7acb0", +"BP" : "0xa92d48" +}, +"unmanaged_frames" : [ +{ +"is_managed" : "false", +"native_address" : "0x462e99", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x64d4ca", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x64eca0", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x657d77", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x4ba6e5", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f9733c0", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f971618", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f971743", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x6b63df", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x6576a3", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f967609", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f541103", +"native_offset" : "0x00000" +} + +] +}, +{ +"is_managed" : true, +"offset_free_hash" : "0xd5ed0e7ac", +"offset_rich_hash" : "0xd5ed0eccf", +"crashed" : false, +"native_thread_id" : "0x7f5b771f8700", +"thread_info_addr" : "0x7f5b50000b60", +"thread_name" : "Thread Pool Wor", +"ctx" : { +"IP" : "0x7f5c7f97236c", +"SP" : "0x7f5b771f7350", +"BP" : "0x17" +}, +"managed_frames" : [ +{ +"is_managed" : "false", +"native_address" : "unregistered" +} +, +{ +"is_managed" : "true", +"guid" : "4E15BBAE-9D70-43D8-AFD6-CFD50BD9BD5A", +"token" : "0x00000", +"native_offset" : "0x0", +"filename" : "System.dll", +"sizeofimage" : "0x286000", +"timestamp" : "0x94933251", +"il_offset" : "0x00000" +} +, +{ +"is_managed" : "true", +"guid" : "4E15BBAE-9D70-43D8-AFD6-CFD50BD9BD5A", +"token" : "0x6003e13", +"native_offset" : "0x0", +"filename" : "System.dll", +"sizeofimage" : "0x286000", +"timestamp" : "0x94933251", +"il_offset" : "0x00012" +} +, +{ +"is_managed" : "true", +"guid" : "4E15BBAE-9D70-43D8-AFD6-CFD50BD9BD5A", +"token" : "0x60041b8", +"native_offset" : "0x0", +"filename" : "System.dll", +"sizeofimage" : "0x286000", +"timestamp" : "0x94933251", +"il_offset" : "0x00027" +} +, +{ +"is_managed" : "true", +"guid" : "4E15BBAE-9D70-43D8-AFD6-CFD50BD9BD5A", +"token" : "0x60041b7", +"native_offset" : "0x0", +"filename" : "System.dll", +"sizeofimage" : "0x286000", +"timestamp" : "0x94933251", +"il_offset" : "0x002dc" +} +, +{ +"is_managed" : "true", +"guid" : "4E15BBAE-9D70-43D8-AFD6-CFD50BD9BD5A", +"token" : "0x60043ad", +"native_offset" : "0x0", +"filename" : "System.dll", +"sizeofimage" : "0x286000", +"timestamp" : "0x94933251", +"il_offset" : "0x00000" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x6002392", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x00025" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x600238e", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x00000" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x6002391", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x00000" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x6001ebe", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x00071" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x6001ebc", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x00000" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x60023fa", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x00034" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x6002390", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x0004a" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x6002506", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x00000" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x6001f16", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x00025" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x6001ebe", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x00071" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x6001ebc", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x00000" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x6001ebb", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x0002b" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x6001f17", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x0000f" +} +, +{ +"is_managed" : "true", +"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", +"token" : "0x00000", +"native_offset" : "0x0", +"filename" : "mscorlib.dll", +"sizeofimage" : "0x474000", +"timestamp" : "0xda7f05f4", +"il_offset" : "0x0002a" +} + +], +"unmanaged_frames" : [ +{ +"is_managed" : "false", +"native_address" : "0x462e99", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x64d4ca", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x64eca0", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x657d77", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x4ba6e5", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f9733c0", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f97236c", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7c24bc0b", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7c24a81e", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "true", +"guid" : "4E15BBAE-9D70-43D8-AFD6-CFD50BD9BD5A", +"token" : "0x00000", +"native_offset" : "0x0", +"filename" : "System.dll", +"sizeofimage" : "0x286000", +"timestamp" : "0x94933251", +"il_offset" : "0x00000" +} + +] +}, +{ +"is_managed" : false, +"offset_free_hash" : "0x0", +"offset_rich_hash" : "0x0", +"crashed" : false, +"native_thread_id" : "0x7f5ac07ff700", +"thread_info_addr" : "0x7f5ad8127740", +"thread_name" : "Thread Pool Wor", +"ctx" : { +"IP" : "0x7f5c7f971618", +"SP" : "0x7f5ac07fecb0", +"BP" : "0xa92d48" +}, +"unmanaged_frames" : [ +{ +"is_managed" : "false", +"native_address" : "0x462e99", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x64d4ca", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x64eca0", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x657d77", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x4ba6e5", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f9733c0", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f971618", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f971743", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x6b63df", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x6576a3", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f967609", +"native_offset" : "0x00000" +} +, +{ +"is_managed" : "false", +"native_address" : "0x7f5c7f541103", +"native_offset" : "0x00000" +} + +] +} +] +} \ No newline at end of file diff --git a/src/Avalonia.Themes.Default/Avalonia.Themes.Default.csproj b/src/Avalonia.Themes.Default/Avalonia.Themes.Default.csproj index 153e21761e..06859e0cbb 100644 --- a/src/Avalonia.Themes.Default/Avalonia.Themes.Default.csproj +++ b/src/Avalonia.Themes.Default/Avalonia.Themes.Default.csproj @@ -12,6 +12,7 @@ + diff --git a/src/Avalonia.Themes.Default/DefaultTheme.xaml b/src/Avalonia.Themes.Default/DefaultTheme.xaml index e5b654b490..262875bd88 100644 --- a/src/Avalonia.Themes.Default/DefaultTheme.xaml +++ b/src/Avalonia.Themes.Default/DefaultTheme.xaml @@ -58,4 +58,5 @@ + diff --git a/src/Avalonia.Themes.Default/ManagedFileChooser.xaml b/src/Avalonia.Themes.Default/ManagedFileChooser.xaml new file mode 100644 index 0000000000..f9f77bf455 --- /dev/null +++ b/src/Avalonia.Themes.Default/ManagedFileChooser.xaml @@ -0,0 +1,153 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/Avalonia.Themes.Fluent/Avalonia.Themes.Fluent.csproj b/src/Avalonia.Themes.Fluent/Avalonia.Themes.Fluent.csproj index 72f1fbf973..d0bc8e9d26 100644 --- a/src/Avalonia.Themes.Fluent/Avalonia.Themes.Fluent.csproj +++ b/src/Avalonia.Themes.Fluent/Avalonia.Themes.Fluent.csproj @@ -11,7 +11,8 @@ - + + diff --git a/src/Avalonia.Themes.Fluent/FluentTheme.xaml b/src/Avalonia.Themes.Fluent/FluentTheme.xaml index 00ab9bc375..b89a8bb825 100644 --- a/src/Avalonia.Themes.Fluent/FluentTheme.xaml +++ b/src/Avalonia.Themes.Fluent/FluentTheme.xaml @@ -57,4 +57,5 @@ + diff --git a/src/Avalonia.Themes.Fluent/ManagedFileChooser.xaml b/src/Avalonia.Themes.Fluent/ManagedFileChooser.xaml new file mode 100644 index 0000000000..1af89351ab --- /dev/null +++ b/src/Avalonia.Themes.Fluent/ManagedFileChooser.xaml @@ -0,0 +1,304 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file From 85e94827844ddc7099cc0c0da47b35ea48cddf64 Mon Sep 17 00:00:00 2001 From: Splitwirez Date: Thu, 3 Sep 2020 20:46:23 -0400 Subject: [PATCH 002/689] Remove unintentionally-committed crash log file (how did that even get there??) --- .../mono_crash.2374905179.0.json | 17846 ---------------- 1 file changed, 17846 deletions(-) delete mode 100644 src/Avalonia.Headless/mono_crash.2374905179.0.json diff --git a/src/Avalonia.Headless/mono_crash.2374905179.0.json b/src/Avalonia.Headless/mono_crash.2374905179.0.json deleted file mode 100644 index 94422e8018..0000000000 --- a/src/Avalonia.Headless/mono_crash.2374905179.0.json +++ /dev/null @@ -1,17846 +0,0 @@ -{ - "protocol_version" : "0.0.6", - "configuration" : { - "version" : "(6.10.0.104) (tarball)", - "tlc" : "__thread", - "sigsgev" : "altstack", - "notifications" : "epoll", - "architecture" : "amd64", - "disabled_features" : "none", - "smallconfig" : "disabled", - "bigarrays" : "disabled", - "softdebug" : "enabled", - "interpreter" : "enabled", - "llvm_support" : "610", - "suspend" : "hybrid" - }, - "memory" : { - "minor_gc_time" : "2543081617", - "major_gc_time" : "14563827", - "minor_gc_count" : "11856", - "major_gc_count" : "23", - "major_gc_time_concurrent" : "80443544" - }, - "threads" : [ - { - "is_managed" : false, - "offset_free_hash" : "0x0", - "offset_rich_hash" : "0x0", - "crashed" : false, - "native_thread_id" : "0x7f5bba641700", - "thread_info_addr" : "0x7f5bac000b60", - "thread_name" : "Thread Pool Wor", - "ctx" : { - "IP" : "0x7f5c7f971618", - "SP" : "0x7f5bba640cb0", - "BP" : "0xa92d48" - }, - "unmanaged_frames" : [ - { - "is_managed" : "false", - "native_address" : "0x462e99", - "native_offset" : "0x00000" - } -, - { - "is_managed" : "false", - "native_address" : "0x64d4ca", - "native_offset" : "0x00000" - } -, - { - "is_managed" : "false", - "native_address" : "0x64eca0", - "native_offset" : "0x00000" - } -, - { - "is_managed" : "false", - "native_address" : "0x657d77", - "native_offset" : "0x00000" - } -, - { - "is_managed" : "false", - "native_address" : "0x4ba6e5", - "native_offset" : "0x00000" - } -, - { - "is_managed" : "false", - "native_address" : "0x7f5c7f9733c0", - "native_offset" : "0x00000" - } -, - { - "is_managed" : "false", - "native_address" : "0x7f5c7f971618", - "native_offset" : "0x00000" - } -, - { - "is_managed" : "false", - "native_address" : "0x7f5c7f971743", - "native_offset" : "0x00000" - } -, - { - "is_managed" : "false", - "native_address" : "0x6b63df", - "native_offset" : "0x00000" - } -, - { - "is_managed" : "false", - "native_address" : "0x6576a3", - "native_offset" : "0x00000" - } -, - { - "is_managed" : "false", - "native_address" : "0x7f5c7f967609", - "native_offset" : "0x00000" - } -, - { - "is_managed" : "false", - "native_address" : "0x7f5c7f541103", - "native_offset" : "0x00000" - } - - ] - }, - { - "is_managed" : false, - "offset_free_hash" : "0x0", - "offset_rich_hash" : "0x0", - "crashed" : false, - "native_thread_id" : "0x7f5c55825700", - "thread_info_addr" : "0x7f5c14000b60", - "thread_name" : "Thread Pool Wor", - "ctx" : { - "IP" : "0x7f5c7f971618", - "SP" : "0x7f5c55824cb0", - "BP" : "0xa92d48" - }, - "unmanaged_frames" : [ - { - "is_managed" : "false", - "native_address" : "0x462e99", - "native_offset" : "0x00000" - } -, - { - "is_managed" : "false", - "native_address" : "0x64d4ca", - "native_offset" : "0x00000" - } -, - { - "is_managed" : "false", - "native_address" : "0x64eca0", - "native_offset" : "0x00000" - } -, - { - "is_managed" : "false", - "native_address" : "0x657d77", - "native_offset" : "0x00000" - } -, - { - "is_managed" : "false", - "native_address" : "0x4ba6e5", - "native_offset" : "0x00000" - } -, - { - "is_managed" : "false", - "native_address" : "0x7f5c7f9733c0", - "native_offset" : "0x00000" - } -, - { - "is_managed" : "false", - "native_address" : "0x7f5c7f971618", - "native_offset" : "0x00000" - } -, - { - "is_managed" : "false", - "native_address" : "0x7f5c7f971743", - "native_offset" : "0x00000" - } -, - { - "is_managed" : "false", - "native_address" : "0x6b63df", - "native_offset" : "0x00000" - } -, - { - "is_managed" : "false", - "native_address" : "0x6576a3", - "native_offset" : "0x00000" - } -, - { - "is_managed" : "false", - "native_address" : "0x7f5c7f967609", - "native_offset" : "0x00000" - } -, - { - "is_managed" : "false", - "native_address" : "0x7f5c7f541103", - "native_offset" : "0x00000" - } - - ] - }, - { - "is_managed" : false, - "offset_free_hash" : "0x0", - "offset_rich_hash" : "0x0", - "crashed" : false, - "native_thread_id" : "0x7f5aa4b17700", - "thread_info_addr" : "0x7f5bb003d830", - "thread_name" : "Thread Pool Wor", - "ctx" : { - "IP" : "0x7f5c7f971618", - "SP" : "0x7f5aa4b16cb0", - "BP" : "0xa92d48" - }, - "unmanaged_frames" : [ - { - "is_managed" : "false", - "native_address" : "0x462e99", - "native_offset" : "0x00000" - } -, - { - "is_managed" : "false", - "native_address" : "0x64d4ca", - "native_offset" : "0x00000" - } -, - { - "is_managed" : "false", - "native_address" : "0x64eca0", - "native_offset" : "0x00000" - } -, - { - "is_managed" : "false", - "native_address" : "0x657d77", - "native_offset" : "0x00000" - } -, - { - "is_managed" : "false", - "native_address" : "0x4ba6e5", - "native_offset" : "0x00000" - } -, - { - "is_managed" : "false", - "native_address" : "0x7f5c7f9733c0", - "native_offset" : "0x00000" - } -, - { - "is_managed" : "false", - "native_address" : "0x7f5c7f971618", - "native_offset" : "0x00000" - } -, - { - "is_managed" : "false", - "native_address" : "0x7f5c7f971743", - "native_offset" : "0x00000" - } -, - { - "is_managed" : "false", - "native_address" : "0x6b63df", - "native_offset" : "0x00000" - } -, - { - "is_managed" : "false", - "native_address" : "0x6576a3", - "native_offset" : "0x00000" - } -, - { - "is_managed" : "false", - "native_address" : "0x7f5c7f967609", - "native_offset" : "0x00000" - } -, - { - "is_managed" : "false", - "native_address" : "0x7f5c7f541103", - "native_offset" : "0x00000" - } - - ] - }, - { - "is_managed" : false, - "offset_free_hash" : "0x0", - "offset_rich_hash" : "0x0", - "crashed" : false, - "native_thread_id" : "0x7f5aa7564700", - "thread_info_addr" : "0x7f5b58002870", - "thread_name" : "Thread Pool Wor", - "ctx" : { - "IP" : "0x7f5c7f971618", - "SP" : "0x7f5aa7563cb0", - "BP" : "0xa92d48" - }, - "unmanaged_frames" : [ - { - "is_managed" : "false", - "native_address" : "0x462e99", - "native_offset" : "0x00000" - } -, - { - "is_managed" : "false", - "native_address" : "0x64d4ca", - "native_offset" : "0x00000" - } -, - { - "is_managed" : "false", - "native_address" : "0x64eca0", - "native_offset" : "0x00000" - } -, - { - "is_managed" : "false", - "native_address" : "0x657d77", - "native_offset" : "0x00000" - } -, - { - "is_managed" : "false", - "native_address" : "0x4ba6e5", - "native_offset" : "0x00000" - } -, - { - "is_managed" : "false", - "native_address" : "0x7f5c7f9733c0", - "native_offset" : "0x00000" - } -, - { - "is_managed" : "false", - "native_address" : "0x7f5c7f971618", - "native_offset" : "0x00000" - } -, - { - "is_managed" : "false", - "native_address" : "0x7f5c7f971743", - "native_offset" : "0x00000" - } -, - { - "is_managed" : "false", - "native_address" : "0x6b63df", - "native_offset" : "0x00000" - } -, - { - "is_managed" : "false", - "native_address" : "0x6576a3", - "native_offset" : "0x00000" - } -, - { - "is_managed" : "false", - "native_address" : "0x7f5c7f967609", - "native_offset" : "0x00000" - } -, - { - "is_managed" : "false", - "native_address" : "0x7f5c7f541103", - "native_offset" : "0x00000" - } - - ] - }, - { - "is_managed" : false, - "offset_free_hash" : "0x0", - "offset_rich_hash" : "0x0", - "crashed" : false, - "native_thread_id" : "0x7f5afb023700", - "thread_info_addr" : "0x7f5aec000b60", - "thread_name" : "Thread Pool Wor", - "ctx" : { - "IP" : "0x7f5c7f971618", - "SP" : "0x7f5afb022cb0", - "BP" : "0xa92d48" - }, - "unmanaged_frames" : [ - { - "is_managed" : "false", - "native_address" : "0x462e99", - "native_offset" : "0x00000" - } -, - { - "is_managed" : "false", - "native_address" : "0x64d4ca", - "native_offset" : "0x00000" - } -, - { - "is_managed" : "false", - "native_address" : "0x64eca0", - "native_offset" : "0x00000" - } -, - { - "is_managed" : "false", - "native_address" : "0x657d77", - "native_offset" : "0x00000" - } -, - { - "is_managed" : "false", - "native_address" : "0x4ba6e5", - "native_offset" : "0x00000" - } -, - { - "is_managed" : "false", - "native_address" : "0x7f5c7f9733c0", - "native_offset" : "0x00000" - } -, - { - "is_managed" : "false", - "native_address" : "0x7f5c7f971618", - "native_offset" : "0x00000" - } -, - { - "is_managed" : "false", - "native_address" : "0x7f5c7f971743", - "native_offset" : "0x00000" - } -, - { - "is_managed" : "false", - "native_address" : "0x6b63df", - "native_offset" : "0x00000" - } -, - { - "is_managed" : "false", - "native_address" : "0x6576a3", - "native_offset" : "0x00000" - } -, - { - "is_managed" : "false", - "native_address" : "0x7f5c7f967609", - "native_offset" : "0x00000" - } -, - { - "is_managed" : "false", - "native_address" : "0x7f5c7f541103", - "native_offset" : "0x00000" - } - - ] - }, - { - "is_managed" : false, - "offset_free_hash" : "0x0", - "offset_rich_hash" : "0x0", - "crashed" : false, - "native_thread_id" : "0x7f5acb577700", - "thread_info_addr" : "0x7f5af01e9800", - "thread_name" : "Thread Pool Wor", - "ctx" : { - "IP" : "0x7f5c7f971618", - "SP" : "0x7f5acb576cb0", - "BP" : "0xa92d48" - }, - "unmanaged_frames" : [ - { - "is_managed" : "false", - "native_address" : "0x462e99", - "native_offset" : "0x00000" - } -, - { - "is_managed" : "false", - "native_address" : "0x64d4ca", - "native_offset" : "0x00000" - } -, - { - "is_managed" : "false", - "native_address" : "0x64eca0", - "native_offset" : "0x00000" - } -, - { - "is_managed" : "false", - "native_address" : "0x657d77", - "native_offset" : "0x00000" - } -, - { - "is_managed" : "false", - "native_address" : "0x4ba6e5", - "native_offset" : "0x00000" - } -, - { - "is_managed" : "false", - "native_address" : "0x7f5c7f9733c0", - "native_offset" : "0x00000" - } -, - { - "is_managed" : "false", - "native_address" : "0x7f5c7f971618", - "native_offset" : "0x00000" - } -, - { - "is_managed" : "false", - "native_address" : "0x7f5c7f971743", - "native_offset" : "0x00000" - } -, - { - "is_managed" : "false", - "native_address" : "0x6b63df", - "native_offset" : "0x00000" - } -, - { - "is_managed" : "false", - "native_address" : "0x6576a3", - "native_offset" : "0x00000" - } -, - { - "is_managed" : "false", - "native_address" : "0x7f5c7f967609", - "native_offset" : "0x00000" - } -, - { - "is_managed" : "false", - "native_address" : "0x7f5c7f541103", - "native_offset" : "0x00000" - } - - ] - }, - { - "is_managed" : true, - "offset_free_hash" : "0xd5ed0e7ac", - "offset_rich_hash" : "0xd5ed0eccf", - "crashed" : false, - "native_thread_id" : "0x7f5b769f4700", - "thread_info_addr" : "0x7f5b40000b60", - "thread_name" : "Thread Pool Wor", - "ctx" : { - "IP" : "0x7f5c7f97236c", - "SP" : "0x7f5b769f3350", - "BP" : "0x1b" - }, - "managed_frames" : [ - { - "is_managed" : "false", - "native_address" : "unregistered" - } -, - { - "is_managed" : "true", - "guid" : "4E15BBAE-9D70-43D8-AFD6-CFD50BD9BD5A", - "token" : "0x00000", - "native_offset" : "0x0", - "filename" : "System.dll", - "sizeofimage" : "0x286000", - "timestamp" : "0x94933251", - "il_offset" : "0x00000" - } -, - { - "is_managed" : "true", - "guid" : "4E15BBAE-9D70-43D8-AFD6-CFD50BD9BD5A", - "token" : "0x6003e13", - "native_offset" : "0x0", - "filename" : "System.dll", - "sizeofimage" : "0x286000", - "timestamp" : "0x94933251", - "il_offset" : "0x00012" - } -, - { - "is_managed" : "true", - "guid" : "4E15BBAE-9D70-43D8-AFD6-CFD50BD9BD5A", - "token" : "0x60041b8", - "native_offset" : "0x0", - "filename" : "System.dll", - "sizeofimage" : "0x286000", - "timestamp" : "0x94933251", - "il_offset" : "0x00027" - } -, - { - "is_managed" : "true", - "guid" : "4E15BBAE-9D70-43D8-AFD6-CFD50BD9BD5A", - "token" : "0x60041b7", - "native_offset" : "0x0", - "filename" : "System.dll", - "sizeofimage" : "0x286000", - "timestamp" : "0x94933251", - "il_offset" : "0x002dc" - } -, - { - "is_managed" : "true", - "guid" : "4E15BBAE-9D70-43D8-AFD6-CFD50BD9BD5A", - "token" : "0x60043ad", - "native_offset" : "0x0", - "filename" : "System.dll", - "sizeofimage" : "0x286000", - "timestamp" : "0x94933251", - "il_offset" : "0x00000" - } -, - { - "is_managed" : "true", - "guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", - "token" : "0x6002392", - "native_offset" : "0x0", - "filename" : "mscorlib.dll", - "sizeofimage" : "0x474000", - "timestamp" : "0xda7f05f4", - "il_offset" : "0x00025" - } -, - { - "is_managed" : "true", - "guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", - "token" : "0x600238e", - "native_offset" : "0x0", - "filename" : "mscorlib.dll", - "sizeofimage" : "0x474000", - "timestamp" : "0xda7f05f4", - "il_offset" : "0x00000" - } -, - { - "is_managed" : "true", - "guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", - "token" : "0x6002391", - "native_offset" : "0x0", - "filename" : "mscorlib.dll", - "sizeofimage" : "0x474000", - "timestamp" : "0xda7f05f4", - "il_offset" : "0x00000" - } -, - { - "is_managed" : "true", - "guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", - "token" : "0x6001ebe", - "native_offset" : "0x0", - "filename" : "mscorlib.dll", - "sizeofimage" : "0x474000", - "timestamp" : "0xda7f05f4", - "il_offset" : "0x00071" - } -, - { - "is_managed" : "true", - "guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", - "token" : "0x6001ebc", - "native_offset" : "0x0", - "filename" : "mscorlib.dll", - "sizeofimage" : "0x474000", - "timestamp" : "0xda7f05f4", - "il_offset" : "0x00000" - } -, - { - "is_managed" : "true", - "guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", - "token" : "0x60023fa", - "native_offset" : "0x0", - "filename" : "mscorlib.dll", - "sizeofimage" : "0x474000", - "timestamp" : "0xda7f05f4", - "il_offset" : "0x00034" - } -, - { - "is_managed" : "true", - "guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", - "token" : "0x6002390", - "native_offset" : "0x0", - "filename" : "mscorlib.dll", - "sizeofimage" : "0x474000", - "timestamp" : "0xda7f05f4", - "il_offset" : "0x0004a" - } -, - { - "is_managed" : "true", - "guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", - "token" : "0x6002506", - "native_offset" : "0x0", - "filename" : "mscorlib.dll", - "sizeofimage" : "0x474000", - "timestamp" : "0xda7f05f4", - "il_offset" : "0x00000" - } -, - { - "is_managed" : "true", - "guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", - "token" : "0x6001f16", - "native_offset" : "0x0", - "filename" : "mscorlib.dll", - "sizeofimage" : "0x474000", - "timestamp" : "0xda7f05f4", - "il_offset" : "0x00025" - } -, - { - "is_managed" : "true", - "guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", - "token" : "0x6001ebe", - "native_offset" : "0x0", - "filename" : "mscorlib.dll", - "sizeofimage" : "0x474000", - "timestamp" : "0xda7f05f4", - "il_offset" : "0x00071" - } -, - { - "is_managed" : "true", - "guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", - "token" : "0x6001ebc", - "native_offset" : "0x0", - "filename" : "mscorlib.dll", - "sizeofimage" : "0x474000", - "timestamp" : "0xda7f05f4", - "il_offset" : "0x00000" - } -, - { - "is_managed" : "true", - "guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", - "token" : "0x6001ebb", - "native_offset" : "0x0", - "filename" : "mscorlib.dll", - "sizeofimage" : "0x474000", - "timestamp" : "0xda7f05f4", - "il_offset" : "0x0002b" - } -, - { - "is_managed" : "true", - "guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", - "token" : "0x6001f17", - "native_offset" : "0x0", - "filename" : "mscorlib.dll", - "sizeofimage" : "0x474000", - "timestamp" : "0xda7f05f4", - "il_offset" : "0x0000f" - } -, - { - "is_managed" : "true", - "guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", - "token" : "0x00000", - "native_offset" : "0x0", - "filename" : "mscorlib.dll", - "sizeofimage" : "0x474000", - "timestamp" : "0xda7f05f4", - "il_offset" : "0x0002a" - } - - ], - "unmanaged_frames" : [ - { - "is_managed" : "false", - "native_address" : "0x462e99", - "native_offset" : "0x00000" - } -, - { - "is_managed" : "false", - "native_address" : "0x64d4ca", - "native_offset" : "0x00000" - } -, - { - "is_managed" : "false", - "native_address" : "0x64eca0", - "native_offset" : "0x00000" - } -, - { - "is_managed" : "false", - "native_address" : "0x657d77", - "native_offset" : "0x00000" - } -, - { - "is_managed" : "false", - "native_address" : "0x4ba6e5", - "native_offset" : "0x00000" - } -, - { - "is_managed" : "false", - "native_address" : "0x7f5c7f9733c0", - "native_offset" : "0x00000" - } -, - { - "is_managed" : "false", - "native_address" : "0x7f5c7f97236c", - "native_offset" : "0x00000" - } -, - { - "is_managed" : "false", - "native_address" : "0x7f5c7c24bc0b", - "native_offset" : "0x00000" - } -, - { - "is_managed" : "false", - "native_address" : "0x7f5c7c24a81e", - "native_offset" : "0x00000" - } -, - { - "is_managed" : "true", - "guid" : "4E15BBAE-9D70-43D8-AFD6-CFD50BD9BD5A", - "token" : "0x00000", - "native_offset" : "0x0", - "filename" : "System.dll", - "sizeofimage" : "0x286000", - "timestamp" : "0x94933251", - "il_offset" : "0x00000" - } - - ] -}, -{ - "is_managed" : false, - "offset_free_hash" : "0x0", - "offset_rich_hash" : "0x0", - "crashed" : false, - "native_thread_id" : "0x7f5acad67700", - "thread_info_addr" : "0x7f5afc037f00", - "thread_name" : "Thread Pool Wor", - "ctx" : { - "IP" : "0x7f5c7f971618", - "SP" : "0x7f5acad66cb0", - "BP" : "0xa92d48" - }, - "unmanaged_frames" : [ - { - "is_managed" : "false", - "native_address" : "0x462e99", - "native_offset" : "0x00000" - } -, - { - "is_managed" : "false", - "native_address" : "0x64d4ca", - "native_offset" : "0x00000" - } -, - { - "is_managed" : "false", - "native_address" : "0x64eca0", - "native_offset" : "0x00000" - } -, - { - "is_managed" : "false", - "native_address" : "0x657d77", - "native_offset" : "0x00000" - } -, - { - "is_managed" : "false", - "native_address" : "0x4ba6e5", - "native_offset" : "0x00000" - } -, - { - "is_managed" : "false", - "native_address" : "0x7f5c7f9733c0", - "native_offset" : "0x00000" - } -, - { - "is_managed" : "false", - "native_address" : "0x7f5c7f971618", - "native_offset" : "0x00000" - } -, - { - "is_managed" : "false", - "native_address" : "0x7f5c7f971743", - "native_offset" : "0x00000" - } -, - { - "is_managed" : "false", - "native_address" : "0x6b63df", - "native_offset" : "0x00000" - } -, - { - "is_managed" : "false", - "native_address" : "0x6576a3", - "native_offset" : "0x00000" - } -, - { - "is_managed" : "false", - "native_address" : "0x7f5c7f967609", - "native_offset" : "0x00000" - } -, - { - "is_managed" : "false", - "native_address" : "0x7f5c7f541103", - "native_offset" : "0x00000" - } - - ] -}, -{ - "is_managed" : false, - "offset_free_hash" : "0x0", - "offset_rich_hash" : "0x0", - "crashed" : false, - "native_thread_id" : "0x7f5aa0dba700", - "thread_info_addr" : "0x7f5bc04a47f0", - "thread_name" : "Thread Pool Wor", - "ctx" : { - "IP" : "0x7f5c7f971618", - "SP" : "0x7f5aa0db9cb0", - "BP" : "0xa92d48" - }, - "unmanaged_frames" : [ - { - "is_managed" : "false", - "native_address" : "0x462e99", - "native_offset" : "0x00000" - } -, - { - "is_managed" : "false", - "native_address" : "0x64d4ca", - "native_offset" : "0x00000" - } -, - { - "is_managed" : "false", - "native_address" : "0x64eca0", - "native_offset" : "0x00000" - } -, - { - "is_managed" : "false", - "native_address" : "0x657d77", - "native_offset" : "0x00000" - } -, - { - "is_managed" : "false", - "native_address" : "0x4ba6e5", - "native_offset" : "0x00000" - } -, - { - "is_managed" : "false", - "native_address" : "0x7f5c7f9733c0", - "native_offset" : "0x00000" - } -, - { - "is_managed" : "false", - "native_address" : "0x7f5c7f971618", - "native_offset" : "0x00000" - } -, - { - "is_managed" : "false", - "native_address" : "0x7f5c7f971743", - "native_offset" : "0x00000" - } -, - { - "is_managed" : "false", - "native_address" : "0x6b63df", - "native_offset" : "0x00000" - } -, - { - "is_managed" : "false", - "native_address" : "0x6576a3", - "native_offset" : "0x00000" - } -, - { - "is_managed" : "false", - "native_address" : "0x7f5c7f967609", - "native_offset" : "0x00000" - } -, - { - "is_managed" : "false", - "native_address" : "0x7f5c7f541103", - "native_offset" : "0x00000" - } - - ] -}, -{ - "is_managed" : false, - "offset_free_hash" : "0x0", - "offset_rich_hash" : "0x0", - "crashed" : false, - "native_thread_id" : "0x7f5bd1e4a700", - "thread_info_addr" : "0x7f5bc8000b60", - "thread_name" : "Thread Pool Wor", - "ctx" : { - "IP" : "0x7f5c7f971618", - "SP" : "0x7f5bd1e49cb0", - "BP" : "0xa92d48" - }, - "unmanaged_frames" : [ - { - "is_managed" : "false", - "native_address" : "0x462e99", - "native_offset" : "0x00000" - } -, - { - "is_managed" : "false", - "native_address" : "0x64d4ca", - "native_offset" : "0x00000" - } -, - { - "is_managed" : "false", - "native_address" : "0x64eca0", - "native_offset" : "0x00000" - } -, - { - "is_managed" : "false", - "native_address" : "0x657d77", - "native_offset" : "0x00000" - } -, - { - "is_managed" : "false", - "native_address" : "0x4ba6e5", - "native_offset" : "0x00000" - } -, - { - "is_managed" : "false", - "native_address" : "0x7f5c7f9733c0", - "native_offset" : "0x00000" - } -, - { - "is_managed" : "false", - "native_address" : "0x7f5c7f971618", - "native_offset" : "0x00000" - } -, - { - "is_managed" : "false", - "native_address" : "0x7f5c7f971743", - "native_offset" : "0x00000" - } -, - { - "is_managed" : "false", - "native_address" : "0x6b63df", - "native_offset" : "0x00000" - } -, - { - "is_managed" : "false", - "native_address" : "0x6576a3", - "native_offset" : "0x00000" - } -, - { - "is_managed" : "false", - "native_address" : "0x7f5c7f967609", - "native_offset" : "0x00000" - } -, - { - "is_managed" : "false", - "native_address" : "0x7f5c7f541103", - "native_offset" : "0x00000" - } - - ] -}, -{ - "is_managed" : false, - "offset_free_hash" : "0x0", - "offset_rich_hash" : "0x0", - "crashed" : false, - "native_thread_id" : "0x7f5b74932700", - "thread_info_addr" : "0x7f5b10000b60", - "thread_name" : "Thread Pool Wor", - "ctx" : { - "IP" : "0x7f5c7f971618", - "SP" : "0x7f5b74931cb0", - "BP" : "0xa92d48" - }, - "unmanaged_frames" : [ - { - "is_managed" : "false", - "native_address" : "0x462e99", - "native_offset" : "0x00000" - } -, - { - "is_managed" : "false", - "native_address" : "0x64d4ca", - "native_offset" : "0x00000" - } -, - { - "is_managed" : "false", - "native_address" : "0x64eca0", - "native_offset" : "0x00000" - } -, - { - "is_managed" : "false", - "native_address" : "0x657d77", - "native_offset" : "0x00000" - } -, - { - "is_managed" : "false", - "native_address" : "0x4ba6e5", - "native_offset" : "0x00000" - } -, - { - "is_managed" : "false", - "native_address" : "0x7f5c7f9733c0", - "native_offset" : "0x00000" - } -, - { - "is_managed" : "false", - "native_address" : "0x7f5c7f971618", - "native_offset" : "0x00000" - } -, - { - "is_managed" : "false", - "native_address" : "0x7f5c7f971743", - "native_offset" : "0x00000" - } -, - { - "is_managed" : "false", - "native_address" : "0x6b63df", - "native_offset" : "0x00000" - } -, - { - "is_managed" : "false", - "native_address" : "0x6576a3", - "native_offset" : "0x00000" - } -, - { - "is_managed" : "false", - "native_address" : "0x7f5c7f967609", - "native_offset" : "0x00000" - } -, - { - "is_managed" : "false", - "native_address" : "0x7f5c7f541103", - "native_offset" : "0x00000" - } - - ] -}, -{ - "is_managed" : false, - "offset_free_hash" : "0x0", - "offset_rich_hash" : "0x0", - "crashed" : false, - "native_thread_id" : "0x7f5aa635b700", - "thread_info_addr" : "0x7f5b80016a90", - "thread_name" : "Thread Pool Wor", - "ctx" : { - "IP" : "0x7f5c7f971618", - "SP" : "0x7f5aa635acb0", - "BP" : "0xa92d48" - }, - "unmanaged_frames" : [ - { - "is_managed" : "false", - "native_address" : "0x462e99", - "native_offset" : "0x00000" - } -, - { - "is_managed" : "false", - "native_address" : "0x64d4ca", - "native_offset" : "0x00000" - } -, - { - "is_managed" : "false", - "native_address" : "0x64eca0", - "native_offset" : "0x00000" - } -, - { - "is_managed" : "false", - "native_address" : "0x657d77", - "native_offset" : "0x00000" - } -, - { - "is_managed" : "false", - "native_address" : "0x4ba6e5", - "native_offset" : "0x00000" - } -, - { - "is_managed" : "false", - "native_address" : "0x7f5c7f9733c0", - "native_offset" : "0x00000" - } -, - { - "is_managed" : "false", - "native_address" : "0x7f5c7f971618", - "native_offset" : "0x00000" - } -, - { - "is_managed" : "false", - "native_address" : "0x7f5c7f971743", - "native_offset" : "0x00000" - } -, - { - "is_managed" : "false", - "native_address" : "0x6b63df", - "native_offset" : "0x00000" - } -, - { - "is_managed" : "false", - "native_address" : "0x6576a3", - "native_offset" : "0x00000" - } -, - { - "is_managed" : "false", - "native_address" : "0x7f5c7f967609", - "native_offset" : "0x00000" - } -, - { - "is_managed" : "false", - "native_address" : "0x7f5c7f541103", - "native_offset" : "0x00000" - } - - ] -}, -{ - "is_managed" : false, - "offset_free_hash" : "0x0", - "offset_rich_hash" : "0x0", - "crashed" : false, - "native_thread_id" : "0x7f5af9e1a700", - "thread_info_addr" : "0x7f5ad0000b60", - "thread_name" : "Thread Pool Wor", - "ctx" : { - "IP" : "0x7f5c7f971618", - "SP" : "0x7f5af9e19cb0", - "BP" : "0xa92d48" - }, - "unmanaged_frames" : [ - { - "is_managed" : "false", - "native_address" : "0x462e99", - "native_offset" : "0x00000" - } -, - { - "is_managed" : "false", - "native_address" : "0x64d4ca", - "native_offset" : "0x00000" - } -, - { - "is_managed" : "false", - "native_address" : "0x64eca0", - "native_offset" : "0x00000" - } -, - { - "is_managed" : "false", - "native_address" : "0x657d77", - "native_offset" : "0x00000" - } -, - { - "is_managed" : "false", - "native_address" : "0x4ba6e5", - "native_offset" : "0x00000" - } -, - { - "is_managed" : "false", - "native_address" : "0x7f5c7f9733c0", - "native_offset" : "0x00000" - } -, - { - "is_managed" : "false", - "native_address" : "0x7f5c7f971618", - "native_offset" : "0x00000" - } -, - { - "is_managed" : "false", - "native_address" : "0x7f5c7f971743", - "native_offset" : "0x00000" - } -, - { - "is_managed" : "false", - "native_address" : "0x6b63df", - "native_offset" : "0x00000" - } -, - { - "is_managed" : "false", - "native_address" : "0x6576a3", - "native_offset" : "0x00000" - } -, - { - "is_managed" : "false", - "native_address" : "0x7f5c7f967609", - "native_offset" : "0x00000" - } -, - { - "is_managed" : "false", - "native_address" : "0x7f5c7f541103", - "native_offset" : "0x00000" - } - - ] -}, -{ - "is_managed" : false, - "offset_free_hash" : "0x0", - "offset_rich_hash" : "0x0", - "crashed" : false, - "native_thread_id" : "0x7f5ab28c7700", - "thread_info_addr" : "0x7f5b3c002870", - "thread_name" : "Thread Pool Wor", - "ctx" : { - "IP" : "0x7f5c7f971618", - "SP" : "0x7f5ab28c6cb0", - "BP" : "0xa92d48" - }, - "unmanaged_frames" : [ - { - "is_managed" : "false", - "native_address" : "0x462e99", - "native_offset" : "0x00000" - } -, - { - "is_managed" : "false", - "native_address" : "0x64d4ca", - "native_offset" : "0x00000" - } -, - { - "is_managed" : "false", - "native_address" : "0x64eca0", - "native_offset" : "0x00000" - } -, - { - "is_managed" : "false", - "native_address" : "0x657d77", - "native_offset" : "0x00000" - } -, - { - "is_managed" : "false", - "native_address" : "0x4ba6e5", - "native_offset" : "0x00000" - } -, - { - "is_managed" : "false", - "native_address" : "0x7f5c7f9733c0", - "native_offset" : "0x00000" - } -, - { - "is_managed" : "false", - "native_address" : "0x7f5c7f971618", - "native_offset" : "0x00000" - } -, - { - "is_managed" : "false", - "native_address" : "0x7f5c7f971743", - "native_offset" : "0x00000" - } -, - { - "is_managed" : "false", - "native_address" : "0x6b63df", - "native_offset" : "0x00000" - } -, - { - "is_managed" : "false", - "native_address" : "0x6576a3", - "native_offset" : "0x00000" - } -, - { - "is_managed" : "false", - "native_address" : "0x7f5c7f967609", - "native_offset" : "0x00000" - } -, - { - "is_managed" : "false", - "native_address" : "0x7f5c7f541103", - "native_offset" : "0x00000" - } - - ] -}, -{ - "is_managed" : true, - "offset_free_hash" : "0xd5ed0e7ac", - "offset_rich_hash" : "0xd5ed0eccf", - "crashed" : false, - "native_thread_id" : "0x7f5b8c387700", - "thread_info_addr" : "0x7f5b7c000b60", - "thread_name" : "Thread Pool Wor", - "ctx" : { - "IP" : "0x7f5c7f97236c", - "SP" : "0x7f5b8c386350", - "BP" : "0xd" - }, - "managed_frames" : [ - { - "is_managed" : "false", - "native_address" : "unregistered" - } -, - { - "is_managed" : "true", - "guid" : "4E15BBAE-9D70-43D8-AFD6-CFD50BD9BD5A", - "token" : "0x00000", - "native_offset" : "0x0", - "filename" : "System.dll", - "sizeofimage" : "0x286000", - "timestamp" : "0x94933251", - "il_offset" : "0x00000" - } -, - { - "is_managed" : "true", - "guid" : "4E15BBAE-9D70-43D8-AFD6-CFD50BD9BD5A", - "token" : "0x6003e13", - "native_offset" : "0x0", - "filename" : "System.dll", - "sizeofimage" : "0x286000", - "timestamp" : "0x94933251", - "il_offset" : "0x00012" - } -, - { - "is_managed" : "true", - "guid" : "4E15BBAE-9D70-43D8-AFD6-CFD50BD9BD5A", - "token" : "0x60041b8", - "native_offset" : "0x0", - "filename" : "System.dll", - "sizeofimage" : "0x286000", - "timestamp" : "0x94933251", - "il_offset" : "0x00027" - } -, - { - "is_managed" : "true", - "guid" : "4E15BBAE-9D70-43D8-AFD6-CFD50BD9BD5A", - "token" : "0x60041b7", - "native_offset" : "0x0", - "filename" : "System.dll", - "sizeofimage" : "0x286000", - "timestamp" : "0x94933251", - "il_offset" : "0x002dc" - } -, - { - "is_managed" : "true", - "guid" : "4E15BBAE-9D70-43D8-AFD6-CFD50BD9BD5A", - "token" : "0x60043ad", - "native_offset" : "0x0", - "filename" : "System.dll", - "sizeofimage" : "0x286000", - "timestamp" : "0x94933251", - "il_offset" : "0x00000" - } -, - { - "is_managed" : "true", - "guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", - "token" : "0x6002392", - "native_offset" : "0x0", - "filename" : "mscorlib.dll", - "sizeofimage" : "0x474000", - "timestamp" : "0xda7f05f4", - "il_offset" : "0x00025" - } -, - { - "is_managed" : "true", - "guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", - "token" : "0x600238e", - "native_offset" : "0x0", - "filename" : "mscorlib.dll", - "sizeofimage" : "0x474000", - "timestamp" : "0xda7f05f4", - "il_offset" : "0x00000" - } -, - { - "is_managed" : "true", - "guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", - "token" : "0x6002391", - "native_offset" : "0x0", - "filename" : "mscorlib.dll", - "sizeofimage" : "0x474000", - "timestamp" : "0xda7f05f4", - "il_offset" : "0x00000" - } -, - { - "is_managed" : "true", - "guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", - "token" : "0x6001ebe", - "native_offset" : "0x0", - "filename" : "mscorlib.dll", - "sizeofimage" : "0x474000", - "timestamp" : "0xda7f05f4", - "il_offset" : "0x00071" - } -, - { - "is_managed" : "true", - "guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", - "token" : "0x6001ebc", - "native_offset" : "0x0", - "filename" : "mscorlib.dll", - "sizeofimage" : "0x474000", - "timestamp" : "0xda7f05f4", - "il_offset" : "0x00000" - } -, - { - "is_managed" : "true", - "guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", - "token" : "0x60023fa", - "native_offset" : "0x0", - "filename" : "mscorlib.dll", - "sizeofimage" : "0x474000", - "timestamp" : "0xda7f05f4", - "il_offset" : "0x00034" - } -, - { - "is_managed" : "true", - "guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", - "token" : "0x6002390", - "native_offset" : "0x0", - "filename" : "mscorlib.dll", - "sizeofimage" : "0x474000", - "timestamp" : "0xda7f05f4", - "il_offset" : "0x0004a" - } -, - { - "is_managed" : "true", - "guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", - "token" : "0x6002506", - "native_offset" : "0x0", - "filename" : "mscorlib.dll", - "sizeofimage" : "0x474000", - "timestamp" : "0xda7f05f4", - "il_offset" : "0x00000" - } -, - { - "is_managed" : "true", - "guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", - "token" : "0x6001f16", - "native_offset" : "0x0", - "filename" : "mscorlib.dll", - "sizeofimage" : "0x474000", - "timestamp" : "0xda7f05f4", - "il_offset" : "0x00025" - } -, - { - "is_managed" : "true", - "guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", - "token" : "0x6001ebe", - "native_offset" : "0x0", - "filename" : "mscorlib.dll", - "sizeofimage" : "0x474000", - "timestamp" : "0xda7f05f4", - "il_offset" : "0x00071" - } -, - { - "is_managed" : "true", - "guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", - "token" : "0x6001ebc", - "native_offset" : "0x0", - "filename" : "mscorlib.dll", - "sizeofimage" : "0x474000", - "timestamp" : "0xda7f05f4", - "il_offset" : "0x00000" - } -, - { - "is_managed" : "true", - "guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", - "token" : "0x6001ebb", - "native_offset" : "0x0", - "filename" : "mscorlib.dll", - "sizeofimage" : "0x474000", - "timestamp" : "0xda7f05f4", - "il_offset" : "0x0002b" - } -, - { - "is_managed" : "true", - "guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", - "token" : "0x6001f17", - "native_offset" : "0x0", - "filename" : "mscorlib.dll", - "sizeofimage" : "0x474000", - "timestamp" : "0xda7f05f4", - "il_offset" : "0x0000f" - } -, - { - "is_managed" : "true", - "guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", - "token" : "0x00000", - "native_offset" : "0x0", - "filename" : "mscorlib.dll", - "sizeofimage" : "0x474000", - "timestamp" : "0xda7f05f4", - "il_offset" : "0x0002a" - } - - ], -"unmanaged_frames" : [ -{ - "is_managed" : "false", - "native_address" : "0x462e99", - "native_offset" : "0x00000" - } -, -{ - "is_managed" : "false", - "native_address" : "0x64d4ca", - "native_offset" : "0x00000" - } -, -{ - "is_managed" : "false", - "native_address" : "0x64eca0", - "native_offset" : "0x00000" - } -, -{ - "is_managed" : "false", - "native_address" : "0x657d77", - "native_offset" : "0x00000" - } -, -{ - "is_managed" : "false", - "native_address" : "0x4ba6e5", - "native_offset" : "0x00000" - } -, -{ - "is_managed" : "false", - "native_address" : "0x7f5c7f9733c0", - "native_offset" : "0x00000" - } -, -{ - "is_managed" : "false", - "native_address" : "0x7f5c7f97236c", - "native_offset" : "0x00000" - } -, -{ - "is_managed" : "false", - "native_address" : "0x7f5c7c24bc0b", - "native_offset" : "0x00000" - } -, -{ - "is_managed" : "false", - "native_address" : "0x7f5c7c24a81e", - "native_offset" : "0x00000" - } -, -{ - "is_managed" : "true", - "guid" : "4E15BBAE-9D70-43D8-AFD6-CFD50BD9BD5A", - "token" : "0x00000", - "native_offset" : "0x0", - "filename" : "System.dll", - "sizeofimage" : "0x286000", - "timestamp" : "0x94933251", - "il_offset" : "0x00000" - } - -] -}, -{ -"is_managed" : true, -"offset_free_hash" : "0x6d8818c17", -"offset_rich_hash" : "0x6d8818d14", -"crashed" : false, -"native_thread_id" : "0x7f5b757eb700", -"thread_info_addr" : "0x7f5b24000b60", -"thread_name" : "Thread Pool Wor", -"ctx" : { - "IP" : "0x7f5c7f96e7b1", - "SP" : "0x7f5b757ea590", - "BP" : "0xaa1820" -}, -"managed_frames" : [ -{ - "is_managed" : "false", - "native_address" : "unregistered" - } -, -{ - "is_managed" : "true", - "guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", - "token" : "0x00000", - "native_offset" : "0x0", - "filename" : "mscorlib.dll", - "sizeofimage" : "0x474000", - "timestamp" : "0xda7f05f4", - "il_offset" : "0x00000" - } -, -{ - "is_managed" : "true", - "guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", - "token" : "0x6001f3d", - "native_offset" : "0x0", - "filename" : "mscorlib.dll", - "sizeofimage" : "0x474000", - "timestamp" : "0xda7f05f4", - "il_offset" : "0x00019" - } -, -{ - "is_managed" : "true", - "guid" : "4E15BBAE-9D70-43D8-AFD6-CFD50BD9BD5A", - "token" : "0x6002c9b", - "native_offset" : "0x0", - "filename" : "System.dll", - "sizeofimage" : "0x286000", - "timestamp" : "0x94933251", - "il_offset" : "0x00002" - } -, -{ - "is_managed" : "true", - "guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", - "token" : "0x6001f16", - "native_offset" : "0x0", - "filename" : "mscorlib.dll", - "sizeofimage" : "0x474000", - "timestamp" : "0xda7f05f4", - "il_offset" : "0x00014" - } -, -{ - "is_managed" : "true", - "guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", - "token" : "0x6001ebe", - "native_offset" : "0x0", - "filename" : "mscorlib.dll", - "sizeofimage" : "0x474000", - "timestamp" : "0xda7f05f4", - "il_offset" : "0x00071" - } -, -{ - "is_managed" : "true", - "guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", - "token" : "0x6001ebc", - "native_offset" : "0x0", - "filename" : "mscorlib.dll", - "sizeofimage" : "0x474000", - "timestamp" : "0xda7f05f4", - "il_offset" : "0x00000" - } -, -{ - "is_managed" : "true", - "guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", - "token" : "0x6001ebb", - "native_offset" : "0x0", - "filename" : "mscorlib.dll", - "sizeofimage" : "0x474000", - "timestamp" : "0xda7f05f4", - "il_offset" : "0x0002b" - } -, -{ - "is_managed" : "true", - "guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", - "token" : "0x6001f18", - "native_offset" : "0x0", - "filename" : "mscorlib.dll", - "sizeofimage" : "0x474000", - "timestamp" : "0xda7f05f4", - "il_offset" : "0x00008" - } -, -{ - "is_managed" : "true", - "guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", - "token" : "0x00000", - "native_offset" : "0x0", - "filename" : "mscorlib.dll", - "sizeofimage" : "0x474000", - "timestamp" : "0xda7f05f4", - "il_offset" : "0x0002a" - } - -], -"unmanaged_frames" : [ -{ -"is_managed" : "false", -"native_address" : "0x462e99", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x64d4ca", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x64eca0", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x657d77", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x4ba6e5", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f9733c0", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f96e7b1", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x70ca6b", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x717454", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x654e90", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x5ecd4b", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x00000", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x00000" -} - -] -}, -{ -"is_managed" : false, -"offset_free_hash" : "0x0", -"offset_rich_hash" : "0x0", -"crashed" : false, -"native_thread_id" : "0x7f5ac1aad700", -"thread_info_addr" : "0x7f5abc002870", -"thread_name" : "Thread Pool Wor", -"ctx" : { -"IP" : "0x7f5c7f971618", -"SP" : "0x7f5ac1aaccb0", -"BP" : "0xa92d48" -}, -"unmanaged_frames" : [ -{ -"is_managed" : "false", -"native_address" : "0x462e99", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x64d4ca", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x64eca0", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x657d77", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x4ba6e5", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f9733c0", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f971618", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f971743", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x6b63df", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x6576a3", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f967609", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f541103", -"native_offset" : "0x00000" -} - -] -}, -{ -"is_managed" : true, -"offset_free_hash" : "0x1363e40d5d", -"offset_rich_hash" : "0x1363e41151", -"crashed" : false, -"native_thread_id" : "0x7f5c777fb700", -"thread_info_addr" : "0x7f5c64000b60", -"thread_name" : "Thread Pool Wor", -"ctx" : { -"IP" : "0x7f5c7f97236c", -"SP" : "0x7f5c777fa080", -"BP" : "0x7f5c64000b60" -}, -"managed_frames" : [ -{ -"is_managed" : "false", -"native_address" : "unregistered" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x00000", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x00000" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x60058c7", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x00010" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x6005885", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x00002" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x600586c", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x00026" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x600586b", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x000a1" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x6005407", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x000b3" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x6005409", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x00028" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x6005933", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x00000" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x6005486", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x00000" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x00000", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x0000a" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x6005488", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x00000" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x00000", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x0000a" -} -, -{ -"is_managed" : "true", -"guid" : "F0F27428-B6F4-4672-BFCC-276474714DFC", -"token" : "0x6000031", -"native_offset" : "0x0", -"filename" : "OmniSharp.Stdio.dll", -"sizeofimage" : "0xa000", -"timestamp" : "0x9f4eb15e", -"il_offset" : "0x00048" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x6004607", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x0002c" -} -, -{ -"is_managed" : "true", -"guid" : "F0F27428-B6F4-4672-BFCC-276474714DFC", -"token" : "0x600000f", -"native_offset" : "0x0", -"filename" : "OmniSharp.Stdio.dll", -"sizeofimage" : "0xa000", -"timestamp" : "0x9f4eb15e", -"il_offset" : "0x0001c" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x6002294", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x0000f" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x600238e", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x00000" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x6002391", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x00000" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x6001ebe", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x00071" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x6001ebc", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x00000" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x60023fa", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x00034" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x6002390", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x0004a" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x600238f", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x00000" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x6001fc9", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x00074" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x6001fde", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x00000" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x00000", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x0002a" -} - -], -"unmanaged_frames" : [ -{ -"is_managed" : "false", -"native_address" : "0x462e99", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x64d4ca", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x64eca0", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x657d77", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x4ba6e5", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f9733c0", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f97236c", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x5834df", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x581e16", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x6ba6b1", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x5dc4a1", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x00000", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x00000" -} - -] -}, -{ -"is_managed" : true, -"offset_free_hash" : "0xd5ed0e7ac", -"offset_rich_hash" : "0xd5ed0eccf", -"crashed" : false, -"native_thread_id" : "0x7f5b777fb700", -"thread_info_addr" : "0x7f5b64000b60", -"thread_name" : "Thread Pool Wor", -"ctx" : { -"IP" : "0x7f5c7f97236c", -"SP" : "0x7f5b777fa350", -"BP" : "0x12" -}, -"managed_frames" : [ -{ -"is_managed" : "false", -"native_address" : "unregistered" -} -, -{ -"is_managed" : "true", -"guid" : "4E15BBAE-9D70-43D8-AFD6-CFD50BD9BD5A", -"token" : "0x00000", -"native_offset" : "0x0", -"filename" : "System.dll", -"sizeofimage" : "0x286000", -"timestamp" : "0x94933251", -"il_offset" : "0x00000" -} -, -{ -"is_managed" : "true", -"guid" : "4E15BBAE-9D70-43D8-AFD6-CFD50BD9BD5A", -"token" : "0x6003e13", -"native_offset" : "0x0", -"filename" : "System.dll", -"sizeofimage" : "0x286000", -"timestamp" : "0x94933251", -"il_offset" : "0x00012" -} -, -{ -"is_managed" : "true", -"guid" : "4E15BBAE-9D70-43D8-AFD6-CFD50BD9BD5A", -"token" : "0x60041b8", -"native_offset" : "0x0", -"filename" : "System.dll", -"sizeofimage" : "0x286000", -"timestamp" : "0x94933251", -"il_offset" : "0x00027" -} -, -{ -"is_managed" : "true", -"guid" : "4E15BBAE-9D70-43D8-AFD6-CFD50BD9BD5A", -"token" : "0x60041b7", -"native_offset" : "0x0", -"filename" : "System.dll", -"sizeofimage" : "0x286000", -"timestamp" : "0x94933251", -"il_offset" : "0x002dc" -} -, -{ -"is_managed" : "true", -"guid" : "4E15BBAE-9D70-43D8-AFD6-CFD50BD9BD5A", -"token" : "0x60043ad", -"native_offset" : "0x0", -"filename" : "System.dll", -"sizeofimage" : "0x286000", -"timestamp" : "0x94933251", -"il_offset" : "0x00000" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x6002392", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x00025" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x600238e", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x00000" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x6002391", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x00000" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x6001ebe", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x00071" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x6001ebc", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x00000" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x60023fa", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x00034" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x6002390", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x0004a" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x6002506", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x00000" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x6001f16", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x00025" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x6001ebe", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x00071" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x6001ebc", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x00000" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x6001ebb", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x0002b" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x6001f17", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x0000f" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x00000", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x0002a" -} - -], -"unmanaged_frames" : [ -{ -"is_managed" : "false", -"native_address" : "0x462e99", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x64d4ca", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x64eca0", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x657d77", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x4ba6e5", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f9733c0", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f97236c", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7c24bc0b", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7c24a81e", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "true", -"guid" : "4E15BBAE-9D70-43D8-AFD6-CFD50BD9BD5A", -"token" : "0x00000", -"native_offset" : "0x0", -"filename" : "System.dll", -"sizeofimage" : "0x286000", -"timestamp" : "0x94933251", -"il_offset" : "0x00000" -} - -] -}, -{ -"is_managed" : false, -"offset_free_hash" : "0x0", -"offset_rich_hash" : "0x0", -"crashed" : false, -"native_thread_id" : "0x7f5bf19e6700", -"thread_info_addr" : "0x7f5be8000b60", -"thread_name" : "Thread Pool Wor", -"ctx" : { -"IP" : "0x7f5c7f971618", -"SP" : "0x7f5bf19e5cb0", -"BP" : "0xa92d48" -}, -"unmanaged_frames" : [ -{ -"is_managed" : "false", -"native_address" : "0x462e99", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x64d4ca", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x64eca0", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x657d77", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x4ba6e5", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f9733c0", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f971618", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f971743", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x6b63df", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x6576a3", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f967609", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f541103", -"native_offset" : "0x00000" -} - -] -}, -{ -"is_managed" : false, -"offset_free_hash" : "0x0", -"offset_rich_hash" : "0x0", -"crashed" : false, -"native_thread_id" : "0x7f5be0db4700", -"thread_info_addr" : "0x7f5bdc000b60", -"thread_name" : "Thread Pool I/O", -"ctx" : { -"IP" : "0x7f5c7f53496f", -"SP" : "0x7f5be0db3ca0", -"BP" : "0x65b240" -}, -"unmanaged_frames" : [ -{ -"is_managed" : "false", -"native_address" : "0x462e99", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x64d4ca", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x64eca0", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x657d77", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x4ba6e5", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f9733c0", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f53496f", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x65aae5", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x65bc06", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x6576a3", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f967609", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f541103", -"native_offset" : "0x00000" -} - -] -}, -{ -"is_managed" : false, -"offset_free_hash" : "0x0", -"offset_rich_hash" : "0x0", -"crashed" : false, -"native_thread_id" : "0x7f5bba23f700", -"thread_info_addr" : "0x7f5ba4000b60", -"thread_name" : "Thread Pool Wor", -"ctx" : { -"IP" : "0x7f5c7f971618", -"SP" : "0x7f5bba23ecb0", -"BP" : "0xa92d48" -}, -"unmanaged_frames" : [ -{ -"is_managed" : "false", -"native_address" : "0x462e99", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x64d4ca", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x64eca0", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x657d77", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x4ba6e5", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f9733c0", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f971618", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f971743", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x6b63df", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x6576a3", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f967609", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f541103", -"native_offset" : "0x00000" -} - -] -}, -{ -"is_managed" : false, -"offset_free_hash" : "0x0", -"offset_rich_hash" : "0x0", -"crashed" : false, -"native_thread_id" : "0x7f5ac2bf6700", -"thread_info_addr" : "0x7f5ab4000b60", -"thread_name" : "Thread Pool Wor", -"ctx" : { -"IP" : "0x7f5c7f971618", -"SP" : "0x7f5ac2bf5cb0", -"BP" : "0xa92d48" -}, -"unmanaged_frames" : [ -{ -"is_managed" : "false", -"native_address" : "0x462e99", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x64d4ca", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x64eca0", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x657d77", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x4ba6e5", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f9733c0", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f971618", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f971743", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x6b63df", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x6576a3", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f967609", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f541103", -"native_offset" : "0x00000" -} - -] -}, -{ -"is_managed" : false, -"offset_free_hash" : "0x0", -"offset_rich_hash" : "0x0", -"crashed" : false, -"native_thread_id" : "0x7f5aa7162700", -"thread_info_addr" : "0x7f5b60002870", -"thread_name" : "Thread Pool Wor", -"ctx" : { -"IP" : "0x7f5c7f971618", -"SP" : "0x7f5aa7161cb0", -"BP" : "0xa92d48" -}, -"unmanaged_frames" : [ -{ -"is_managed" : "false", -"native_address" : "0x462e99", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x64d4ca", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x64eca0", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x657d77", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x4ba6e5", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f9733c0", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f971618", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f971743", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x6b63df", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x6576a3", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f967609", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f541103", -"native_offset" : "0x00000" -} - -] -}, -{ -"is_managed" : false, -"offset_free_hash" : "0x0", -"offset_rich_hash" : "0x0", -"crashed" : false, -"native_thread_id" : "0x7f5afac21700", -"thread_info_addr" : "0x7f5ae4000b60", -"thread_name" : "Thread Pool Wor", -"ctx" : { -"IP" : "0x7f5c7f971618", -"SP" : "0x7f5afac20cb0", -"BP" : "0xa92d48" -}, -"unmanaged_frames" : [ -{ -"is_managed" : "false", -"native_address" : "0x462e99", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x64d4ca", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x64eca0", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x657d77", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x4ba6e5", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f9733c0", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f971618", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f971743", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x6b63df", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x6576a3", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f967609", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f541103", -"native_offset" : "0x00000" -} - -] -}, -{ -"is_managed" : false, -"offset_free_hash" : "0x0", -"offset_rich_hash" : "0x0", -"crashed" : false, -"native_thread_id" : "0x7f5aa9443700", -"thread_info_addr" : "0x7f5b40002870", -"thread_name" : "Thread Pool Wor", -"ctx" : { -"IP" : "0x7f5c7f971618", -"SP" : "0x7f5aa9442cb0", -"BP" : "0xa92d48" -}, -"unmanaged_frames" : [ -{ -"is_managed" : "false", -"native_address" : "0x462e99", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x64d4ca", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x64eca0", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x657d77", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x4ba6e5", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f9733c0", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f971618", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f971743", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x6b63df", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x6576a3", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f967609", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f541103", -"native_offset" : "0x00000" -} - -] -}, -{ -"is_managed" : true, -"offset_free_hash" : "0x1b27ce3945", -"offset_rich_hash" : "0x1b27ce3f7c", -"crashed" : false, -"native_thread_id" : "0x7f5acb175700", -"thread_info_addr" : "0x7f5af4085a50", -"thread_name" : "Thread Pool Wor", -"ctx" : { -"IP" : "0x7f5c7f96e376", -"SP" : "0x7f5acb172f50", -"BP" : "0x2473e30" -}, -"managed_frames" : [ -{ -"is_managed" : "false", -"native_address" : "unregistered" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x00000", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x00000" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x600204a", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x00044" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x6002036", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x00014" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x6002035", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x00000" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x6002030", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x00019" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x6002032", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x00000" -} -, -{ -"is_managed" : "true", -"guid" : "4322D44F-99C8-4AAB-9075-EFD37869F964", -"token" : "0x6000d2d", -"native_offset" : "0x0", -"filename" : "Microsoft.Build.dll", -"sizeofimage" : "0x1da000", -"timestamp" : "0xecf1af40", -"il_offset" : "0x00053" -} -, -{ -"is_managed" : "true", -"guid" : "4322D44F-99C8-4AAB-9075-EFD37869F964", -"token" : "0x6000c3f", -"native_offset" : "0x0", -"filename" : "Microsoft.Build.dll", -"sizeofimage" : "0x1da000", -"timestamp" : "0xecf1af40", -"il_offset" : "0x00007" -} -, -{ -"is_managed" : "true", -"guid" : "4322D44F-99C8-4AAB-9075-EFD37869F964", -"token" : "0x6000c42", -"native_offset" : "0x0", -"filename" : "Microsoft.Build.dll", -"sizeofimage" : "0x1da000", -"timestamp" : "0xecf1af40", -"il_offset" : "0x00007" -} -, -{ -"is_managed" : "true", -"guid" : "4322D44F-99C8-4AAB-9075-EFD37869F964", -"token" : "0x6000e75", -"native_offset" : "0x0", -"filename" : "Microsoft.Build.dll", -"sizeofimage" : "0x1da000", -"timestamp" : "0xecf1af40", -"il_offset" : "0x000d3" -} -, -{ -"is_managed" : "true", -"guid" : "4322D44F-99C8-4AAB-9075-EFD37869F964", -"token" : "0x6000e76", -"native_offset" : "0x0", -"filename" : "Microsoft.Build.dll", -"sizeofimage" : "0x1da000", -"timestamp" : "0xecf1af40", -"il_offset" : "0x00000" -} -, -{ -"is_managed" : "true", -"guid" : "4322D44F-99C8-4AAB-9075-EFD37869F964", -"token" : "0x6000e62", -"native_offset" : "0x0", -"filename" : "Microsoft.Build.dll", -"sizeofimage" : "0x1da000", -"timestamp" : "0xecf1af40", -"il_offset" : "0x00000" -} -, -{ -"is_managed" : "true", -"guid" : "4322D44F-99C8-4AAB-9075-EFD37869F964", -"token" : "0x6000e60", -"native_offset" : "0x0", -"filename" : "Microsoft.Build.dll", -"sizeofimage" : "0x1da000", -"timestamp" : "0xecf1af40", -"il_offset" : "0x00000" -} -, -{ -"is_managed" : "true", -"guid" : "4322D44F-99C8-4AAB-9075-EFD37869F964", -"token" : "0x6000e5f", -"native_offset" : "0x0", -"filename" : "Microsoft.Build.dll", -"sizeofimage" : "0x1da000", -"timestamp" : "0xecf1af40", -"il_offset" : "0x00000" -} -, -{ -"is_managed" : "true", -"guid" : "1A71FA80-2BD1-4574-8EE9-23C03674F4D4", -"token" : "0x6000034", -"native_offset" : "0x0", -"filename" : "OmniSharp.MSBuild.dll", -"sizeofimage" : "0x1e000", -"timestamp" : "0xc213212e", -"il_offset" : "0x0007b" -} -, -{ -"is_managed" : "true", -"guid" : "1A71FA80-2BD1-4574-8EE9-23C03674F4D4", -"token" : "0x60000d9", -"native_offset" : "0x0", -"filename" : "OmniSharp.MSBuild.dll", -"sizeofimage" : "0x1e000", -"timestamp" : "0xc213212e", -"il_offset" : "0x00019" -} -, -{ -"is_managed" : "true", -"guid" : "1A71FA80-2BD1-4574-8EE9-23C03674F4D4", -"token" : "0x600016c", -"native_offset" : "0x0", -"filename" : "OmniSharp.MSBuild.dll", -"sizeofimage" : "0x1e000", -"timestamp" : "0xc213212e", -"il_offset" : "0x00000" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x00000", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x00042" -} -, -{ -"is_managed" : "true", -"guid" : "1A71FA80-2BD1-4574-8EE9-23C03674F4D4", -"token" : "0x600004f", -"native_offset" : "0x0", -"filename" : "OmniSharp.MSBuild.dll", -"sizeofimage" : "0x1e000", -"timestamp" : "0xc213212e", -"il_offset" : "0x0001b" -} -, -{ -"is_managed" : "true", -"guid" : "1A71FA80-2BD1-4574-8EE9-23C03674F4D4", -"token" : "0x600004e", -"native_offset" : "0x0", -"filename" : "OmniSharp.MSBuild.dll", -"sizeofimage" : "0x1e000", -"timestamp" : "0xc213212e", -"il_offset" : "0x00020" -} -, -{ -"is_managed" : "true", -"guid" : "1A71FA80-2BD1-4574-8EE9-23C03674F4D4", -"token" : "0x600004c", -"native_offset" : "0x0", -"filename" : "OmniSharp.MSBuild.dll", -"sizeofimage" : "0x1e000", -"timestamp" : "0xc213212e", -"il_offset" : "0x000a1" -} -, -{ -"is_managed" : "true", -"guid" : "1A71FA80-2BD1-4574-8EE9-23C03674F4D4", -"token" : "0x6000167", -"native_offset" : "0x0", -"filename" : "OmniSharp.MSBuild.dll", -"sizeofimage" : "0x1e000", -"timestamp" : "0xc213212e", -"il_offset" : "0x00073" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x600462c", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x00000" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x6001ebe", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x00071" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x6001ebc", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x00000" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x600462b", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x00024" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x6002454", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x0001a" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x60023a7", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x00052" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x600238b", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x0003c" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x600228e", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x0004f" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x6002406", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x00034" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x6002412", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x00000" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x60020f6", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x00007" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x6001fe1", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x00008" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x6001fc9", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x00074" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x6001fde", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x00000" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x00000", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x0002a" -} - -], -"unmanaged_frames" : [ -{ -"is_managed" : "false", -"native_address" : "0x462e99", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x64d4ca", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x64eca0", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x657d77", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x4ba6e5", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f9733c0", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f96e376", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x70cac5", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x66fa19", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x670fdf", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x6717b8", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x654c1b", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x5ed9b3", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x00000", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x00000" -} - -] -}, -{ -"is_managed" : true, -"offset_free_hash" : "0xd5ed0e7ac", -"offset_rich_hash" : "0xd5ed0eccf", -"crashed" : false, -"native_thread_id" : "0x7f5b765f2700", -"thread_info_addr" : "0x7f5b38000b60", -"thread_name" : "Thread Pool Wor", -"ctx" : { -"IP" : "0x7f5c7f97236c", -"SP" : "0x7f5b765f1350", -"BP" : "0x1d" -}, -"managed_frames" : [ -{ -"is_managed" : "false", -"native_address" : "unregistered" -} -, -{ -"is_managed" : "true", -"guid" : "4E15BBAE-9D70-43D8-AFD6-CFD50BD9BD5A", -"token" : "0x00000", -"native_offset" : "0x0", -"filename" : "System.dll", -"sizeofimage" : "0x286000", -"timestamp" : "0x94933251", -"il_offset" : "0x00000" -} -, -{ -"is_managed" : "true", -"guid" : "4E15BBAE-9D70-43D8-AFD6-CFD50BD9BD5A", -"token" : "0x6003e13", -"native_offset" : "0x0", -"filename" : "System.dll", -"sizeofimage" : "0x286000", -"timestamp" : "0x94933251", -"il_offset" : "0x00012" -} -, -{ -"is_managed" : "true", -"guid" : "4E15BBAE-9D70-43D8-AFD6-CFD50BD9BD5A", -"token" : "0x60041b8", -"native_offset" : "0x0", -"filename" : "System.dll", -"sizeofimage" : "0x286000", -"timestamp" : "0x94933251", -"il_offset" : "0x00027" -} -, -{ -"is_managed" : "true", -"guid" : "4E15BBAE-9D70-43D8-AFD6-CFD50BD9BD5A", -"token" : "0x60041b7", -"native_offset" : "0x0", -"filename" : "System.dll", -"sizeofimage" : "0x286000", -"timestamp" : "0x94933251", -"il_offset" : "0x002dc" -} -, -{ -"is_managed" : "true", -"guid" : "4E15BBAE-9D70-43D8-AFD6-CFD50BD9BD5A", -"token" : "0x60043ad", -"native_offset" : "0x0", -"filename" : "System.dll", -"sizeofimage" : "0x286000", -"timestamp" : "0x94933251", -"il_offset" : "0x00000" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x6002392", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x00025" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x600238e", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x00000" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x6002391", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x00000" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x6001ebe", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x00071" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x6001ebc", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x00000" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x60023fa", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x00034" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x6002390", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x0004a" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x6002506", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x00000" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x6001f16", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x00025" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x6001ebe", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x00071" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x6001ebc", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x00000" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x6001ebb", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x0002b" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x6001f17", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x0000f" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x00000", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x0002a" -} - -], -"unmanaged_frames" : [ -{ -"is_managed" : "false", -"native_address" : "0x462e99", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x64d4ca", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x64eca0", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x657d77", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x4ba6e5", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f9733c0", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f97236c", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7c24bc0b", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7c24a81e", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "true", -"guid" : "4E15BBAE-9D70-43D8-AFD6-CFD50BD9BD5A", -"token" : "0x00000", -"native_offset" : "0x0", -"filename" : "System.dll", -"sizeofimage" : "0x286000", -"timestamp" : "0x94933251", -"il_offset" : "0x00000" -} - -] -}, -{ -"is_managed" : false, -"offset_free_hash" : "0x0", -"offset_rich_hash" : "0x0", -"crashed" : false, -"native_thread_id" : "0x7f5aca965700", -"thread_info_addr" : "0x7f5b1412e120", -"thread_name" : "Thread Pool Wor", -"ctx" : { -"IP" : "0x7f5c7f971618", -"SP" : "0x7f5aca964cb0", -"BP" : "0xa92d48" -}, -"unmanaged_frames" : [ -{ -"is_managed" : "false", -"native_address" : "0x462e99", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x64d4ca", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x64eca0", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x657d77", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x4ba6e5", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f9733c0", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f971618", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f971743", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x6b63df", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x6576a3", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f967609", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f541103", -"native_offset" : "0x00000" -} - -] -}, -{ -"is_managed" : false, -"offset_free_hash" : "0x0", -"offset_rich_hash" : "0x0", -"crashed" : false, -"native_thread_id" : "0x7f5bf3673700", -"thread_info_addr" : "0x7f5bec000b60", -"thread_name" : "Thread Pool Wor", -"ctx" : { -"IP" : "0x7f5c7f971618", -"SP" : "0x7f5bf3672cb0", -"BP" : "0xa92d48" -}, -"unmanaged_frames" : [ -{ -"is_managed" : "false", -"native_address" : "0x462e99", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x64d4ca", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x64eca0", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x657d77", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x4ba6e5", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f9733c0", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f971618", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f971743", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x6b63df", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x6576a3", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f967609", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f541103", -"native_offset" : "0x00000" -} - -] -}, -{ -"is_managed" : false, -"offset_free_hash" : "0x0", -"offset_rich_hash" : "0x0", -"crashed" : false, -"native_thread_id" : "0x7f5aa09b8700", -"thread_info_addr" : "0x7f5bc818b310", -"thread_name" : "Thread Pool Wor", -"ctx" : { -"IP" : "0x7f5c7f971618", -"SP" : "0x7f5aa09b7cb0", -"BP" : "0xa92d48" -}, -"unmanaged_frames" : [ -{ -"is_managed" : "false", -"native_address" : "0x462e99", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x64d4ca", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x64eca0", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x657d77", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x4ba6e5", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f9733c0", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f971618", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f971743", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x6b63df", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x6576a3", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f967609", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f541103", -"native_offset" : "0x00000" -} - -] -}, -{ -"is_managed" : true, -"offset_free_hash" : "0x71cb46c11", -"offset_rich_hash" : "0x71cb46d12", -"crashed" : false, -"native_thread_id" : "0x7f5c57dff700", -"thread_info_addr" : "0x7f5c4c000b60", -"thread_name" : "mono", -"ctx" : { -"IP" : "0x7f5c7f96e7b1", -"SP" : "0x7f5c57dfe680", -"BP" : "0xaa1820" -}, -"managed_frames" : [ -{ -"is_managed" : "false", -"native_address" : "unregistered" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x00000", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x00000" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x6001f3d", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x00019" -} -, -{ -"is_managed" : "true", -"guid" : "B122ED5B-25A5-470E-9286-8ED644084142", -"token" : "0x6000102", -"native_offset" : "0x0", -"filename" : "OmniSharp.Shared.dll", -"sizeofimage" : "0x12000", -"timestamp" : "0xd5c298d0", -"il_offset" : "0x00006" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x6001f16", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x00014" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x6001ebe", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x00071" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x6001ebc", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x00000" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x6001ebb", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x0002b" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x6001f18", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x00008" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x00000", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x0002a" -} - -], -"unmanaged_frames" : [ -{ -"is_managed" : "false", -"native_address" : "0x462e99", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x64d4ca", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x64eca0", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x657d77", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x4ba6e5", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f9733c0", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f96e7b1", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x70ca6b", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x717454", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x654e90", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x5ecd4b", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x00000", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x00000" -} - -] -}, -{ -"is_managed" : false, -"offset_free_hash" : "0x0", -"offset_rich_hash" : "0x0", -"crashed" : false, -"native_thread_id" : "0x7f5bd1a48700", -"thread_info_addr" : "0x7f5bc0000b60", -"thread_name" : "Thread Pool Wor", -"ctx" : { -"IP" : "0x7f5c7f971618", -"SP" : "0x7f5bd1a47cb0", -"BP" : "0xa92d48" -}, -"unmanaged_frames" : [ -{ -"is_managed" : "false", -"native_address" : "0x462e99", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x64d4ca", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x64eca0", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x657d77", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x4ba6e5", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f9733c0", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f971618", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f971743", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x6b63df", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x6576a3", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f967609", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f541103", -"native_offset" : "0x00000" -} - -] -}, -{ -"is_managed" : false, -"offset_free_hash" : "0x0", -"offset_rich_hash" : "0x0", -"crashed" : false, -"native_thread_id" : "0x7f5ab2bce700", -"thread_info_addr" : "0x7f5b240061f0", -"thread_name" : "Thread Pool Wor", -"ctx" : { -"IP" : "0x7f5c7f971618", -"SP" : "0x7f5ab2bcdcb0", -"BP" : "0xa92d48" -}, -"unmanaged_frames" : [ -{ -"is_managed" : "false", -"native_address" : "0x462e99", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x64d4ca", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x64eca0", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x657d77", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x4ba6e5", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f9733c0", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f971618", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f971743", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x6b63df", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x6576a3", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f967609", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f541103", -"native_offset" : "0x00000" -} - -] -}, -{ -"is_managed" : false, -"offset_free_hash" : "0x0", -"offset_rich_hash" : "0x0", -"crashed" : false, -"native_thread_id" : "0x7f5b0bc03700", -"thread_info_addr" : "0x7f5b04000b60", -"thread_name" : "Thread Pool Wor", -"ctx" : { -"IP" : "0x7f5c7f971618", -"SP" : "0x7f5b0bc02cb0", -"BP" : "0xa92d48" -}, -"unmanaged_frames" : [ -{ -"is_managed" : "false", -"native_address" : "0x462e99", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x64d4ca", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x64eca0", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x657d77", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x4ba6e5", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f9733c0", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f971618", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f971743", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x6b63df", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x6576a3", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f967609", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f541103", -"native_offset" : "0x00000" -} - -] -}, -{ -"is_managed" : false, -"offset_free_hash" : "0x0", -"offset_rich_hash" : "0x0", -"crashed" : false, -"native_thread_id" : "0x7f5aa5f59700", -"thread_info_addr" : "0x7f5b9c1436f0", -"thread_name" : "Thread Pool Wor", -"ctx" : { -"IP" : "0x7f5c7f971618", -"SP" : "0x7f5aa5f58cb0", -"BP" : "0xa92d48" -}, -"unmanaged_frames" : [ -{ -"is_managed" : "false", -"native_address" : "0x462e99", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x64d4ca", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x64eca0", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x657d77", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x4ba6e5", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f9733c0", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f971618", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f971743", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x6b63df", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x6576a3", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f967609", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f541103", -"native_offset" : "0x00000" -} - -] -}, -{ -"is_managed" : false, -"offset_free_hash" : "0x0", -"offset_rich_hash" : "0x0", -"crashed" : false, -"native_thread_id" : "0x7f5ab24c5700", -"thread_info_addr" : "0x7f5b44002870", -"thread_name" : "Thread Pool Wor", -"ctx" : { -"IP" : "0x7f5c7f971618", -"SP" : "0x7f5ab24c4cb0", -"BP" : "0xa92d48" -}, -"unmanaged_frames" : [ -{ -"is_managed" : "false", -"native_address" : "0x462e99", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x64d4ca", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x64eca0", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x657d77", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x4ba6e5", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f9733c0", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f971618", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f971743", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x6b63df", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x6576a3", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f967609", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f541103", -"native_offset" : "0x00000" -} - -] -}, -{ -"is_managed" : false, -"offset_free_hash" : "0x0", -"offset_rich_hash" : "0x0", -"crashed" : false, -"native_thread_id" : "0x7f5ac16ab700", -"thread_info_addr" : "0x7f5ad000ab20", -"thread_name" : "Thread Pool Wor", -"ctx" : { -"IP" : "0x7f5c7f971618", -"SP" : "0x7f5ac16aacb0", -"BP" : "0xa92d48" -}, -"unmanaged_frames" : [ -{ -"is_managed" : "false", -"native_address" : "0x462e99", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x64d4ca", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x64eca0", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x657d77", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x4ba6e5", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f9733c0", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f971618", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f971743", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x6b63df", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x6576a3", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f967609", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f541103", -"native_offset" : "0x00000" -} - -] -}, -{ -"is_managed" : true, -"offset_free_hash" : "0xd5ed0e7ac", -"offset_rich_hash" : "0xd5ed0eccf", -"crashed" : false, -"native_thread_id" : "0x7f5b773f9700", -"thread_info_addr" : "0x7f5b5c000b60", -"thread_name" : "Thread Pool Wor", -"ctx" : { -"IP" : "0x7f5c7f97236c", -"SP" : "0x7f5b773f8350", -"BP" : "0x14" -}, -"managed_frames" : [ -{ -"is_managed" : "false", -"native_address" : "unregistered" -} -, -{ -"is_managed" : "true", -"guid" : "4E15BBAE-9D70-43D8-AFD6-CFD50BD9BD5A", -"token" : "0x00000", -"native_offset" : "0x0", -"filename" : "System.dll", -"sizeofimage" : "0x286000", -"timestamp" : "0x94933251", -"il_offset" : "0x00000" -} -, -{ -"is_managed" : "true", -"guid" : "4E15BBAE-9D70-43D8-AFD6-CFD50BD9BD5A", -"token" : "0x6003e13", -"native_offset" : "0x0", -"filename" : "System.dll", -"sizeofimage" : "0x286000", -"timestamp" : "0x94933251", -"il_offset" : "0x00012" -} -, -{ -"is_managed" : "true", -"guid" : "4E15BBAE-9D70-43D8-AFD6-CFD50BD9BD5A", -"token" : "0x60041b8", -"native_offset" : "0x0", -"filename" : "System.dll", -"sizeofimage" : "0x286000", -"timestamp" : "0x94933251", -"il_offset" : "0x00027" -} -, -{ -"is_managed" : "true", -"guid" : "4E15BBAE-9D70-43D8-AFD6-CFD50BD9BD5A", -"token" : "0x60041b7", -"native_offset" : "0x0", -"filename" : "System.dll", -"sizeofimage" : "0x286000", -"timestamp" : "0x94933251", -"il_offset" : "0x002dc" -} -, -{ -"is_managed" : "true", -"guid" : "4E15BBAE-9D70-43D8-AFD6-CFD50BD9BD5A", -"token" : "0x60043ad", -"native_offset" : "0x0", -"filename" : "System.dll", -"sizeofimage" : "0x286000", -"timestamp" : "0x94933251", -"il_offset" : "0x00000" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x6002392", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x00025" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x600238e", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x00000" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x6002391", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x00000" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x6001ebe", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x00071" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x6001ebc", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x00000" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x60023fa", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x00034" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x6002390", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x0004a" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x6002506", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x00000" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x6001f16", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x00025" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x6001ebe", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x00071" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x6001ebc", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x00000" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x6001ebb", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x0002b" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x6001f17", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x0000f" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x00000", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x0002a" -} - -], -"unmanaged_frames" : [ -{ -"is_managed" : "false", -"native_address" : "0x462e99", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x64d4ca", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x64eca0", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x657d77", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x4ba6e5", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f9733c0", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f97236c", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7c24bc0b", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7c24a81e", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "true", -"guid" : "4E15BBAE-9D70-43D8-AFD6-CFD50BD9BD5A", -"token" : "0x00000", -"native_offset" : "0x0", -"filename" : "System.dll", -"sizeofimage" : "0x286000", -"timestamp" : "0x94933251", -"il_offset" : "0x00000" -} - -] -}, -{ -"is_managed" : false, -"offset_free_hash" : "0x0", -"offset_rich_hash" : "0x0", -"crashed" : false, -"native_thread_id" : "0x7f5c56b63700", -"thread_info_addr" : "0x7f5c40000b60", -"thread_name" : "Thread Pool Wor", -"ctx" : { -"IP" : "0x7f5c7f971618", -"SP" : "0x7f5c56b62cb0", -"BP" : "0xa92d48" -}, -"unmanaged_frames" : [ -{ -"is_managed" : "false", -"native_address" : "0x462e99", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x64d4ca", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x64eca0", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x657d77", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x4ba6e5", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f9733c0", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f971618", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f971743", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x6b63df", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x6576a3", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f967609", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f541103", -"native_offset" : "0x00000" -} - -] -}, -{ -"is_managed" : false, -"offset_free_hash" : "0x0", -"offset_rich_hash" : "0x0", -"crashed" : false, -"native_thread_id" : "0x7f5bb9e3d700", -"thread_info_addr" : "0x7f5b9c000b60", -"thread_name" : "Thread Pool Wor", -"ctx" : { -"IP" : "0x7f5c7f971618", -"SP" : "0x7f5bb9e3ccb0", -"BP" : "0xa92d48" -}, -"unmanaged_frames" : [ -{ -"is_managed" : "false", -"native_address" : "0x462e99", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x64d4ca", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x64eca0", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x657d77", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x4ba6e5", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f9733c0", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f971618", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f971743", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x6b63df", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x6576a3", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f967609", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f541103", -"native_offset" : "0x00000" -} - -] -}, -{ -"is_managed" : false, -"offset_free_hash" : "0x0", -"offset_rich_hash" : "0x0", -"crashed" : false, -"native_thread_id" : "0x7f5c135de700", -"thread_info_addr" : "0x7f5c04000b60", -"thread_name" : "Thread Pool Wor", -"ctx" : { -"IP" : "0x7f5c7f971618", -"SP" : "0x7f5c135ddcb0", -"BP" : "0xa92d48" -}, -"unmanaged_frames" : [ -{ -"is_managed" : "false", -"native_address" : "0x462e99", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x64d4ca", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x64eca0", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x657d77", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x4ba6e5", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f9733c0", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f971618", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f971743", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x6b63df", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x6576a3", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f967609", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f541103", -"native_offset" : "0x00000" -} - -] -}, -{ -"is_managed" : false, -"offset_free_hash" : "0x0", -"offset_rich_hash" : "0x0", -"crashed" : false, -"native_thread_id" : "0x7f5b8cd7b700", -"thread_info_addr" : "0x7f5b88000b60", -"thread_name" : "Thread Pool Wor", -"ctx" : { -"IP" : "0x7f5c7f971618", -"SP" : "0x7f5b8cd7acb0", -"BP" : "0xa92d48" -}, -"unmanaged_frames" : [ -{ -"is_managed" : "false", -"native_address" : "0x462e99", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x64d4ca", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x64eca0", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x657d77", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x4ba6e5", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f9733c0", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f971618", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f971743", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x6b63df", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x6576a3", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f967609", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f541103", -"native_offset" : "0x00000" -} - -] -}, -{ -"is_managed" : false, -"offset_free_hash" : "0x0", -"offset_rich_hash" : "0x0", -"crashed" : false, -"native_thread_id" : "0x7f5aa6d60700", -"thread_info_addr" : "0x7f5b68002870", -"thread_name" : "Thread Pool Wor", -"ctx" : { -"IP" : "0x7f5c7f971618", -"SP" : "0x7f5aa6d5fcb0", -"BP" : "0xa92d48" -}, -"unmanaged_frames" : [ -{ -"is_managed" : "false", -"native_address" : "0x462e99", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x64d4ca", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x64eca0", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x657d77", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x4ba6e5", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f9733c0", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f971618", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f971743", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x6b63df", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x6576a3", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f967609", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f541103", -"native_offset" : "0x00000" -} - -] -}, -{ -"is_managed" : false, -"offset_free_hash" : "0x0", -"offset_rich_hash" : "0x0", -"crashed" : false, -"native_thread_id" : "0x7f5c121b6700", -"thread_info_addr" : "0x7f5c00000b60", -"thread_name" : "Thread Pool Wor", -"ctx" : { -"IP" : "0x7f5c7f971618", -"SP" : "0x7f5c121b5cb0", -"BP" : "0xa92d48" -}, -"unmanaged_frames" : [ -{ -"is_managed" : "false", -"native_address" : "0x462e99", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x64d4ca", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x64eca0", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x657d77", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x4ba6e5", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f9733c0", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f971618", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f971743", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x6b63df", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x6576a3", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f967609", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f541103", -"native_offset" : "0x00000" -} - -] -}, -{ -"is_managed" : false, -"offset_free_hash" : "0x0", -"offset_rich_hash" : "0x0", -"crashed" : false, -"native_thread_id" : "0x7f5afa81f700", -"thread_info_addr" : "0x7f5adc000b60", -"thread_name" : "Thread Pool Wor", -"ctx" : { -"IP" : "0x7f5c7f971618", -"SP" : "0x7f5afa81ecb0", -"BP" : "0xa92d48" -}, -"unmanaged_frames" : [ -{ -"is_managed" : "false", -"native_address" : "0x462e99", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x64d4ca", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x64eca0", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x657d77", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x4ba6e5", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f9733c0", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f971618", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f971743", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x6b63df", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x6576a3", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f967609", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f541103", -"native_offset" : "0x00000" -} - -] -}, -{ -"is_managed" : false, -"offset_free_hash" : "0x0", -"offset_rich_hash" : "0x0", -"crashed" : false, -"native_thread_id" : "0x7f5aa9041700", -"thread_info_addr" : "0x7f5b48002870", -"thread_name" : "Thread Pool Wor", -"ctx" : { -"IP" : "0x7f5c7f971618", -"SP" : "0x7f5aa9040cb0", -"BP" : "0xa92d48" -}, -"unmanaged_frames" : [ -{ -"is_managed" : "false", -"native_address" : "0x462e99", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x64d4ca", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x64eca0", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x657d77", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x4ba6e5", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f9733c0", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f971618", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f971743", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x6b63df", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x6576a3", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f967609", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f541103", -"native_offset" : "0x00000" -} - -] -}, -{ -"is_managed" : true, -"offset_free_hash" : "0xd5ed0e7ac", -"offset_rich_hash" : "0xd5ed0eccf", -"crashed" : false, -"native_thread_id" : "0x7f5b761f0700", -"thread_info_addr" : "0x7f5b30000b60", -"thread_name" : "Thread Pool Wor", -"ctx" : { -"IP" : "0x7f5c7f97236c", -"SP" : "0x7f5b761ef350", -"BP" : "0x21" -}, -"managed_frames" : [ -{ -"is_managed" : "false", -"native_address" : "unregistered" -} -, -{ -"is_managed" : "true", -"guid" : "4E15BBAE-9D70-43D8-AFD6-CFD50BD9BD5A", -"token" : "0x00000", -"native_offset" : "0x0", -"filename" : "System.dll", -"sizeofimage" : "0x286000", -"timestamp" : "0x94933251", -"il_offset" : "0x00000" -} -, -{ -"is_managed" : "true", -"guid" : "4E15BBAE-9D70-43D8-AFD6-CFD50BD9BD5A", -"token" : "0x6003e13", -"native_offset" : "0x0", -"filename" : "System.dll", -"sizeofimage" : "0x286000", -"timestamp" : "0x94933251", -"il_offset" : "0x00012" -} -, -{ -"is_managed" : "true", -"guid" : "4E15BBAE-9D70-43D8-AFD6-CFD50BD9BD5A", -"token" : "0x60041b8", -"native_offset" : "0x0", -"filename" : "System.dll", -"sizeofimage" : "0x286000", -"timestamp" : "0x94933251", -"il_offset" : "0x00027" -} -, -{ -"is_managed" : "true", -"guid" : "4E15BBAE-9D70-43D8-AFD6-CFD50BD9BD5A", -"token" : "0x60041b7", -"native_offset" : "0x0", -"filename" : "System.dll", -"sizeofimage" : "0x286000", -"timestamp" : "0x94933251", -"il_offset" : "0x002dc" -} -, -{ -"is_managed" : "true", -"guid" : "4E15BBAE-9D70-43D8-AFD6-CFD50BD9BD5A", -"token" : "0x60043ad", -"native_offset" : "0x0", -"filename" : "System.dll", -"sizeofimage" : "0x286000", -"timestamp" : "0x94933251", -"il_offset" : "0x00000" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x6002392", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x00025" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x600238e", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x00000" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x6002391", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x00000" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x6001ebe", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x00071" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x6001ebc", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x00000" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x60023fa", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x00034" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x6002390", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x0004a" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x6002506", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x00000" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x6001f16", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x00025" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x6001ebe", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x00071" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x6001ebc", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x00000" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x6001ebb", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x0002b" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x6001f17", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x0000f" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x00000", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x0002a" -} - -], -"unmanaged_frames" : [ -{ -"is_managed" : "false", -"native_address" : "0x462e99", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x64d4ca", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x64eca0", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x657d77", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x4ba6e5", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f9733c0", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f97236c", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7c24bc0b", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7c24a81e", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "true", -"guid" : "4E15BBAE-9D70-43D8-AFD6-CFD50BD9BD5A", -"token" : "0x00000", -"native_offset" : "0x0", -"filename" : "System.dll", -"sizeofimage" : "0x286000", -"timestamp" : "0x94933251", -"il_offset" : "0x00000" -} - -] -}, -{ -"is_managed" : false, -"offset_free_hash" : "0x0", -"offset_rich_hash" : "0x0", -"crashed" : false, -"native_thread_id" : "0x7f5aca563700", -"thread_info_addr" : "0x7f5b1c038e00", -"thread_name" : "Thread Pool Wor", -"ctx" : { -"IP" : "0x7f5c7f971618", -"SP" : "0x7f5aca562cb0", -"BP" : "0xa92d48" -}, -"unmanaged_frames" : [ -{ -"is_managed" : "false", -"native_address" : "0x462e99", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x64d4ca", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x64eca0", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x657d77", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x4ba6e5", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f9733c0", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f971618", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f971743", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x6b63df", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x6576a3", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f967609", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f541103", -"native_offset" : "0x00000" -} - -] -}, -{ -"is_managed" : false, -"offset_free_hash" : "0x0", -"offset_rich_hash" : "0x0", -"crashed" : false, -"native_thread_id" : "0x7f5aa05b6700", -"thread_info_addr" : "0x7f5bcc29f0c0", -"thread_name" : "Thread Pool Wor", -"ctx" : { -"IP" : "0x7f5c7f971618", -"SP" : "0x7f5aa05b5cb0", -"BP" : "0xa92d48" -}, -"unmanaged_frames" : [ -{ -"is_managed" : "false", -"native_address" : "0x462e99", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x64d4ca", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x64eca0", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x657d77", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x4ba6e5", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f9733c0", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f971618", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f971743", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x6b63df", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x6576a3", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f967609", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f541103", -"native_offset" : "0x00000" -} - -] -}, -{ -"is_managed" : false, -"offset_free_hash" : "0x0", -"offset_rich_hash" : "0x0", -"crashed" : false, -"native_thread_id" : "0x7f5c579fd700", -"thread_info_addr" : "0x7f5c48000b60", -"thread_name" : "Thread Pool Wor", -"ctx" : { -"IP" : "0x7f5c7f971618", -"SP" : "0x7f5c579fccb0", -"BP" : "0xa92d48" -}, -"unmanaged_frames" : [ -{ -"is_managed" : "false", -"native_address" : "0x462e99", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x64d4ca", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x64eca0", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x657d77", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x4ba6e5", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f9733c0", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f971618", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f971743", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x6b63df", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x6576a3", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f967609", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f541103", -"native_offset" : "0x00000" -} - -] -}, -{ -"is_managed" : false, -"offset_free_hash" : "0x0", -"offset_rich_hash" : "0x0", -"crashed" : false, -"native_thread_id" : "0x7f5be05ee700", -"thread_info_addr" : "0x7f5bd4000b60", -"thread_name" : "Thread Pool Wor", -"ctx" : { -"IP" : "0x7f5c7f971618", -"SP" : "0x7f5be05edcb0", -"BP" : "0xa92d48" -}, -"unmanaged_frames" : [ -{ -"is_managed" : "false", -"native_address" : "0x462e99", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x64d4ca", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x64eca0", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x657d77", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x4ba6e5", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f9733c0", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f971618", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f971743", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x6b63df", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x6576a3", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f967609", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f541103", -"native_offset" : "0x00000" -} - -] -}, -{ -"is_managed" : true, -"offset_free_hash" : "0xae0302bb7", -"offset_rich_hash" : "0xae0302eae", -"crashed" : false, -"native_thread_id" : "0x7f5c12a4b700", -"thread_info_addr" : "0x7f5c08000b60", -"thread_name" : "RequestBuilder ", -"ctx" : { -"IP" : "0x7f5c7f96e376", -"SP" : "0x7f5c12a4a270", -"BP" : "0x7f5bb40081a0" -}, -"managed_frames" : [ -{ -"is_managed" : "false", -"native_address" : "unregistered" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x00000", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x00000" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x6001ef6", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x0002f" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x6001ee9", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x0000e" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x6001eeb", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x00000" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x6001e3b", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x0001d" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x6001e3a", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x000d9" -} -, -{ -"is_managed" : "true", -"guid" : "4E15BBAE-9D70-43D8-AFD6-CFD50BD9BD5A", -"token" : "0x6003b82", -"native_offset" : "0x0", -"filename" : "System.dll", -"sizeofimage" : "0x286000", -"timestamp" : "0x94933251", -"il_offset" : "0x00067" -} -, -{ -"is_managed" : "true", -"guid" : "4E15BBAE-9D70-43D8-AFD6-CFD50BD9BD5A", -"token" : "0x6004276", -"native_offset" : "0x0", -"filename" : "System.dll", -"sizeofimage" : "0x286000", -"timestamp" : "0x94933251", -"il_offset" : "0x0004d" -} -, -{ -"is_managed" : "true", -"guid" : "4322D44F-99C8-4AAB-9075-EFD37869F964", -"token" : "0x6002330", -"native_offset" : "0x0", -"filename" : "Microsoft.Build.dll", -"sizeofimage" : "0x1da000", -"timestamp" : "0xecf1af40", -"il_offset" : "0x0002e" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x6001f16", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x00014" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x6001ebe", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x00071" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x6001ebc", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x00000" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x6001ebb", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x0002b" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x6001f18", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x00008" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x00000", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x0002a" -} - -], -"unmanaged_frames" : [ -{ -"is_managed" : "false", -"native_address" : "0x462e99", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x64d4ca", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x64eca0", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x657d77", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x4ba6e5", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f9733c0", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f96e376", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x70cac5", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x66fa19", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x670fdf", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x6aa67d", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x5eb533", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x00000", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x00000" -} - -] -}, -{ -"is_managed" : false, -"offset_free_hash" : "0x0", -"offset_rich_hash" : "0x0", -"crashed" : false, -"native_thread_id" : "0x7f5aa511a700", -"thread_info_addr" : "0x7f5ba01fb700", -"thread_name" : "Thread Pool Wor", -"ctx" : { -"IP" : "0x7f5c7f971618", -"SP" : "0x7f5aa5119cb0", -"BP" : "0xa92d48" -}, -"unmanaged_frames" : [ -{ -"is_managed" : "false", -"native_address" : "0x462e99", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x64d4ca", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x64eca0", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x657d77", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x4ba6e5", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f9733c0", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f971618", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f971743", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x6b63df", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x6576a3", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f967609", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f541103", -"native_offset" : "0x00000" -} - -] -}, -{ -"is_managed" : false, -"offset_free_hash" : "0x0", -"offset_rich_hash" : "0x0", -"crashed" : false, -"native_thread_id" : "0x7f5ab1ef9700", -"thread_info_addr" : "0x7f5b2c002870", -"thread_name" : "Thread Pool Wor", -"ctx" : { -"IP" : "0x7f5c7f971618", -"SP" : "0x7f5ab1ef8cb0", -"BP" : "0xa92d48" -}, -"unmanaged_frames" : [ -{ -"is_managed" : "false", -"native_address" : "0x462e99", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x64d4ca", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x64eca0", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x657d77", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x4ba6e5", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f9733c0", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f971618", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f971743", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x6b63df", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x6576a3", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f967609", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f541103", -"native_offset" : "0x00000" -} - -] -}, -{ -"is_managed" : true, -"offset_free_hash" : "0x9bfc759f0", -"offset_rich_hash" : "0x9bfc75b7f", -"crashed" : false, -"native_thread_id" : "0x7f5c773ff700", -"thread_info_addr" : "0x7f5c58000b60", -"thread_name" : "Timer-Scheduler", -"ctx" : { -"IP" : "0x7f5c7f96e7b1", -"SP" : "0x7f5c773fdf30", -"BP" : "0x2471890" -}, -"managed_frames" : [ -{ -"is_managed" : "false", -"native_address" : "unregistered" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x00000", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x00000" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x600204a", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x00044" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x6002036", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x00014" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x6002035", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x00000" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x6002030", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x00019" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x6002033", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x00000" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x60020ef", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x0003c" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x6001f16", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x00014" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x6001ebe", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x00071" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x6001ebc", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x00000" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x6001ebb", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x0002b" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x6001f18", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x00008" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x00000", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x0002a" -} - -], -"unmanaged_frames" : [ -{ -"is_managed" : "false", -"native_address" : "0x462e99", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x64d4ca", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x64eca0", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x657d77", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x4ba6e5", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f9733c0", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f96e7b1", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x70ca6b", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x66fa19", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x67103e", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x6717b8", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x654c1b", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x5ed9b3", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x00000", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x00000" -} - -] -}, -{ -"is_managed" : false, -"offset_free_hash" : "0x0", -"offset_rich_hash" : "0x0", -"crashed" : false, -"native_thread_id" : "0x7f5acbb7a700", -"thread_info_addr" : "0x7f5adc089cc0", -"thread_name" : "Thread Pool Wor", -"ctx" : { -"IP" : "0x7f5c7f971618", -"SP" : "0x7f5acbb79cb0", -"BP" : "0xa92d48" -}, -"unmanaged_frames" : [ -{ -"is_managed" : "false", -"native_address" : "0x462e99", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x64d4ca", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x64eca0", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x657d77", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x4ba6e5", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f9733c0", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f971618", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f971743", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x6b63df", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x6576a3", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f967609", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f541103", -"native_offset" : "0x00000" -} - -] -}, -{ -"is_managed" : true, -"offset_free_hash" : "0xd5ed0e7ac", -"offset_rich_hash" : "0xd5ed0eccf", -"crashed" : false, -"native_thread_id" : "0x7f5b76ff7700", -"thread_info_addr" : "0x7f5b54000b60", -"thread_name" : "Thread Pool Wor", -"ctx" : { -"IP" : "0x7f5c7f97236c", -"SP" : "0x7f5b76ff6350", -"BP" : "0x18" -}, -"managed_frames" : [ -{ -"is_managed" : "false", -"native_address" : "unregistered" -} -, -{ -"is_managed" : "true", -"guid" : "4E15BBAE-9D70-43D8-AFD6-CFD50BD9BD5A", -"token" : "0x00000", -"native_offset" : "0x0", -"filename" : "System.dll", -"sizeofimage" : "0x286000", -"timestamp" : "0x94933251", -"il_offset" : "0x00000" -} -, -{ -"is_managed" : "true", -"guid" : "4E15BBAE-9D70-43D8-AFD6-CFD50BD9BD5A", -"token" : "0x6003e13", -"native_offset" : "0x0", -"filename" : "System.dll", -"sizeofimage" : "0x286000", -"timestamp" : "0x94933251", -"il_offset" : "0x00012" -} -, -{ -"is_managed" : "true", -"guid" : "4E15BBAE-9D70-43D8-AFD6-CFD50BD9BD5A", -"token" : "0x60041b8", -"native_offset" : "0x0", -"filename" : "System.dll", -"sizeofimage" : "0x286000", -"timestamp" : "0x94933251", -"il_offset" : "0x00027" -} -, -{ -"is_managed" : "true", -"guid" : "4E15BBAE-9D70-43D8-AFD6-CFD50BD9BD5A", -"token" : "0x60041b7", -"native_offset" : "0x0", -"filename" : "System.dll", -"sizeofimage" : "0x286000", -"timestamp" : "0x94933251", -"il_offset" : "0x002dc" -} -, -{ -"is_managed" : "true", -"guid" : "4E15BBAE-9D70-43D8-AFD6-CFD50BD9BD5A", -"token" : "0x60043ad", -"native_offset" : "0x0", -"filename" : "System.dll", -"sizeofimage" : "0x286000", -"timestamp" : "0x94933251", -"il_offset" : "0x00000" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x6002392", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x00025" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x600238e", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x00000" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x6002391", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x00000" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x6001ebe", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x00071" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x6001ebc", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x00000" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x60023fa", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x00034" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x6002390", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x0004a" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x6002506", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x00000" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x6001f16", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x00025" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x6001ebe", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x00071" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x6001ebc", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x00000" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x6001ebb", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x0002b" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x6001f17", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x0000f" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x00000", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x0002a" -} - -], -"unmanaged_frames" : [ -{ -"is_managed" : "false", -"native_address" : "0x462e99", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x64d4ca", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x64eca0", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x657d77", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x4ba6e5", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f9733c0", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f97236c", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7c24bc0b", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7c24a81e", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "true", -"guid" : "4E15BBAE-9D70-43D8-AFD6-CFD50BD9BD5A", -"token" : "0x00000", -"native_offset" : "0x0", -"filename" : "System.dll", -"sizeofimage" : "0x286000", -"timestamp" : "0x94933251", -"il_offset" : "0x00000" -} - -] -}, -{ -"is_managed" : false, -"offset_free_hash" : "0x0", -"offset_rich_hash" : "0x0", -"crashed" : false, -"native_thread_id" : "0x7f5c56761700", -"thread_info_addr" : "0x7f5c38000b60", -"thread_name" : "Thread Pool Wor", -"ctx" : { -"IP" : "0x7f5c7f971618", -"SP" : "0x7f5c56760cb0", -"BP" : "0xa92d48" -}, -"unmanaged_frames" : [ -{ -"is_managed" : "false", -"native_address" : "0x462e99", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x64d4ca", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x64eca0", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x657d77", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x4ba6e5", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f9733c0", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f971618", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f971743", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x6b63df", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x6576a3", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f967609", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f541103", -"native_offset" : "0x00000" -} - -] -}, -{ -"is_managed" : false, -"offset_free_hash" : "0x0", -"offset_rich_hash" : "0x0", -"crashed" : false, -"native_thread_id" : "0x7f5ac87f7700", -"thread_info_addr" : "0x7f5ac4000b60", -"thread_name" : "Thread Pool Wor", -"ctx" : { -"IP" : "0x7f5c7f971618", -"SP" : "0x7f5ac87f6cb0", -"BP" : "0xa92d48" -}, -"unmanaged_frames" : [ -{ -"is_managed" : "false", -"native_address" : "0x462e99", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x64d4ca", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x64eca0", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x657d77", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x4ba6e5", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f9733c0", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f971618", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f971743", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x6b63df", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x6576a3", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f967609", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f541103", -"native_offset" : "0x00000" -} - -] -}, -{ -"is_managed" : true, -"offset_free_hash" : "0x92d1d8509", -"offset_rich_hash" : "0x92d1d8834", -"crashed" : false, -"native_thread_id" : "0x7f5c7f41dfc0", -"thread_info_addr" : "0x247c240", -"thread_name" : "mono", -"ctx" : { -"IP" : "0x7f5c7f96e376", -"SP" : "0x7ffcc24e4540", -"BP" : "0x2472690" -}, -"managed_frames" : [ -{ -"is_managed" : "false", -"native_address" : "unregistered" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x00000", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x00000" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x600204a", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x00044" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x6002036", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x00014" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x6002035", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x00000" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x6002030", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x00019" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x6002032", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x00000" -} -, -{ -"is_managed" : "true", -"guid" : "71687585-38F6-45E8-803B-45D63EEEFAA0", -"token" : "0x6000006", -"native_offset" : "0x0", -"filename" : "OmniSharp.exe", -"sizeofimage" : "0x8000", -"timestamp" : "0xa1351079", -"il_offset" : "0x00182" -} -, -{ -"is_managed" : "true", -"guid" : "6AB45C39-4161-4FCD-85A7-FAD519CAB701", -"token" : "0x60000e3", -"native_offset" : "0x0", -"filename" : "OmniSharp.Host.dll", -"sizeofimage" : "0x1a000", -"timestamp" : "0x9d322109", -"il_offset" : "0x0000b" -} -, -{ -"is_managed" : "true", -"guid" : "344A1E8C-D659-4B17-B1E0-1F8DF6AE8827", -"token" : "0x60000b9", -"native_offset" : "0x0", -"filename" : "McMaster.Extensions.CommandLineUtils.dll", -"sizeofimage" : "0x28000", -"timestamp" : "0x83b188f9", -"il_offset" : "0x00039" -} -, -{ -"is_managed" : "true", -"guid" : "6AB45C39-4161-4FCD-85A7-FAD519CAB701", -"token" : "0x6000002", -"native_offset" : "0x0", -"filename" : "OmniSharp.Host.dll", -"sizeofimage" : "0x1a000", -"timestamp" : "0x9d322109", -"il_offset" : "0x00081" -} -, -{ -"is_managed" : "true", -"guid" : "71687585-38F6-45E8-803B-45D63EEEFAA0", -"token" : "0x6000004", -"native_offset" : "0x0", -"filename" : "OmniSharp.exe", -"sizeofimage" : "0x8000", -"timestamp" : "0xa1351079", -"il_offset" : "0x00028" -} -, -{ -"is_managed" : "true", -"guid" : "6AB45C39-4161-4FCD-85A7-FAD519CAB701", -"token" : "0x600001d", -"native_offset" : "0x0", -"filename" : "OmniSharp.Host.dll", -"sizeofimage" : "0x1a000", -"timestamp" : "0x9d322109", -"il_offset" : "0x0001c" -} -, -{ -"is_managed" : "true", -"guid" : "71687585-38F6-45E8-803B-45D63EEEFAA0", -"token" : "0x6000001", -"native_offset" : "0x0", -"filename" : "OmniSharp.exe", -"sizeofimage" : "0x8000", -"timestamp" : "0xa1351079", -"il_offset" : "0x00005" -} -, -{ -"is_managed" : "true", -"guid" : "71687585-38F6-45E8-803B-45D63EEEFAA0", -"token" : "0x00000", -"native_offset" : "0x0", -"filename" : "OmniSharp.exe", -"sizeofimage" : "0x8000", -"timestamp" : "0xa1351079", -"il_offset" : "0x0002a" -} - -], -"unmanaged_frames" : [ -{ -"is_managed" : "false", -"native_address" : "0x462e99", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x64d4ca", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x64eca0", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x657d77", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x4ba6e5", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f9733c0", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f96e376", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x70cac5", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x66fa19", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x670fdf", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x6717b8", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x654c1b", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x5ed9b3", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x00000", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x00000" -} - -] -}, -{ -"is_managed" : false, -"offset_free_hash" : "0x0", -"offset_rich_hash" : "0x0", -"crashed" : false, -"native_thread_id" : "0x7f5aa695e700", -"thread_info_addr" : "0x7f5b7c002980", -"thread_name" : "Thread Pool Wor", -"ctx" : { -"IP" : "0x7f5c7f971618", -"SP" : "0x7f5aa695dcb0", -"BP" : "0xa92d48" -}, -"unmanaged_frames" : [ -{ -"is_managed" : "false", -"native_address" : "0x462e99", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x64d4ca", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x64eca0", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x657d77", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x4ba6e5", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f9733c0", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f971618", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f971743", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x6b63df", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x6576a3", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f967609", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f541103", -"native_offset" : "0x00000" -} - -] -}, -{ -"is_managed" : false, -"offset_free_hash" : "0x0", -"offset_rich_hash" : "0x0", -"crashed" : false, -"native_thread_id" : "0x7f5afa41d700", -"thread_info_addr" : "0x7f5ad4000b60", -"thread_name" : "Thread Pool Wor", -"ctx" : { -"IP" : "0x7f5c7f971618", -"SP" : "0x7f5afa41ccb0", -"BP" : "0xa92d48" -}, -"unmanaged_frames" : [ -{ -"is_managed" : "false", -"native_address" : "0x462e99", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x64d4ca", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x64eca0", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x657d77", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x4ba6e5", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f9733c0", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f971618", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f971743", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x6b63df", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x6576a3", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f967609", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f541103", -"native_offset" : "0x00000" -} - -] -}, -{ -"is_managed" : true, -"offset_free_hash" : "0xd5ed0e7ac", -"offset_rich_hash" : "0xd5ed0eccf", -"crashed" : false, -"native_thread_id" : "0x7f5b8c98a700", -"thread_info_addr" : "0x7f5b80000b60", -"thread_name" : "Thread Pool Wor", -"ctx" : { -"IP" : "0x7f5c7f97236c", -"SP" : "0x7f5b8c989350", -"BP" : "0x4" -}, -"managed_frames" : [ -{ -"is_managed" : "false", -"native_address" : "unregistered" -} -, -{ -"is_managed" : "true", -"guid" : "4E15BBAE-9D70-43D8-AFD6-CFD50BD9BD5A", -"token" : "0x00000", -"native_offset" : "0x0", -"filename" : "System.dll", -"sizeofimage" : "0x286000", -"timestamp" : "0x94933251", -"il_offset" : "0x00000" -} -, -{ -"is_managed" : "true", -"guid" : "4E15BBAE-9D70-43D8-AFD6-CFD50BD9BD5A", -"token" : "0x6003e13", -"native_offset" : "0x0", -"filename" : "System.dll", -"sizeofimage" : "0x286000", -"timestamp" : "0x94933251", -"il_offset" : "0x00012" -} -, -{ -"is_managed" : "true", -"guid" : "4E15BBAE-9D70-43D8-AFD6-CFD50BD9BD5A", -"token" : "0x60041b8", -"native_offset" : "0x0", -"filename" : "System.dll", -"sizeofimage" : "0x286000", -"timestamp" : "0x94933251", -"il_offset" : "0x00027" -} -, -{ -"is_managed" : "true", -"guid" : "4E15BBAE-9D70-43D8-AFD6-CFD50BD9BD5A", -"token" : "0x60041b7", -"native_offset" : "0x0", -"filename" : "System.dll", -"sizeofimage" : "0x286000", -"timestamp" : "0x94933251", -"il_offset" : "0x002dc" -} -, -{ -"is_managed" : "true", -"guid" : "4E15BBAE-9D70-43D8-AFD6-CFD50BD9BD5A", -"token" : "0x60043ad", -"native_offset" : "0x0", -"filename" : "System.dll", -"sizeofimage" : "0x286000", -"timestamp" : "0x94933251", -"il_offset" : "0x00000" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x6002392", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x00025" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x600238e", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x00000" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x6002391", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x00000" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x6001ebe", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x00071" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x6001ebc", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x00000" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x60023fa", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x00034" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x6002390", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x0004a" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x6002506", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x00000" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x6001f16", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x00025" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x6001ebe", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x00071" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x6001ebc", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x00000" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x6001ebb", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x0002b" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x6001f17", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x0000f" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x00000", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x0002a" -} - -], -"unmanaged_frames" : [ -{ -"is_managed" : "false", -"native_address" : "0x462e99", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x64d4ca", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x64eca0", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x657d77", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x4ba6e5", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f9733c0", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f97236c", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7c24bc0b", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7c24a81e", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "true", -"guid" : "4E15BBAE-9D70-43D8-AFD6-CFD50BD9BD5A", -"token" : "0x00000", -"native_offset" : "0x0", -"filename" : "System.dll", -"sizeofimage" : "0x286000", -"timestamp" : "0x94933251", -"il_offset" : "0x00000" -} - -] -}, -{ -"is_managed" : false, -"offset_free_hash" : "0x0", -"offset_rich_hash" : "0x0", -"crashed" : false, -"native_thread_id" : "0x7f5aa8c3f700", -"thread_info_addr" : "0x7f5b50002870", -"thread_name" : "Thread Pool Wor", -"ctx" : { -"IP" : "0x7f5c7f971618", -"SP" : "0x7f5aa8c3ecb0", -"BP" : "0xa92d48" -}, -"unmanaged_frames" : [ -{ -"is_managed" : "false", -"native_address" : "0x462e99", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x64d4ca", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x64eca0", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x657d77", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x4ba6e5", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f9733c0", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f971618", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f971743", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x6b63df", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x6576a3", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f967609", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f541103", -"native_offset" : "0x00000" -} - -] -}, -{ -"is_managed" : true, -"offset_free_hash" : "0xd5ed0e7ac", -"offset_rich_hash" : "0xd5ed0eccf", -"crashed" : false, -"native_thread_id" : "0x7f5b75dee700", -"thread_info_addr" : "0x7f5b28000b60", -"thread_name" : "Thread Pool Wor", -"ctx" : { -"IP" : "0x7f5c7f97236c", -"SP" : "0x7f5b75ded350", -"BP" : "0x23" -}, -"managed_frames" : [ -{ -"is_managed" : "false", -"native_address" : "unregistered" -} -, -{ -"is_managed" : "true", -"guid" : "4E15BBAE-9D70-43D8-AFD6-CFD50BD9BD5A", -"token" : "0x00000", -"native_offset" : "0x0", -"filename" : "System.dll", -"sizeofimage" : "0x286000", -"timestamp" : "0x94933251", -"il_offset" : "0x00000" -} -, -{ -"is_managed" : "true", -"guid" : "4E15BBAE-9D70-43D8-AFD6-CFD50BD9BD5A", -"token" : "0x6003e13", -"native_offset" : "0x0", -"filename" : "System.dll", -"sizeofimage" : "0x286000", -"timestamp" : "0x94933251", -"il_offset" : "0x00012" -} -, -{ -"is_managed" : "true", -"guid" : "4E15BBAE-9D70-43D8-AFD6-CFD50BD9BD5A", -"token" : "0x60041b8", -"native_offset" : "0x0", -"filename" : "System.dll", -"sizeofimage" : "0x286000", -"timestamp" : "0x94933251", -"il_offset" : "0x00027" -} -, -{ -"is_managed" : "true", -"guid" : "4E15BBAE-9D70-43D8-AFD6-CFD50BD9BD5A", -"token" : "0x60041b7", -"native_offset" : "0x0", -"filename" : "System.dll", -"sizeofimage" : "0x286000", -"timestamp" : "0x94933251", -"il_offset" : "0x002dc" -} -, -{ -"is_managed" : "true", -"guid" : "4E15BBAE-9D70-43D8-AFD6-CFD50BD9BD5A", -"token" : "0x60043ad", -"native_offset" : "0x0", -"filename" : "System.dll", -"sizeofimage" : "0x286000", -"timestamp" : "0x94933251", -"il_offset" : "0x00000" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x6002392", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x00025" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x600238e", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x00000" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x6002391", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x00000" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x6001ebe", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x00071" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x6001ebc", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x00000" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x60023fa", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x00034" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x6002390", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x0004a" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x6002506", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x00000" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x6001f16", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x00025" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x6001ebe", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x00071" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x6001ebc", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x00000" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x6001ebb", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x0002b" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x6001f17", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x0000f" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x00000", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x0002a" -} - -], -"unmanaged_frames" : [ -{ -"is_managed" : "false", -"native_address" : "0x462e99", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x64d4ca", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x64eca0", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x657d77", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x4ba6e5", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f9733c0", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f97236c", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7c24bc0b", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7c24a81e", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "true", -"guid" : "4E15BBAE-9D70-43D8-AFD6-CFD50BD9BD5A", -"token" : "0x00000", -"native_offset" : "0x0", -"filename" : "System.dll", -"sizeofimage" : "0x286000", -"timestamp" : "0x94933251", -"il_offset" : "0x00000" -} - -] -}, -{ -"is_managed" : false, -"offset_free_hash" : "0x0", -"offset_rich_hash" : "0x0", -"crashed" : false, -"native_thread_id" : "0x7f5c77dfe700", -"thread_info_addr" : "0x7f5c68000b60", -"thread_name" : "Thread Pool Wor", -"ctx" : { -"IP" : "0x7f5c7f971618", -"SP" : "0x7f5c77dfdcb0", -"BP" : "0xa92d48" -}, -"unmanaged_frames" : [ -{ -"is_managed" : "false", -"native_address" : "0x462e99", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x64d4ca", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x64eca0", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x657d77", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x4ba6e5", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f9733c0", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f971618", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f971743", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x6b63df", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x6576a3", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f967609", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f541103", -"native_offset" : "0x00000" -} - -] -}, -{ -"is_managed" : true, -"offset_free_hash" : "0xd5ed0e7ac", -"offset_rich_hash" : "0xd5ed0eccf", -"crashed" : false, -"native_thread_id" : "0x7f5b77dfe700", -"thread_info_addr" : "0x7f5b68000b60", -"thread_name" : "Thread Pool Wor", -"ctx" : { -"IP" : "0x7f5c7f97236c", -"SP" : "0x7f5b77dfd350", -"BP" : "0xf" -}, -"managed_frames" : [ -{ -"is_managed" : "false", -"native_address" : "unregistered" -} -, -{ -"is_managed" : "true", -"guid" : "4E15BBAE-9D70-43D8-AFD6-CFD50BD9BD5A", -"token" : "0x00000", -"native_offset" : "0x0", -"filename" : "System.dll", -"sizeofimage" : "0x286000", -"timestamp" : "0x94933251", -"il_offset" : "0x00000" -} -, -{ -"is_managed" : "true", -"guid" : "4E15BBAE-9D70-43D8-AFD6-CFD50BD9BD5A", -"token" : "0x6003e13", -"native_offset" : "0x0", -"filename" : "System.dll", -"sizeofimage" : "0x286000", -"timestamp" : "0x94933251", -"il_offset" : "0x00012" -} -, -{ -"is_managed" : "true", -"guid" : "4E15BBAE-9D70-43D8-AFD6-CFD50BD9BD5A", -"token" : "0x60041b8", -"native_offset" : "0x0", -"filename" : "System.dll", -"sizeofimage" : "0x286000", -"timestamp" : "0x94933251", -"il_offset" : "0x00027" -} -, -{ -"is_managed" : "true", -"guid" : "4E15BBAE-9D70-43D8-AFD6-CFD50BD9BD5A", -"token" : "0x60041b7", -"native_offset" : "0x0", -"filename" : "System.dll", -"sizeofimage" : "0x286000", -"timestamp" : "0x94933251", -"il_offset" : "0x002dc" -} -, -{ -"is_managed" : "true", -"guid" : "4E15BBAE-9D70-43D8-AFD6-CFD50BD9BD5A", -"token" : "0x60043ad", -"native_offset" : "0x0", -"filename" : "System.dll", -"sizeofimage" : "0x286000", -"timestamp" : "0x94933251", -"il_offset" : "0x00000" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x6002392", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x00025" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x600238e", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x00000" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x6002391", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x00000" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x6001ebe", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x00071" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x6001ebc", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x00000" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x60023fa", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x00034" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x6002390", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x0004a" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x6002506", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x00000" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x6001f16", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x00025" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x6001ebe", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x00071" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x6001ebc", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x00000" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x6001ebb", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x0002b" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x6001f17", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x0000f" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x00000", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x0002a" -} - -], -"unmanaged_frames" : [ -{ -"is_managed" : "false", -"native_address" : "0x462e99", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x64d4ca", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x64eca0", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x657d77", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x4ba6e5", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f9733c0", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f97236c", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7c24bc0b", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7c24a81e", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "true", -"guid" : "4E15BBAE-9D70-43D8-AFD6-CFD50BD9BD5A", -"token" : "0x00000", -"native_offset" : "0x0", -"filename" : "System.dll", -"sizeofimage" : "0x286000", -"timestamp" : "0x94933251", -"il_offset" : "0x00000" -} - -] -}, -{ -"is_managed" : false, -"offset_free_hash" : "0x0", -"offset_rich_hash" : "0x0", -"crashed" : false, -"native_thread_id" : "0x7f5bba842700", -"thread_info_addr" : "0x7f5ba8000b60", -"thread_name" : "Thread Pool Wor", -"ctx" : { -"IP" : "0x7f5c7f971618", -"SP" : "0x7f5bba841cb0", -"BP" : "0xa92d48" -}, -"unmanaged_frames" : [ -{ -"is_managed" : "false", -"native_address" : "0x462e99", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x64d4ca", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x64eca0", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x657d77", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x4ba6e5", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f9733c0", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f971618", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f971743", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x6b63df", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x6576a3", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f967609", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f541103", -"native_offset" : "0x00000" -} - -] -}, -{ -"is_managed" : false, -"offset_free_hash" : "0x0", -"offset_rich_hash" : "0x0", -"crashed" : false, -"native_thread_id" : "0x7f5c55a26700", -"thread_info_addr" : "0x7f5c20000b60", -"thread_name" : "Thread Pool Wor", -"ctx" : { -"IP" : "0x7f5c7f971618", -"SP" : "0x7f5c55a25cb0", -"BP" : "0xa92d48" -}, -"unmanaged_frames" : [ -{ -"is_managed" : "false", -"native_address" : "0x462e99", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x64d4ca", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x64eca0", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x657d77", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x4ba6e5", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f9733c0", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f971618", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f971743", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x6b63df", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x6576a3", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f967609", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f541103", -"native_offset" : "0x00000" -} - -] -}, -{ -"is_managed" : false, -"offset_free_hash" : "0x0", -"offset_rich_hash" : "0x0", -"crashed" : false, -"native_thread_id" : "0x7f5aa4d18700", -"thread_info_addr" : "0x7f5ba8160c00", -"thread_name" : "Thread Pool Wor", -"ctx" : { -"IP" : "0x7f5c7f971618", -"SP" : "0x7f5aa4d17cb0", -"BP" : "0xa92d48" -}, -"unmanaged_frames" : [ -{ -"is_managed" : "false", -"native_address" : "0x462e99", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x64d4ca", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x64eca0", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x657d77", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x4ba6e5", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f9733c0", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f971618", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f971743", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x6b63df", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x6576a3", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f967609", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f541103", -"native_offset" : "0x00000" -} - -] -}, -{ -"is_managed" : false, -"offset_free_hash" : "0x0", -"offset_rich_hash" : "0x0", -"crashed" : false, -"native_thread_id" : "0x7f5aa7765700", -"thread_info_addr" : "0x7f5b5c002870", -"thread_name" : "Thread Pool Wor", -"ctx" : { -"IP" : "0x7f5c7f971618", -"SP" : "0x7f5aa7764cb0", -"BP" : "0xa92d48" -}, -"unmanaged_frames" : [ -{ -"is_managed" : "false", -"native_address" : "0x462e99", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x64d4ca", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x64eca0", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x657d77", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x4ba6e5", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f9733c0", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f971618", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f971743", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x6b63df", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x6576a3", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f967609", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f541103", -"native_offset" : "0x00000" -} - -] -}, -{ -"is_managed" : false, -"offset_free_hash" : "0x0", -"offset_rich_hash" : "0x0", -"crashed" : false, -"native_thread_id" : "0x7f5b75351700", -"thread_info_addr" : "0x7f5b18000b60", -"thread_name" : "Thread Pool Wor", -"ctx" : { -"IP" : "0x7f5c7f971618", -"SP" : "0x7f5b75350cb0", -"BP" : "0xa92d48" -}, -"unmanaged_frames" : [ -{ -"is_managed" : "false", -"native_address" : "0x462e99", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x64d4ca", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x64eca0", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x657d77", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x4ba6e5", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f9733c0", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f971618", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f971743", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x6b63df", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x6576a3", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f967609", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f541103", -"native_offset" : "0x00000" -} - -] -}, -{ -"is_managed" : false, -"offset_free_hash" : "0x0", -"offset_rich_hash" : "0x0", -"crashed" : false, -"native_thread_id" : "0x7f5acb778700", -"thread_info_addr" : "0x7f5ae4064240", -"thread_name" : "Thread Pool Wor", -"ctx" : { -"IP" : "0x7f5c7f971618", -"SP" : "0x7f5acb777cb0", -"BP" : "0xa92d48" -}, -"unmanaged_frames" : [ -{ -"is_managed" : "false", -"native_address" : "0x462e99", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x64d4ca", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x64eca0", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x657d77", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x4ba6e5", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f9733c0", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f971618", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f971743", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x6b63df", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x6576a3", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f967609", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f541103", -"native_offset" : "0x00000" -} - -] -}, -{ -"is_managed" : true, -"offset_free_hash" : "0xd5ed0e7ac", -"offset_rich_hash" : "0xd5ed0eccf", -"crashed" : false, -"native_thread_id" : "0x7f5b76bf5700", -"thread_info_addr" : "0x7f5b4c000b60", -"thread_name" : "Thread Pool Wor", -"ctx" : { -"IP" : "0x7f5c7f97236c", -"SP" : "0x7f5b76bf4350", -"BP" : "0x1a" -}, -"managed_frames" : [ -{ -"is_managed" : "false", -"native_address" : "unregistered" -} -, -{ -"is_managed" : "true", -"guid" : "4E15BBAE-9D70-43D8-AFD6-CFD50BD9BD5A", -"token" : "0x00000", -"native_offset" : "0x0", -"filename" : "System.dll", -"sizeofimage" : "0x286000", -"timestamp" : "0x94933251", -"il_offset" : "0x00000" -} -, -{ -"is_managed" : "true", -"guid" : "4E15BBAE-9D70-43D8-AFD6-CFD50BD9BD5A", -"token" : "0x6003e13", -"native_offset" : "0x0", -"filename" : "System.dll", -"sizeofimage" : "0x286000", -"timestamp" : "0x94933251", -"il_offset" : "0x00012" -} -, -{ -"is_managed" : "true", -"guid" : "4E15BBAE-9D70-43D8-AFD6-CFD50BD9BD5A", -"token" : "0x60041b8", -"native_offset" : "0x0", -"filename" : "System.dll", -"sizeofimage" : "0x286000", -"timestamp" : "0x94933251", -"il_offset" : "0x00027" -} -, -{ -"is_managed" : "true", -"guid" : "4E15BBAE-9D70-43D8-AFD6-CFD50BD9BD5A", -"token" : "0x60041b7", -"native_offset" : "0x0", -"filename" : "System.dll", -"sizeofimage" : "0x286000", -"timestamp" : "0x94933251", -"il_offset" : "0x002dc" -} -, -{ -"is_managed" : "true", -"guid" : "4E15BBAE-9D70-43D8-AFD6-CFD50BD9BD5A", -"token" : "0x60043ad", -"native_offset" : "0x0", -"filename" : "System.dll", -"sizeofimage" : "0x286000", -"timestamp" : "0x94933251", -"il_offset" : "0x00000" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x6002392", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x00025" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x600238e", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x00000" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x6002391", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x00000" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x6001ebe", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x00071" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x6001ebc", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x00000" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x60023fa", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x00034" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x6002390", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x0004a" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x6002506", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x00000" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x6001f16", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x00025" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x6001ebe", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x00071" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x6001ebc", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x00000" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x6001ebb", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x0002b" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x6001f17", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x0000f" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x00000", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x0002a" -} - -], -"unmanaged_frames" : [ -{ -"is_managed" : "false", -"native_address" : "0x462e99", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x64d4ca", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x64eca0", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x657d77", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x4ba6e5", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f9733c0", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f97236c", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7c24bc0b", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7c24a81e", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "true", -"guid" : "4E15BBAE-9D70-43D8-AFD6-CFD50BD9BD5A", -"token" : "0x00000", -"native_offset" : "0x0", -"filename" : "System.dll", -"sizeofimage" : "0x286000", -"timestamp" : "0x94933251", -"il_offset" : "0x00000" -} - -] -}, -{ -"is_managed" : true, -"offset_free_hash" : "0x8e3043601", -"offset_rich_hash" : "0x8e3043892", -"crashed" : false, -"native_thread_id" : "0x7f5c5635f700", -"thread_info_addr" : "0x7f5c30000b60", -"thread_name" : "In-proc Node (D", -"ctx" : { -"IP" : "0x7f5c7f96e376", -"SP" : "0x7f5c5635df10", -"BP" : "0xa91fa0" -}, -"managed_frames" : [ -{ -"is_managed" : "false", -"native_address" : "unregistered" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x00000", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x00000" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x600204b", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x000c7" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x600203d", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x000a1" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x6002040", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x00000" -} -, -{ -"is_managed" : "true", -"guid" : "4322D44F-99C8-4AAB-9075-EFD37869F964", -"token" : "0x6001301", -"native_offset" : "0x0", -"filename" : "Microsoft.Build.dll", -"sizeofimage" : "0x1da000", -"timestamp" : "0xecf1af40", -"il_offset" : "0x00047" -} -, -{ -"is_managed" : "true", -"guid" : "4322D44F-99C8-4AAB-9075-EFD37869F964", -"token" : "0x6001522", -"native_offset" : "0x0", -"filename" : "Microsoft.Build.dll", -"sizeofimage" : "0x1da000", -"timestamp" : "0xecf1af40", -"il_offset" : "0x00000" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x6001f16", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x00014" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x6001ebe", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x00071" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x6001ebc", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x00000" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x6001ebb", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x0002b" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x6001f18", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x00008" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x00000", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x0002a" -} - -], -"unmanaged_frames" : [ -{ -"is_managed" : "false", -"native_address" : "0x462e99", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x64d4ca", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x64eca0", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x657d77", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x4ba6e5", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f9733c0", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f96e376", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x70cac5", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x66f2b1", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x671709", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x654c1b", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x5ed9b3", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x00000", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x00000" -} - -] -}, -{ -"is_managed" : false, -"offset_free_hash" : "0x0", -"offset_rich_hash" : "0x0", -"crashed" : false, -"native_thread_id" : "0x7f5bd204b700", -"thread_info_addr" : "0x7f5bc4000b60", -"thread_name" : "Thread Pool Wor", -"ctx" : { -"IP" : "0x7f5c7f971618", -"SP" : "0x7f5bd204acb0", -"BP" : "0xa92d48" -}, -"unmanaged_frames" : [ -{ -"is_managed" : "false", -"native_address" : "0x462e99", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x64d4ca", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x64eca0", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x657d77", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x4ba6e5", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f9733c0", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f971618", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f971743", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x6b63df", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x6576a3", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f967609", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f541103", -"native_offset" : "0x00000" -} - -] -}, -{ -"is_managed" : true, -"offset_free_hash" : "0xae0302bb7", -"offset_rich_hash" : "0xae0302eae", -"crashed" : false, -"native_thread_id" : "0x7f5c5631e700", -"thread_info_addr" : "0x7f5c24000b60", -"thread_name" : "RequestBuilder ", -"ctx" : { -"IP" : "0x7f5c7f96e376", -"SP" : "0x7f5c5631d270", -"BP" : "0x7f5bb4008210" -}, -"managed_frames" : [ -{ -"is_managed" : "false", -"native_address" : "unregistered" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x00000", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x00000" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x6001ef6", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x0002f" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x6001ee9", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x0000e" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x6001eeb", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x00000" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x6001e3b", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x0001d" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x6001e3a", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x000d9" -} -, -{ -"is_managed" : "true", -"guid" : "4E15BBAE-9D70-43D8-AFD6-CFD50BD9BD5A", -"token" : "0x6003b82", -"native_offset" : "0x0", -"filename" : "System.dll", -"sizeofimage" : "0x286000", -"timestamp" : "0x94933251", -"il_offset" : "0x00067" -} -, -{ -"is_managed" : "true", -"guid" : "4E15BBAE-9D70-43D8-AFD6-CFD50BD9BD5A", -"token" : "0x6004276", -"native_offset" : "0x0", -"filename" : "System.dll", -"sizeofimage" : "0x286000", -"timestamp" : "0x94933251", -"il_offset" : "0x0004d" -} -, -{ -"is_managed" : "true", -"guid" : "4322D44F-99C8-4AAB-9075-EFD37869F964", -"token" : "0x6002330", -"native_offset" : "0x0", -"filename" : "Microsoft.Build.dll", -"sizeofimage" : "0x1da000", -"timestamp" : "0xecf1af40", -"il_offset" : "0x0002e" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x6001f16", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x00014" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x6001ebe", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x00071" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x6001ebc", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x00000" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x6001ebb", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x0002b" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x6001f18", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x00008" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x00000", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x0002a" -} - -], -"unmanaged_frames" : [ -{ -"is_managed" : "false", -"native_address" : "0x462e99", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x64d4ca", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x64eca0", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x657d77", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x4ba6e5", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f9733c0", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f96e376", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x70cac5", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x66fa19", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x670fdf", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x6aa67d", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x5eb533", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x00000", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x00000" -} - -] -}, -{ -"is_managed" : true, -"offset_free_hash" : "0xaebd47c26", -"offset_rich_hash" : "0xaebd47eb2", -"crashed" : false, -"native_thread_id" : "0x7f5c7445a700", -"thread_info_addr" : "0x7f5c50000b60", -"thread_name" : "mono", -"ctx" : { -"IP" : "0x7f5c7f96e376", -"SP" : "0x7f5c744592b0", -"BP" : "0x2477780" -}, -"managed_frames" : [ -{ -"is_managed" : "false", -"native_address" : "unregistered" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x00000", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x00000" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x6001ef6", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x0002f" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x6001ee9", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x0000e" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x6001eeb", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x00000" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x6001e3b", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x0001d" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x6001e3a", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x000d9" -} -, -{ -"is_managed" : "true", -"guid" : "4E15BBAE-9D70-43D8-AFD6-CFD50BD9BD5A", -"token" : "0x6003b82", -"native_offset" : "0x0", -"filename" : "System.dll", -"sizeofimage" : "0x286000", -"timestamp" : "0x94933251", -"il_offset" : "0x00067" -} -, -{ -"is_managed" : "true", -"guid" : "4E15BBAE-9D70-43D8-AFD6-CFD50BD9BD5A", -"token" : "0x6003b81", -"native_offset" : "0x0", -"filename" : "System.dll", -"sizeofimage" : "0x286000", -"timestamp" : "0x94933251", -"il_offset" : "0x00006" -} -, -{ -"is_managed" : "true", -"guid" : "4E15BBAE-9D70-43D8-AFD6-CFD50BD9BD5A", -"token" : "0x6003b7c", -"native_offset" : "0x0", -"filename" : "System.dll", -"sizeofimage" : "0x286000", -"timestamp" : "0x94933251", -"il_offset" : "0x00009" -} -, -{ -"is_managed" : "true", -"guid" : "D425A4C4-D357-418F-9029-4B510D8C538F", -"token" : "0x6000069", -"native_offset" : "0x0", -"filename" : "Microsoft.AspNetCore.Razor.LanguageServer.Common.dll", -"sizeofimage" : "0xe000", -"timestamp" : "0xe8a35612", -"il_offset" : "0x00001" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x6001f16", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x00014" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x6001ebe", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x00071" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x6001ebc", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x00000" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x6001ebb", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x0002b" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x6001f18", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x00008" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x00000", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x0002a" -} - -], -"unmanaged_frames" : [ -{ -"is_managed" : "false", -"native_address" : "0x462e99", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x64d4ca", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x64eca0", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x657d77", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x4ba6e5", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f9733c0", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f96e376", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x70cac5", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x66fa19", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x670fdf", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x6aa67d", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x5eb533", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x00000", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x00000" -} - -] -}, -{ -"is_managed" : false, -"offset_free_hash" : "0x0", -"offset_rich_hash" : "0x0", -"crashed" : false, -"native_thread_id" : "0x7f5b74b33700", -"thread_info_addr" : "0x7f5b1c000b60", -"thread_name" : "Thread Pool Wor", -"ctx" : { -"IP" : "0x7f5c7f971618", -"SP" : "0x7f5b74b32cb0", -"BP" : "0xa92d48" -}, -"unmanaged_frames" : [ -{ -"is_managed" : "false", -"native_address" : "0x462e99", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x64d4ca", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x64eca0", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x657d77", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x4ba6e5", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f9733c0", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f971618", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f971743", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x6b63df", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x6576a3", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f967609", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f541103", -"native_offset" : "0x00000" -} - -] -}, -{ -"is_managed" : false, -"offset_free_hash" : "0x0", -"offset_rich_hash" : "0x0", -"crashed" : false, -"native_thread_id" : "0x7f5aa655c700", -"thread_info_addr" : "0x7f5b8400aee0", -"thread_name" : "Thread Pool Wor", -"ctx" : { -"IP" : "0x7f5c7f971618", -"SP" : "0x7f5aa655bcb0", -"BP" : "0xa92d48" -}, -"unmanaged_frames" : [ -{ -"is_managed" : "false", -"native_address" : "0x462e99", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x64d4ca", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x64eca0", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x657d77", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x4ba6e5", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f9733c0", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f971618", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f971743", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x6b63df", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x6576a3", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f967609", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f541103", -"native_offset" : "0x00000" -} - -] -}, -{ -"is_managed" : false, -"offset_free_hash" : "0x0", -"offset_rich_hash" : "0x0", -"crashed" : false, -"native_thread_id" : "0x7f5afa01b700", -"thread_info_addr" : "0x7f5acc000b60", -"thread_name" : "Thread Pool Wor", -"ctx" : { -"IP" : "0x7f5c7f971618", -"SP" : "0x7f5afa01acb0", -"BP" : "0xa92d48" -}, -"unmanaged_frames" : [ -{ -"is_managed" : "false", -"native_address" : "0x462e99", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x64d4ca", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x64eca0", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x657d77", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x4ba6e5", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f9733c0", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f971618", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f971743", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x6b63df", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x6576a3", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f967609", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f541103", -"native_offset" : "0x00000" -} - -] -}, -{ -"is_managed" : false, -"offset_free_hash" : "0x0", -"offset_rich_hash" : "0x0", -"crashed" : false, -"native_thread_id" : "0x7f5aad59b700", -"thread_info_addr" : "0x7f5b34002870", -"thread_name" : "Thread Pool Wor", -"ctx" : { -"IP" : "0x7f5c7f971618", -"SP" : "0x7f5aad59acb0", -"BP" : "0xa92d48" -}, -"unmanaged_frames" : [ -{ -"is_managed" : "false", -"native_address" : "0x462e99", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x64d4ca", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x64eca0", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x657d77", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x4ba6e5", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f9733c0", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f971618", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f971743", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x6b63df", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x6576a3", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f967609", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f541103", -"native_offset" : "0x00000" -} - -] -}, -{ -"is_managed" : true, -"offset_free_hash" : "0xd5ed0e7ac", -"offset_rich_hash" : "0xd5ed0eccf", -"crashed" : false, -"native_thread_id" : "0x7f5b8c588700", -"thread_info_addr" : "0x7f5b78000b60", -"thread_name" : "Thread Pool Wor", -"ctx" : { -"IP" : "0x7f5c7f97236c", -"SP" : "0x7f5b8c587350", -"BP" : "0xc" -}, -"managed_frames" : [ -{ -"is_managed" : "false", -"native_address" : "unregistered" -} -, -{ -"is_managed" : "true", -"guid" : "4E15BBAE-9D70-43D8-AFD6-CFD50BD9BD5A", -"token" : "0x00000", -"native_offset" : "0x0", -"filename" : "System.dll", -"sizeofimage" : "0x286000", -"timestamp" : "0x94933251", -"il_offset" : "0x00000" -} -, -{ -"is_managed" : "true", -"guid" : "4E15BBAE-9D70-43D8-AFD6-CFD50BD9BD5A", -"token" : "0x6003e13", -"native_offset" : "0x0", -"filename" : "System.dll", -"sizeofimage" : "0x286000", -"timestamp" : "0x94933251", -"il_offset" : "0x00012" -} -, -{ -"is_managed" : "true", -"guid" : "4E15BBAE-9D70-43D8-AFD6-CFD50BD9BD5A", -"token" : "0x60041b8", -"native_offset" : "0x0", -"filename" : "System.dll", -"sizeofimage" : "0x286000", -"timestamp" : "0x94933251", -"il_offset" : "0x00027" -} -, -{ -"is_managed" : "true", -"guid" : "4E15BBAE-9D70-43D8-AFD6-CFD50BD9BD5A", -"token" : "0x60041b7", -"native_offset" : "0x0", -"filename" : "System.dll", -"sizeofimage" : "0x286000", -"timestamp" : "0x94933251", -"il_offset" : "0x002dc" -} -, -{ -"is_managed" : "true", -"guid" : "4E15BBAE-9D70-43D8-AFD6-CFD50BD9BD5A", -"token" : "0x60043ad", -"native_offset" : "0x0", -"filename" : "System.dll", -"sizeofimage" : "0x286000", -"timestamp" : "0x94933251", -"il_offset" : "0x00000" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x6002392", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x00025" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x600238e", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x00000" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x6002391", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x00000" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x6001ebe", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x00071" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x6001ebc", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x00000" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x60023fa", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x00034" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x6002390", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x0004a" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x6002506", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x00000" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x6001f16", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x00025" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x6001ebe", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x00071" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x6001ebc", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x00000" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x6001ebb", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x0002b" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x6001f17", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x0000f" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x00000", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x0002a" -} - -], -"unmanaged_frames" : [ -{ -"is_managed" : "false", -"native_address" : "0x462e99", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x64d4ca", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x64eca0", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x657d77", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x4ba6e5", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f9733c0", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f97236c", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7c24bc0b", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7c24a81e", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "true", -"guid" : "4E15BBAE-9D70-43D8-AFD6-CFD50BD9BD5A", -"token" : "0x00000", -"native_offset" : "0x0", -"filename" : "System.dll", -"sizeofimage" : "0x286000", -"timestamp" : "0x94933251", -"il_offset" : "0x00000" -} - -] -}, -{ -"is_managed" : true, -"offset_free_hash" : "0xd5ed0e7ac", -"offset_rich_hash" : "0xd5ed0eccf", -"crashed" : false, -"native_thread_id" : "0x7f5b759ec700", -"thread_info_addr" : "0x7f5b20000b60", -"thread_name" : "Thread Pool Wor", -"ctx" : { -"IP" : "0x7f5c7f97236c", -"SP" : "0x7f5b759eb350", -"BP" : "0x26" -}, -"managed_frames" : [ -{ -"is_managed" : "false", -"native_address" : "unregistered" -} -, -{ -"is_managed" : "true", -"guid" : "4E15BBAE-9D70-43D8-AFD6-CFD50BD9BD5A", -"token" : "0x00000", -"native_offset" : "0x0", -"filename" : "System.dll", -"sizeofimage" : "0x286000", -"timestamp" : "0x94933251", -"il_offset" : "0x00000" -} -, -{ -"is_managed" : "true", -"guid" : "4E15BBAE-9D70-43D8-AFD6-CFD50BD9BD5A", -"token" : "0x6003e13", -"native_offset" : "0x0", -"filename" : "System.dll", -"sizeofimage" : "0x286000", -"timestamp" : "0x94933251", -"il_offset" : "0x00012" -} -, -{ -"is_managed" : "true", -"guid" : "4E15BBAE-9D70-43D8-AFD6-CFD50BD9BD5A", -"token" : "0x60041b8", -"native_offset" : "0x0", -"filename" : "System.dll", -"sizeofimage" : "0x286000", -"timestamp" : "0x94933251", -"il_offset" : "0x00027" -} -, -{ -"is_managed" : "true", -"guid" : "4E15BBAE-9D70-43D8-AFD6-CFD50BD9BD5A", -"token" : "0x60041b7", -"native_offset" : "0x0", -"filename" : "System.dll", -"sizeofimage" : "0x286000", -"timestamp" : "0x94933251", -"il_offset" : "0x002dc" -} -, -{ -"is_managed" : "true", -"guid" : "4E15BBAE-9D70-43D8-AFD6-CFD50BD9BD5A", -"token" : "0x60043ad", -"native_offset" : "0x0", -"filename" : "System.dll", -"sizeofimage" : "0x286000", -"timestamp" : "0x94933251", -"il_offset" : "0x00000" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x6002392", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x00025" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x600238e", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x00000" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x6002391", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x00000" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x6001ebe", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x00071" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x6001ebc", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x00000" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x60023fa", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x00034" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x6002390", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x0004a" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x6002506", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x00000" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x6001f16", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x00025" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x6001ebe", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x00071" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x6001ebc", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x00000" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x6001ebb", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x0002b" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x6001f17", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x0000f" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x00000", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x0002a" -} - -], -"unmanaged_frames" : [ -{ -"is_managed" : "false", -"native_address" : "0x462e99", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x64d4ca", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x64eca0", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x657d77", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x4ba6e5", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f9733c0", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f97236c", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7c24bc0b", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7c24a81e", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "true", -"guid" : "4E15BBAE-9D70-43D8-AFD6-CFD50BD9BD5A", -"token" : "0x00000", -"native_offset" : "0x0", -"filename" : "System.dll", -"sizeofimage" : "0x286000", -"timestamp" : "0x94933251", -"il_offset" : "0x00000" -} - -] -}, -{ -"is_managed" : false, -"offset_free_hash" : "0x0", -"offset_rich_hash" : "0x0", -"crashed" : false, -"native_thread_id" : "0x7f5ac1cae700", -"thread_info_addr" : "0x7f5ab4002870", -"thread_name" : "Thread Pool Wor", -"ctx" : { -"IP" : "0x7f5c7f971618", -"SP" : "0x7f5ac1cadcb0", -"BP" : "0xa92d48" -}, -"unmanaged_frames" : [ -{ -"is_managed" : "false", -"native_address" : "0x462e99", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x64d4ca", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x64eca0", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x657d77", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x4ba6e5", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f9733c0", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f971618", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f971743", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x6b63df", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x6576a3", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f967609", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f541103", -"native_offset" : "0x00000" -} - -] -}, -{ -"is_managed" : true, -"offset_free_hash" : "0x90c3917a0", -"offset_rich_hash" : "0x90c391a98", -"crashed" : false, -"native_thread_id" : "0x7f5c779fc700", -"thread_info_addr" : "0x7f5c60000b60", -"thread_name" : "Thread Pool Wor", -"ctx" : { -"IP" : "0x7f5c7f96e7b1", -"SP" : "0x7f5c779faca0", -"BP" : "0xa91fa0" -}, -"managed_frames" : [ -{ -"is_managed" : "false", -"native_address" : "unregistered" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x00000", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x00000" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x600204b", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x000c7" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x600203d", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x000a1" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x600203e", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x0002c" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x60020d4", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x0002d" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x6001fe3", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x00007" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x6001ebe", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x00071" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x6001ebc", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x00000" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x6001fe1", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x00021" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x6001fc9", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x00074" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x6001fde", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x00000" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x00000", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x0002a" -} - -], -"unmanaged_frames" : [ -{ -"is_managed" : "false", -"native_address" : "0x462e99", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x64d4ca", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x64eca0", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x657d77", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x4ba6e5", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f9733c0", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f96e7b1", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x70ca6b", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x66f23c", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x671709", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x654c1b", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x5ed9b3", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x00000", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x00000" -} - -] -}, -{ -"is_managed" : true, -"offset_free_hash" : "0xd5ed0e7ac", -"offset_rich_hash" : "0xd5ed0eccf", -"crashed" : false, -"native_thread_id" : "0x7f5b779fc700", -"thread_info_addr" : "0x7f5b60000b60", -"thread_name" : "Thread Pool Wor", -"ctx" : { -"IP" : "0x7f5c7f97236c", -"SP" : "0x7f5b779fb350", -"BP" : "0x11" -}, -"managed_frames" : [ -{ -"is_managed" : "false", -"native_address" : "unregistered" -} -, -{ -"is_managed" : "true", -"guid" : "4E15BBAE-9D70-43D8-AFD6-CFD50BD9BD5A", -"token" : "0x00000", -"native_offset" : "0x0", -"filename" : "System.dll", -"sizeofimage" : "0x286000", -"timestamp" : "0x94933251", -"il_offset" : "0x00000" -} -, -{ -"is_managed" : "true", -"guid" : "4E15BBAE-9D70-43D8-AFD6-CFD50BD9BD5A", -"token" : "0x6003e13", -"native_offset" : "0x0", -"filename" : "System.dll", -"sizeofimage" : "0x286000", -"timestamp" : "0x94933251", -"il_offset" : "0x00012" -} -, -{ -"is_managed" : "true", -"guid" : "4E15BBAE-9D70-43D8-AFD6-CFD50BD9BD5A", -"token" : "0x60041b8", -"native_offset" : "0x0", -"filename" : "System.dll", -"sizeofimage" : "0x286000", -"timestamp" : "0x94933251", -"il_offset" : "0x00027" -} -, -{ -"is_managed" : "true", -"guid" : "4E15BBAE-9D70-43D8-AFD6-CFD50BD9BD5A", -"token" : "0x60041b7", -"native_offset" : "0x0", -"filename" : "System.dll", -"sizeofimage" : "0x286000", -"timestamp" : "0x94933251", -"il_offset" : "0x002dc" -} -, -{ -"is_managed" : "true", -"guid" : "4E15BBAE-9D70-43D8-AFD6-CFD50BD9BD5A", -"token" : "0x60043ad", -"native_offset" : "0x0", -"filename" : "System.dll", -"sizeofimage" : "0x286000", -"timestamp" : "0x94933251", -"il_offset" : "0x00000" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x6002392", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x00025" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x600238e", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x00000" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x6002391", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x00000" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x6001ebe", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x00071" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x6001ebc", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x00000" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x60023fa", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x00034" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x6002390", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x0004a" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x6002506", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x00000" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x6001f16", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x00025" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x6001ebe", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x00071" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x6001ebc", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x00000" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x6001ebb", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x0002b" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x6001f17", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x0000f" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x00000", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x0002a" -} - -], -"unmanaged_frames" : [ -{ -"is_managed" : "false", -"native_address" : "0x462e99", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x64d4ca", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x64eca0", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x657d77", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x4ba6e5", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f9733c0", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f97236c", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7c24bc0b", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7c24a81e", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "true", -"guid" : "4E15BBAE-9D70-43D8-AFD6-CFD50BD9BD5A", -"token" : "0x00000", -"native_offset" : "0x0", -"filename" : "System.dll", -"sizeofimage" : "0x286000", -"timestamp" : "0x94933251", -"il_offset" : "0x00000" -} - -] -}, -{ -"is_managed" : false, -"offset_free_hash" : "0x0", -"offset_rich_hash" : "0x0", -"crashed" : false, -"native_thread_id" : "0x7f5bf1be7700", -"thread_info_addr" : "0x7f5be4000b60", -"thread_name" : "Thread Pool Wor", -"ctx" : { -"IP" : "0x7f5c7f971618", -"SP" : "0x7f5bf1be6cb0", -"BP" : "0xa92d48" -}, -"unmanaged_frames" : [ -{ -"is_managed" : "false", -"native_address" : "0x462e99", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x64d4ca", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x64eca0", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x657d77", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x4ba6e5", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f9733c0", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f971618", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f971743", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x6b63df", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x6576a3", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f967609", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f541103", -"native_offset" : "0x00000" -} - -] -}, -{ -"is_managed" : false, -"offset_free_hash" : "0x0", -"offset_rich_hash" : "0x0", -"crashed" : false, -"native_thread_id" : "0x7f5bba440700", -"thread_info_addr" : "0x7f5ba0000b60", -"thread_name" : "Thread Pool Wor", -"ctx" : { -"IP" : "0x7f5c7f971618", -"SP" : "0x7f5bba43fcb0", -"BP" : "0xa92d48" -}, -"unmanaged_frames" : [ -{ -"is_managed" : "false", -"native_address" : "0x462e99", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x64d4ca", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x64eca0", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x657d77", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x4ba6e5", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f9733c0", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f971618", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f971743", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x6b63df", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x6576a3", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f967609", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f541103", -"native_offset" : "0x00000" -} - -] -}, -{ -"is_managed" : false, -"offset_free_hash" : "0x0", -"offset_rich_hash" : "0x0", -"crashed" : false, -"native_thread_id" : "0x7f5ac2df7700", -"thread_info_addr" : "0x7f5abc000b60", -"thread_name" : "Thread Pool Wor", -"ctx" : { -"IP" : "0x7f5c7f971618", -"SP" : "0x7f5ac2df6cb0", -"BP" : "0xa92d48" -}, -"unmanaged_frames" : [ -{ -"is_managed" : "false", -"native_address" : "0x462e99", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x64d4ca", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x64eca0", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x657d77", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x4ba6e5", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f9733c0", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f971618", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f971743", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x6b63df", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x6576a3", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f967609", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f541103", -"native_offset" : "0x00000" -} - -] -}, -{ -"is_managed" : true, -"offset_free_hash" : "0x2374905179", -"offset_rich_hash" : "0x2374906e7a", -"crashed" : true, -"native_thread_id" : "0x7f5c5549b700", -"thread_info_addr" : "0x7f5c18000b60", -"thread_name" : "RequestBuilder ", -"ctx" : { -"IP" : "0x7f5c7f5a6efd", -"SP" : "0x7f5c55497388", -"BP" : "0x7f5c083490d0" -}, -"managed_frames" : [ -{ -"is_managed" : "false", -"native_address" : "unregistered" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x00000", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x00000" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x6004b8e", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x00010" -} -, -{ -"is_managed" : "true", -"guid" : "C7C3266B-978E-4FFA-A232-563707C9B595", -"token" : "0x60001b7", -"native_offset" : "0x0", -"filename" : "Microsoft.Build.Tasks.Core.dll", -"sizeofimage" : "0x14a000", -"timestamp" : "0x923d8cb2", -"il_offset" : "0x0004d" -} -, -{ -"is_managed" : "true", -"guid" : "C7C3266B-978E-4FFA-A232-563707C9B595", -"token" : "0x6001200", -"native_offset" : "0x0", -"filename" : "Microsoft.Build.Tasks.Core.dll", -"sizeofimage" : "0x14a000", -"timestamp" : "0x923d8cb2", -"il_offset" : "0x00006" -} -, -{ -"is_managed" : "true", -"guid" : "C7C3266B-978E-4FFA-A232-563707C9B595", -"token" : "0x600154b", -"native_offset" : "0x0", -"filename" : "Microsoft.Build.Tasks.Core.dll", -"sizeofimage" : "0x14a000", -"timestamp" : "0x923d8cb2", -"il_offset" : "0x00000" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x6006521", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x00034" -} -, -{ -"is_managed" : "true", -"guid" : "C7C3266B-978E-4FFA-A232-563707C9B595", -"token" : "0x60001bc", -"native_offset" : "0x0", -"filename" : "Microsoft.Build.Tasks.Core.dll", -"sizeofimage" : "0x14a000", -"timestamp" : "0x923d8cb2", -"il_offset" : "0x00006" -} -, -{ -"is_managed" : "true", -"guid" : "C7C3266B-978E-4FFA-A232-563707C9B595", -"token" : "0x00000", -"native_offset" : "0x0", -"filename" : "Microsoft.Build.Tasks.Core.dll", -"sizeofimage" : "0x14a000", -"timestamp" : "0x923d8cb2", -"il_offset" : "0x0005c" -} -, -{ -"is_managed" : "true", -"guid" : "C7C3266B-978E-4FFA-A232-563707C9B595", -"token" : "0x6000a2d", -"native_offset" : "0x0", -"filename" : "Microsoft.Build.Tasks.Core.dll", -"sizeofimage" : "0x14a000", -"timestamp" : "0x923d8cb2", -"il_offset" : "0x00010" -} -, -{ -"is_managed" : "true", -"guid" : "C7C3266B-978E-4FFA-A232-563707C9B595", -"token" : "0x600027c", -"native_offset" : "0x0", -"filename" : "Microsoft.Build.Tasks.Core.dll", -"sizeofimage" : "0x14a000", -"timestamp" : "0x923d8cb2", -"il_offset" : "0x00023" -} -, -{ -"is_managed" : "true", -"guid" : "C7C3266B-978E-4FFA-A232-563707C9B595", -"token" : "0x600027e", -"native_offset" : "0x0", -"filename" : "Microsoft.Build.Tasks.Core.dll", -"sizeofimage" : "0x14a000", -"timestamp" : "0x923d8cb2", -"il_offset" : "0x0003a" -} -, -{ -"is_managed" : "true", -"guid" : "C7C3266B-978E-4FFA-A232-563707C9B595", -"token" : "0x600028a", -"native_offset" : "0x0", -"filename" : "Microsoft.Build.Tasks.Core.dll", -"sizeofimage" : "0x14a000", -"timestamp" : "0x923d8cb2", -"il_offset" : "0x000ea" -} -, -{ -"is_managed" : "true", -"guid" : "C7C3266B-978E-4FFA-A232-563707C9B595", -"token" : "0x6000289", -"native_offset" : "0x0", -"filename" : "Microsoft.Build.Tasks.Core.dll", -"sizeofimage" : "0x14a000", -"timestamp" : "0x923d8cb2", -"il_offset" : "0x0000a" -} -, -{ -"is_managed" : "true", -"guid" : "C7C3266B-978E-4FFA-A232-563707C9B595", -"token" : "0x6000288", -"native_offset" : "0x0", -"filename" : "Microsoft.Build.Tasks.Core.dll", -"sizeofimage" : "0x14a000", -"timestamp" : "0x923d8cb2", -"il_offset" : "0x00038" -} -, -{ -"is_managed" : "true", -"guid" : "C7C3266B-978E-4FFA-A232-563707C9B595", -"token" : "0x600032a", -"native_offset" : "0x0", -"filename" : "Microsoft.Build.Tasks.Core.dll", -"sizeofimage" : "0x14a000", -"timestamp" : "0x923d8cb2", -"il_offset" : "0x00515" -} -, -{ -"is_managed" : "true", -"guid" : "C7C3266B-978E-4FFA-A232-563707C9B595", -"token" : "0x600033b", -"native_offset" : "0x0", -"filename" : "Microsoft.Build.Tasks.Core.dll", -"sizeofimage" : "0x14a000", -"timestamp" : "0x923d8cb2", -"il_offset" : "0x00000" -} -, -{ -"is_managed" : "true", -"guid" : "4322D44F-99C8-4AAB-9075-EFD37869F964", -"token" : "0x600156c", -"native_offset" : "0x0", -"filename" : "Microsoft.Build.dll", -"sizeofimage" : "0x1da000", -"timestamp" : "0xecf1af40", -"il_offset" : "0x00029" -} -, -{ -"is_managed" : "true", -"guid" : "4322D44F-99C8-4AAB-9075-EFD37869F964", -"token" : "0x600235e", -"native_offset" : "0x0", -"filename" : "Microsoft.Build.dll", -"sizeofimage" : "0x1da000", -"timestamp" : "0xecf1af40", -"il_offset" : "0x002fc" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x6004612", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x0002c" -} -, -{ -"is_managed" : "true", -"guid" : "4322D44F-99C8-4AAB-9075-EFD37869F964", -"token" : "0x600140b", -"native_offset" : "0x0", -"filename" : "Microsoft.Build.dll", -"sizeofimage" : "0x1da000", -"timestamp" : "0xecf1af40", -"il_offset" : "0x00046" -} -, -{ -"is_managed" : "true", -"guid" : "4322D44F-99C8-4AAB-9075-EFD37869F964", -"token" : "0x6002359", -"native_offset" : "0x0", -"filename" : "Microsoft.Build.dll", -"sizeofimage" : "0x1da000", -"timestamp" : "0xecf1af40", -"il_offset" : "0x00065" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x6004612", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x0002c" -} -, -{ -"is_managed" : "true", -"guid" : "4322D44F-99C8-4AAB-9075-EFD37869F964", -"token" : "0x6001409", -"native_offset" : "0x0", -"filename" : "Microsoft.Build.dll", -"sizeofimage" : "0x1da000", -"timestamp" : "0xecf1af40", -"il_offset" : "0x00046" -} -, -{ -"is_managed" : "true", -"guid" : "4322D44F-99C8-4AAB-9075-EFD37869F964", -"token" : "0x6002355", -"native_offset" : "0x0", -"filename" : "Microsoft.Build.dll", -"sizeofimage" : "0x1da000", -"timestamp" : "0xecf1af40", -"il_offset" : "0x001f5" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x6004612", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x0002c" -} -, -{ -"is_managed" : "true", -"guid" : "4322D44F-99C8-4AAB-9075-EFD37869F964", -"token" : "0x6001404", -"native_offset" : "0x0", -"filename" : "Microsoft.Build.dll", -"sizeofimage" : "0x1da000", -"timestamp" : "0xecf1af40", -"il_offset" : "0x0003d" -} -, -{ -"is_managed" : "true", -"guid" : "4322D44F-99C8-4AAB-9075-EFD37869F964", -"token" : "0x6002353", -"native_offset" : "0x0", -"filename" : "Microsoft.Build.dll", -"sizeofimage" : "0x1da000", -"timestamp" : "0xecf1af40", -"il_offset" : "0x0015c" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x6004612", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x0002c" -} -, -{ -"is_managed" : "true", -"guid" : "4322D44F-99C8-4AAB-9075-EFD37869F964", -"token" : "0x6001403", -"native_offset" : "0x0", -"filename" : "Microsoft.Build.dll", -"sizeofimage" : "0x1da000", -"timestamp" : "0xecf1af40", -"il_offset" : "0x0002c" -} -, -{ -"is_managed" : "true", -"guid" : "4322D44F-99C8-4AAB-9075-EFD37869F964", -"token" : "0x6002351", -"native_offset" : "0x0", -"filename" : "Microsoft.Build.dll", -"sizeofimage" : "0x1da000", -"timestamp" : "0xecf1af40", -"il_offset" : "0x00187" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x6004612", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x0002c" -} -, -{ -"is_managed" : "true", -"guid" : "4322D44F-99C8-4AAB-9075-EFD37869F964", -"token" : "0x60013fe", -"native_offset" : "0x0", -"filename" : "Microsoft.Build.dll", -"sizeofimage" : "0x1da000", -"timestamp" : "0xecf1af40", -"il_offset" : "0x00061" -} -, -{ -"is_managed" : "true", -"guid" : "4322D44F-99C8-4AAB-9075-EFD37869F964", -"token" : "0x600234f", -"native_offset" : "0x0", -"filename" : "Microsoft.Build.dll", -"sizeofimage" : "0x1da000", -"timestamp" : "0xecf1af40", -"il_offset" : "0x0005f" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x6004612", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x0002c" -} -, -{ -"is_managed" : "true", -"guid" : "4322D44F-99C8-4AAB-9075-EFD37869F964", -"token" : "0x60013d8", -"native_offset" : "0x0", -"filename" : "Microsoft.Build.dll", -"sizeofimage" : "0x1da000", -"timestamp" : "0xecf1af40", -"il_offset" : "0x00046" -} -, -{ -"is_managed" : "true", -"guid" : "4322D44F-99C8-4AAB-9075-EFD37869F964", -"token" : "0x600234d", -"native_offset" : "0x0", -"filename" : "Microsoft.Build.dll", -"sizeofimage" : "0x1da000", -"timestamp" : "0xecf1af40", -"il_offset" : "0x002b6" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x6004607", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x0002c" -} -, -{ -"is_managed" : "true", -"guid" : "4322D44F-99C8-4AAB-9075-EFD37869F964", -"token" : "0x60013d1", -"native_offset" : "0x0", -"filename" : "Microsoft.Build.dll", -"sizeofimage" : "0x1da000", -"timestamp" : "0xecf1af40", -"il_offset" : "0x0003d" -} -, -{ -"is_managed" : "true", -"guid" : "4322D44F-99C8-4AAB-9075-EFD37869F964", -"token" : "0x6002347", -"native_offset" : "0x0", -"filename" : "Microsoft.Build.dll", -"sizeofimage" : "0x1da000", -"timestamp" : "0xecf1af40", -"il_offset" : "0x0041d" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x600462c", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x00000" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x6001ebe", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x00071" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x6001ebc", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x00000" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x600462b", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x00024" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x600244b", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x00000" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x6002392", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x00025" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x600238e", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x00000" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x6002391", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x00000" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x6001ebe", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x00071" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x6001ebc", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x00000" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x60023fa", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x00034" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x6002390", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x0004a" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x60024db", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x00014" -} -, -{ -"is_managed" : "true", -"guid" : "4322D44F-99C8-4AAB-9075-EFD37869F964", -"token" : "0x6002330", -"native_offset" : "0x0", -"filename" : "Microsoft.Build.dll", -"sizeofimage" : "0x1da000", -"timestamp" : "0xecf1af40", -"il_offset" : "0x0001a" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x6001f16", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x00014" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x6001ebe", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x00071" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x6001ebc", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x00000" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x6001ebb", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x0002b" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x6001f18", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x00008" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x00000", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x0002a" -} - -], -"unmanaged_frames" : [ -{ -"is_managed" : "false", -"native_address" : "0x462e99", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x64d4ca", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x64eca0", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x657f85", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x4bb3dc", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x4bb5c9", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x4651ed", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x4b40a6", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f5a6efd", -"native_offset" : "0x00000" -} - -] -}, -{ -"is_managed" : false, -"offset_free_hash" : "0x0", -"offset_rich_hash" : "0x0", -"crashed" : false, -"native_thread_id" : "0x7f5aa7363700", -"thread_info_addr" : "0x7f5b64002870", -"thread_name" : "Thread Pool Wor", -"ctx" : { -"IP" : "0x7f5c7f971618", -"SP" : "0x7f5aa7362cb0", -"BP" : "0xa92d48" -}, -"unmanaged_frames" : [ -{ -"is_managed" : "false", -"native_address" : "0x462e99", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x64d4ca", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x64eca0", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x657d77", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x4ba6e5", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f9733c0", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f971618", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f971743", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x6b63df", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x6576a3", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f967609", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f541103", -"native_offset" : "0x00000" -} - -] -}, -{ -"is_managed" : false, -"offset_free_hash" : "0x0", -"offset_rich_hash" : "0x0", -"crashed" : false, -"native_thread_id" : "0x7f5afae22700", -"thread_info_addr" : "0x7f5af0000b60", -"thread_name" : "Thread Pool Wor", -"ctx" : { -"IP" : "0x7f5c7f971618", -"SP" : "0x7f5afae21cb0", -"BP" : "0xa92d48" -}, -"unmanaged_frames" : [ -{ -"is_managed" : "false", -"native_address" : "0x462e99", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x64d4ca", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x64eca0", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x657d77", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x4ba6e5", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f9733c0", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f971618", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f971743", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x6b63df", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x6576a3", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f967609", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f541103", -"native_offset" : "0x00000" -} - -] -}, -{ -"is_managed" : false, -"offset_free_hash" : "0x0", -"offset_rich_hash" : "0x0", -"crashed" : false, -"native_thread_id" : "0x7f5acb376700", -"thread_info_addr" : "0x7f5aec01e3c0", -"thread_name" : "Thread Pool Wor", -"ctx" : { -"IP" : "0x7f5c7f971618", -"SP" : "0x7f5acb375cb0", -"BP" : "0xa92d48" -}, -"unmanaged_frames" : [ -{ -"is_managed" : "false", -"native_address" : "0x462e99", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x64d4ca", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x64eca0", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x657d77", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x4ba6e5", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f9733c0", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f971618", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f971743", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x6b63df", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x6576a3", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f967609", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f541103", -"native_offset" : "0x00000" -} - -] -}, -{ -"is_managed" : true, -"offset_free_hash" : "0xd5ed0e7ac", -"offset_rich_hash" : "0xd5ed0eccf", -"crashed" : false, -"native_thread_id" : "0x7f5b767f3700", -"thread_info_addr" : "0x7f5b44000b60", -"thread_name" : "Thread Pool Wor", -"ctx" : { -"IP" : "0x7f5c7f97236c", -"SP" : "0x7f5b767f2350", -"BP" : "0x1c" -}, -"managed_frames" : [ -{ -"is_managed" : "false", -"native_address" : "unregistered" -} -, -{ -"is_managed" : "true", -"guid" : "4E15BBAE-9D70-43D8-AFD6-CFD50BD9BD5A", -"token" : "0x00000", -"native_offset" : "0x0", -"filename" : "System.dll", -"sizeofimage" : "0x286000", -"timestamp" : "0x94933251", -"il_offset" : "0x00000" -} -, -{ -"is_managed" : "true", -"guid" : "4E15BBAE-9D70-43D8-AFD6-CFD50BD9BD5A", -"token" : "0x6003e13", -"native_offset" : "0x0", -"filename" : "System.dll", -"sizeofimage" : "0x286000", -"timestamp" : "0x94933251", -"il_offset" : "0x00012" -} -, -{ -"is_managed" : "true", -"guid" : "4E15BBAE-9D70-43D8-AFD6-CFD50BD9BD5A", -"token" : "0x60041b8", -"native_offset" : "0x0", -"filename" : "System.dll", -"sizeofimage" : "0x286000", -"timestamp" : "0x94933251", -"il_offset" : "0x00027" -} -, -{ -"is_managed" : "true", -"guid" : "4E15BBAE-9D70-43D8-AFD6-CFD50BD9BD5A", -"token" : "0x60041b7", -"native_offset" : "0x0", -"filename" : "System.dll", -"sizeofimage" : "0x286000", -"timestamp" : "0x94933251", -"il_offset" : "0x002dc" -} -, -{ -"is_managed" : "true", -"guid" : "4E15BBAE-9D70-43D8-AFD6-CFD50BD9BD5A", -"token" : "0x60043ad", -"native_offset" : "0x0", -"filename" : "System.dll", -"sizeofimage" : "0x286000", -"timestamp" : "0x94933251", -"il_offset" : "0x00000" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x6002392", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x00025" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x600238e", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x00000" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x6002391", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x00000" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x6001ebe", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x00071" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x6001ebc", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x00000" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x60023fa", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x00034" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x6002390", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x0004a" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x6002506", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x00000" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x6001f16", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x00025" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x6001ebe", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x00071" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x6001ebc", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x00000" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x6001ebb", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x0002b" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x6001f17", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x0000f" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x00000", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x0002a" -} - -], -"unmanaged_frames" : [ -{ -"is_managed" : "false", -"native_address" : "0x462e99", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x64d4ca", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x64eca0", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x657d77", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x4ba6e5", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f9733c0", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f97236c", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7c24bc0b", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7c24a81e", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "true", -"guid" : "4E15BBAE-9D70-43D8-AFD6-CFD50BD9BD5A", -"token" : "0x00000", -"native_offset" : "0x0", -"filename" : "System.dll", -"sizeofimage" : "0x286000", -"timestamp" : "0x94933251", -"il_offset" : "0x00000" -} - -] -}, -{ -"is_managed" : false, -"offset_free_hash" : "0x0", -"offset_rich_hash" : "0x0", -"crashed" : false, -"native_thread_id" : "0x7f5acab66700", -"thread_info_addr" : "0x7f5b0417f2c0", -"thread_name" : "Thread Pool Wor", -"ctx" : { -"IP" : "0x7f5c7f971618", -"SP" : "0x7f5acab65cb0", -"BP" : "0xa92d48" -}, -"unmanaged_frames" : [ -{ -"is_managed" : "false", -"native_address" : "0x462e99", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x64d4ca", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x64eca0", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x657d77", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x4ba6e5", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f9733c0", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f971618", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f971743", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x6b63df", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x6576a3", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f967609", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f541103", -"native_offset" : "0x00000" -} - -] -}, -{ -"is_managed" : false, -"offset_free_hash" : "0x0", -"offset_rich_hash" : "0x0", -"crashed" : false, -"native_thread_id" : "0x7f5aa0bb9700", -"thread_info_addr" : "0x7f5bbc041160", -"thread_name" : "Thread Pool Wor", -"ctx" : { -"IP" : "0x7f5c7f971618", -"SP" : "0x7f5aa0bb8cb0", -"BP" : "0xa92d48" -}, -"unmanaged_frames" : [ -{ -"is_managed" : "false", -"native_address" : "0x462e99", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x64d4ca", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x64eca0", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x657d77", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x4ba6e5", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f9733c0", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f971618", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f971743", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x6b63df", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x6576a3", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f967609", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f541103", -"native_offset" : "0x00000" -} - -] -}, -{ -"is_managed" : false, -"offset_free_hash" : "0x0", -"offset_rich_hash" : "0x0", -"crashed" : false, -"native_thread_id" : "0x7f5bd1c49700", -"thread_info_addr" : "0x7f5bbc000b60", -"thread_name" : "Thread Pool Wor", -"ctx" : { -"IP" : "0x7f5c7f971618", -"SP" : "0x7f5bd1c48cb0", -"BP" : "0xa92d48" -}, -"unmanaged_frames" : [ -{ -"is_managed" : "false", -"native_address" : "0x462e99", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x64d4ca", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x64eca0", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x657d77", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x4ba6e5", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f9733c0", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f971618", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f971743", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x6b63df", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x6576a3", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f967609", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f541103", -"native_offset" : "0x00000" -} - -] -}, -{ -"is_managed" : false, -"offset_free_hash" : "0x0", -"offset_rich_hash" : "0x0", -"crashed" : false, -"native_thread_id" : "0x7f5ab2dcf700", -"thread_info_addr" : "0x7f5b18242850", -"thread_name" : "Thread Pool Wor", -"ctx" : { -"IP" : "0x7f5c7f971618", -"SP" : "0x7f5ab2dcecb0", -"BP" : "0xa92d48" -}, -"unmanaged_frames" : [ -{ -"is_managed" : "false", -"native_address" : "0x462e99", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x64d4ca", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x64eca0", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x657d77", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x4ba6e5", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f9733c0", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f971618", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f971743", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x6b63df", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x6576a3", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f967609", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f541103", -"native_offset" : "0x00000" -} - -] -}, -{ -"is_managed" : false, -"offset_free_hash" : "0x0", -"offset_rich_hash" : "0x0", -"crashed" : false, -"native_thread_id" : "0x7f5b74731700", -"thread_info_addr" : "0x7f5b14000b60", -"thread_name" : "Thread Pool Wor", -"ctx" : { -"IP" : "0x7f5c7f971618", -"SP" : "0x7f5b74730cb0", -"BP" : "0xa92d48" -}, -"unmanaged_frames" : [ -{ -"is_managed" : "false", -"native_address" : "0x462e99", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x64d4ca", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x64eca0", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x657d77", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x4ba6e5", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f9733c0", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f971618", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f971743", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x6b63df", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x6576a3", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f967609", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f541103", -"native_offset" : "0x00000" -} - -] -}, -{ -"is_managed" : false, -"offset_free_hash" : "0x0", -"offset_rich_hash" : "0x0", -"crashed" : false, -"native_thread_id" : "0x7f5aa615a700", -"thread_info_addr" : "0x7f5b885b7dd0", -"thread_name" : "Thread Pool Wor", -"ctx" : { -"IP" : "0x7f5c7f971618", -"SP" : "0x7f5aa6159cb0", -"BP" : "0xa92d48" -}, -"unmanaged_frames" : [ -{ -"is_managed" : "false", -"native_address" : "0x462e99", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x64d4ca", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x64eca0", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x657d77", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x4ba6e5", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f9733c0", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f971618", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f971743", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x6b63df", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x6576a3", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f967609", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f541103", -"native_offset" : "0x00000" -} - -] -}, -{ -"is_managed" : false, -"offset_free_hash" : "0x0", -"offset_rich_hash" : "0x0", -"crashed" : false, -"native_thread_id" : "0x7f5aa415b700", -"thread_info_addr" : "0x7f5bb40a4720", -"thread_name" : "Thread Pool Wor", -"ctx" : { -"IP" : "0x7f5c7f971618", -"SP" : "0x7f5aa415acb0", -"BP" : "0xa92d48" -}, -"unmanaged_frames" : [ -{ -"is_managed" : "false", -"native_address" : "0x462e99", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x64d4ca", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x64eca0", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x657d77", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x4ba6e5", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f9733c0", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f971618", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f971743", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x6b63df", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x6576a3", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f967609", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f541103", -"native_offset" : "0x00000" -} - -] -}, -{ -"is_managed" : false, -"offset_free_hash" : "0x0", -"offset_rich_hash" : "0x0", -"crashed" : false, -"native_thread_id" : "0x7f5ab26c6700", -"thread_info_addr" : "0x7f5b38002870", -"thread_name" : "Thread Pool Wor", -"ctx" : { -"IP" : "0x7f5c7f971618", -"SP" : "0x7f5ab26c5cb0", -"BP" : "0xa92d48" -}, -"unmanaged_frames" : [ -{ -"is_managed" : "false", -"native_address" : "0x462e99", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x64d4ca", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x64eca0", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x657d77", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x4ba6e5", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f9733c0", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f971618", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f971743", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x6b63df", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x6576a3", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f967609", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f541103", -"native_offset" : "0x00000" -} - -] -}, -{ -"is_managed" : false, -"offset_free_hash" : "0x0", -"offset_rich_hash" : "0x0", -"crashed" : false, -"native_thread_id" : "0x7f5c55eab700", -"thread_info_addr" : "0x7f5c28000b60", -"thread_name" : "Thread Pool Wor", -"ctx" : { -"IP" : "0x7f5c7f971618", -"SP" : "0x7f5c55eaacb0", -"BP" : "0xa92d48" -}, -"unmanaged_frames" : [ -{ -"is_managed" : "false", -"native_address" : "0x462e99", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x64d4ca", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x64eca0", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x657d77", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x4ba6e5", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f9733c0", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f971618", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f971743", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x6b63df", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x6576a3", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f967609", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f541103", -"native_offset" : "0x00000" -} - -] -}, -{ -"is_managed" : false, -"offset_free_hash" : "0x0", -"offset_rich_hash" : "0x0", -"crashed" : false, -"native_thread_id" : "0x7f5ac18ac700", -"thread_info_addr" : "0x7f5ac409f110", -"thread_name" : "Thread Pool Wor", -"ctx" : { -"IP" : "0x7f5c7f971618", -"SP" : "0x7f5ac18abcb0", -"BP" : "0xa92d48" -}, -"unmanaged_frames" : [ -{ -"is_managed" : "false", -"native_address" : "0x462e99", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x64d4ca", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x64eca0", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x657d77", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x4ba6e5", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f9733c0", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f971618", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f971743", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x6b63df", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x6576a3", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f967609", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f541103", -"native_offset" : "0x00000" -} - -] -}, -{ -"is_managed" : true, -"offset_free_hash" : "0xd5ed0e7ac", -"offset_rich_hash" : "0xd5ed0eccf", -"crashed" : false, -"native_thread_id" : "0x7f5b775fa700", -"thread_info_addr" : "0x7f5b58000b60", -"thread_name" : "Thread Pool Wor", -"ctx" : { -"IP" : "0x7f5c7f97236c", -"SP" : "0x7f5b775f9350", -"BP" : "0x13" -}, -"managed_frames" : [ -{ -"is_managed" : "false", -"native_address" : "unregistered" -} -, -{ -"is_managed" : "true", -"guid" : "4E15BBAE-9D70-43D8-AFD6-CFD50BD9BD5A", -"token" : "0x00000", -"native_offset" : "0x0", -"filename" : "System.dll", -"sizeofimage" : "0x286000", -"timestamp" : "0x94933251", -"il_offset" : "0x00000" -} -, -{ -"is_managed" : "true", -"guid" : "4E15BBAE-9D70-43D8-AFD6-CFD50BD9BD5A", -"token" : "0x6003e13", -"native_offset" : "0x0", -"filename" : "System.dll", -"sizeofimage" : "0x286000", -"timestamp" : "0x94933251", -"il_offset" : "0x00012" -} -, -{ -"is_managed" : "true", -"guid" : "4E15BBAE-9D70-43D8-AFD6-CFD50BD9BD5A", -"token" : "0x60041b8", -"native_offset" : "0x0", -"filename" : "System.dll", -"sizeofimage" : "0x286000", -"timestamp" : "0x94933251", -"il_offset" : "0x00027" -} -, -{ -"is_managed" : "true", -"guid" : "4E15BBAE-9D70-43D8-AFD6-CFD50BD9BD5A", -"token" : "0x60041b7", -"native_offset" : "0x0", -"filename" : "System.dll", -"sizeofimage" : "0x286000", -"timestamp" : "0x94933251", -"il_offset" : "0x002dc" -} -, -{ -"is_managed" : "true", -"guid" : "4E15BBAE-9D70-43D8-AFD6-CFD50BD9BD5A", -"token" : "0x60043ad", -"native_offset" : "0x0", -"filename" : "System.dll", -"sizeofimage" : "0x286000", -"timestamp" : "0x94933251", -"il_offset" : "0x00000" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x6002392", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x00025" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x600238e", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x00000" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x6002391", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x00000" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x6001ebe", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x00071" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x6001ebc", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x00000" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x60023fa", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x00034" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x6002390", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x0004a" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x6002506", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x00000" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x6001f16", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x00025" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x6001ebe", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x00071" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x6001ebc", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x00000" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x6001ebb", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x0002b" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x6001f17", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x0000f" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x00000", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x0002a" -} - -], -"unmanaged_frames" : [ -{ -"is_managed" : "false", -"native_address" : "0x462e99", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x64d4ca", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x64eca0", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x657d77", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x4ba6e5", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f9733c0", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f97236c", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7c24bc0b", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7c24a81e", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "true", -"guid" : "4E15BBAE-9D70-43D8-AFD6-CFD50BD9BD5A", -"token" : "0x00000", -"native_offset" : "0x0", -"filename" : "System.dll", -"sizeofimage" : "0x286000", -"timestamp" : "0x94933251", -"il_offset" : "0x00000" -} - -] -}, -{ -"is_managed" : false, -"offset_free_hash" : "0x0", -"offset_rich_hash" : "0x0", -"crashed" : false, -"native_thread_id" : "0x7f5bba03e700", -"thread_info_addr" : "0x7f5b98000b60", -"thread_name" : "Thread Pool Wor", -"ctx" : { -"IP" : "0x7f5c7f971618", -"SP" : "0x7f5bba03dcb0", -"BP" : "0xa92d48" -}, -"unmanaged_frames" : [ -{ -"is_managed" : "false", -"native_address" : "0x462e99", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x64d4ca", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x64eca0", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x657d77", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x4ba6e5", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f9733c0", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f971618", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f971743", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x6b63df", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x6576a3", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f967609", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f541103", -"native_offset" : "0x00000" -} - -] -}, -{ -"is_managed" : false, -"offset_free_hash" : "0x0", -"offset_rich_hash" : "0x0", -"crashed" : false, -"native_thread_id" : "0x7f5c137df700", -"thread_info_addr" : "0x7f5c0c000b60", -"thread_name" : "Thread Pool Wor", -"ctx" : { -"IP" : "0x7f5c7f971618", -"SP" : "0x7f5c137decb0", -"BP" : "0xa92d48" -}, -"unmanaged_frames" : [ -{ -"is_managed" : "false", -"native_address" : "0x462e99", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x64d4ca", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x64eca0", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x657d77", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x4ba6e5", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f9733c0", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f971618", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f971743", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x6b63df", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x6576a3", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f967609", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f541103", -"native_offset" : "0x00000" -} - -] -}, -{ -"is_managed" : false, -"offset_free_hash" : "0x0", -"offset_rich_hash" : "0x0", -"crashed" : false, -"native_thread_id" : "0x7f5abbe73700", -"thread_info_addr" : "0x7f5ad4073720", -"thread_name" : "Thread Pool Wor", -"ctx" : { -"IP" : "0x7f5c7f971618", -"SP" : "0x7f5abbe72cb0", -"BP" : "0xa92d48" -}, -"unmanaged_frames" : [ -{ -"is_managed" : "false", -"native_address" : "0x462e99", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x64d4ca", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x64eca0", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x657d77", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x4ba6e5", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f9733c0", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f971618", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f971743", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x6b63df", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x6576a3", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f967609", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f541103", -"native_offset" : "0x00000" -} - -] -}, -{ -"is_managed" : false, -"offset_free_hash" : "0x0", -"offset_rich_hash" : "0x0", -"crashed" : false, -"native_thread_id" : "0x7f5aa6f61700", -"thread_info_addr" : "0x7f5b6c002870", -"thread_name" : "Thread Pool Wor", -"ctx" : { -"IP" : "0x7f5c7f971618", -"SP" : "0x7f5aa6f60cb0", -"BP" : "0xa92d48" -}, -"unmanaged_frames" : [ -{ -"is_managed" : "false", -"native_address" : "0x462e99", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x64d4ca", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x64eca0", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x657d77", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x4ba6e5", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f9733c0", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f971618", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f971743", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x6b63df", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x6576a3", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f967609", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f541103", -"native_offset" : "0x00000" -} - -] -}, -{ -"is_managed" : false, -"offset_free_hash" : "0x0", -"offset_rich_hash" : "0x0", -"crashed" : false, -"native_thread_id" : "0x7f5c123b7700", -"thread_info_addr" : "0x7f5bfc000b60", -"thread_name" : "Thread Pool Wor", -"ctx" : { -"IP" : "0x7f5c7f971618", -"SP" : "0x7f5c123b6cb0", -"BP" : "0xa92d48" -}, -"unmanaged_frames" : [ -{ -"is_managed" : "false", -"native_address" : "0x462e99", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x64d4ca", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x64eca0", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x657d77", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x4ba6e5", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f9733c0", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f971618", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f971743", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x6b63df", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x6576a3", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f967609", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f541103", -"native_offset" : "0x00000" -} - -] -}, -{ -"is_managed" : false, -"offset_free_hash" : "0x0", -"offset_rich_hash" : "0x0", -"crashed" : false, -"native_thread_id" : "0x7f5afaa20700", -"thread_info_addr" : "0x7f5ae8000b60", -"thread_name" : "Thread Pool Wor", -"ctx" : { -"IP" : "0x7f5c7f971618", -"SP" : "0x7f5afaa1fcb0", -"BP" : "0xa92d48" -}, -"unmanaged_frames" : [ -{ -"is_managed" : "false", -"native_address" : "0x462e99", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x64d4ca", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x64eca0", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x657d77", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x4ba6e5", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f9733c0", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f971618", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f971743", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x6b63df", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x6576a3", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f967609", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f541103", -"native_offset" : "0x00000" -} - -] -}, -{ -"is_managed" : false, -"offset_free_hash" : "0x0", -"offset_rich_hash" : "0x0", -"crashed" : false, -"native_thread_id" : "0x7f5aa9242700", -"thread_info_addr" : "0x7f5b4c002870", -"thread_name" : "Thread Pool Wor", -"ctx" : { -"IP" : "0x7f5c7f971618", -"SP" : "0x7f5aa9241cb0", -"BP" : "0xa92d48" -}, -"unmanaged_frames" : [ -{ -"is_managed" : "false", -"native_address" : "0x462e99", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x64d4ca", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x64eca0", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x657d77", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x4ba6e5", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f9733c0", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f971618", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f971743", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x6b63df", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x6576a3", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f967609", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f541103", -"native_offset" : "0x00000" -} - -] -}, -{ -"is_managed" : true, -"offset_free_hash" : "0xd5ed0e7ac", -"offset_rich_hash" : "0xd5ed0eccf", -"crashed" : false, -"native_thread_id" : "0x7f5b763f1700", -"thread_info_addr" : "0x7f5b3c000b60", -"thread_name" : "Thread Pool Wor", -"ctx" : { -"IP" : "0x7f5c7f97236c", -"SP" : "0x7f5b763f0350", -"BP" : "0x20" -}, -"managed_frames" : [ -{ -"is_managed" : "false", -"native_address" : "unregistered" -} -, -{ -"is_managed" : "true", -"guid" : "4E15BBAE-9D70-43D8-AFD6-CFD50BD9BD5A", -"token" : "0x00000", -"native_offset" : "0x0", -"filename" : "System.dll", -"sizeofimage" : "0x286000", -"timestamp" : "0x94933251", -"il_offset" : "0x00000" -} -, -{ -"is_managed" : "true", -"guid" : "4E15BBAE-9D70-43D8-AFD6-CFD50BD9BD5A", -"token" : "0x6003e13", -"native_offset" : "0x0", -"filename" : "System.dll", -"sizeofimage" : "0x286000", -"timestamp" : "0x94933251", -"il_offset" : "0x00012" -} -, -{ -"is_managed" : "true", -"guid" : "4E15BBAE-9D70-43D8-AFD6-CFD50BD9BD5A", -"token" : "0x60041b8", -"native_offset" : "0x0", -"filename" : "System.dll", -"sizeofimage" : "0x286000", -"timestamp" : "0x94933251", -"il_offset" : "0x00027" -} -, -{ -"is_managed" : "true", -"guid" : "4E15BBAE-9D70-43D8-AFD6-CFD50BD9BD5A", -"token" : "0x60041b7", -"native_offset" : "0x0", -"filename" : "System.dll", -"sizeofimage" : "0x286000", -"timestamp" : "0x94933251", -"il_offset" : "0x002dc" -} -, -{ -"is_managed" : "true", -"guid" : "4E15BBAE-9D70-43D8-AFD6-CFD50BD9BD5A", -"token" : "0x60043ad", -"native_offset" : "0x0", -"filename" : "System.dll", -"sizeofimage" : "0x286000", -"timestamp" : "0x94933251", -"il_offset" : "0x00000" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x6002392", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x00025" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x600238e", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x00000" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x6002391", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x00000" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x6001ebe", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x00071" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x6001ebc", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x00000" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x60023fa", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x00034" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x6002390", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x0004a" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x6002506", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x00000" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x6001f16", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x00025" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x6001ebe", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x00071" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x6001ebc", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x00000" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x6001ebb", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x0002b" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x6001f17", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x0000f" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x00000", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x0002a" -} - -], -"unmanaged_frames" : [ -{ -"is_managed" : "false", -"native_address" : "0x462e99", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x64d4ca", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x64eca0", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x657d77", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x4ba6e5", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f9733c0", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f97236c", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7c24bc0b", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7c24a81e", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "true", -"guid" : "4E15BBAE-9D70-43D8-AFD6-CFD50BD9BD5A", -"token" : "0x00000", -"native_offset" : "0x0", -"filename" : "System.dll", -"sizeofimage" : "0x286000", -"timestamp" : "0x94933251", -"il_offset" : "0x00000" -} - -] -}, -{ -"is_managed" : false, -"offset_free_hash" : "0x0", -"offset_rich_hash" : "0x0", -"crashed" : false, -"native_thread_id" : "0x7f5aca764700", -"thread_info_addr" : "0x7f5b10325140", -"thread_name" : "Thread Pool Wor", -"ctx" : { -"IP" : "0x7f5c7f971618", -"SP" : "0x7f5aca763cb0", -"BP" : "0xa92d48" -}, -"unmanaged_frames" : [ -{ -"is_managed" : "false", -"native_address" : "0x462e99", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x64d4ca", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x64eca0", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x657d77", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x4ba6e5", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f9733c0", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f971618", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f971743", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x6b63df", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x6576a3", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f967609", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f541103", -"native_offset" : "0x00000" -} - -] -}, -{ -"is_managed" : false, -"offset_free_hash" : "0x0", -"offset_rich_hash" : "0x0", -"crashed" : false, -"native_thread_id" : "0x7f5aa07b7700", -"thread_info_addr" : "0x7f5bc4041ed0", -"thread_name" : "Thread Pool Wor", -"ctx" : { -"IP" : "0x7f5c7f971618", -"SP" : "0x7f5aa07b6cb0", -"BP" : "0xa92d48" -}, -"unmanaged_frames" : [ -{ -"is_managed" : "false", -"native_address" : "0x462e99", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x64d4ca", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x64eca0", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x657d77", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x4ba6e5", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f9733c0", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f971618", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f971743", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x6b63df", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x6576a3", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f967609", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f541103", -"native_offset" : "0x00000" -} - -] -}, -{ -"is_managed" : false, -"offset_free_hash" : "0x0", -"offset_rich_hash" : "0x0", -"crashed" : false, -"native_thread_id" : "0x7f5c57bfe700", -"thread_info_addr" : "0x7f5c44000b60", -"thread_name" : "Thread Pool Wor", -"ctx" : { -"IP" : "0x7f5c7f971618", -"SP" : "0x7f5c57bfdcb0", -"BP" : "0xa92d48" -}, -"unmanaged_frames" : [ -{ -"is_managed" : "false", -"native_address" : "0x462e99", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x64d4ca", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x64eca0", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x657d77", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x4ba6e5", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f9733c0", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f971618", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f971743", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x6b63df", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x6576a3", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f967609", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f541103", -"native_offset" : "0x00000" -} - -] -}, -{ -"is_managed" : false, -"offset_free_hash" : "0x0", -"offset_rich_hash" : "0x0", -"crashed" : false, -"native_thread_id" : "0x7f5bd1847700", -"thread_info_addr" : "0x7f5bb4000b60", -"thread_name" : "Thread Pool Wor", -"ctx" : { -"IP" : "0x7f5c7f971618", -"SP" : "0x7f5bd1846cb0", -"BP" : "0xa92d48" -}, -"unmanaged_frames" : [ -{ -"is_managed" : "false", -"native_address" : "0x462e99", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x64d4ca", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x64eca0", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x657d77", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x4ba6e5", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f9733c0", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f971618", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f971743", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x6b63df", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x6576a3", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f967609", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f541103", -"native_offset" : "0x00000" -} - -] -}, -{ -"is_managed" : false, -"offset_free_hash" : "0x0", -"offset_rich_hash" : "0x0", -"crashed" : false, -"native_thread_id" : "0x7f5aad317700", -"thread_info_addr" : "0x7f5b30002870", -"thread_name" : "Thread Pool Wor", -"ctx" : { -"IP" : "0x7f5c7f971618", -"SP" : "0x7f5aad316cb0", -"BP" : "0xa92d48" -}, -"unmanaged_frames" : [ -{ -"is_managed" : "false", -"native_address" : "0x462e99", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x64d4ca", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x64eca0", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x657d77", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x4ba6e5", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f9733c0", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f971618", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f971743", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x6b63df", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x6576a3", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f967609", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f541103", -"native_offset" : "0x00000" -} - -] -}, -{ -"is_managed" : false, -"offset_free_hash" : "0x0", -"offset_rich_hash" : "0x0", -"crashed" : false, -"native_thread_id" : "0x7f5b0ba02700", -"thread_info_addr" : "0x7f5afc000b60", -"thread_name" : "Thread Pool Wor", -"ctx" : { -"IP" : "0x7f5c7f971618", -"SP" : "0x7f5b0ba01cb0", -"BP" : "0xa92d48" -}, -"unmanaged_frames" : [ -{ -"is_managed" : "false", -"native_address" : "0x462e99", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x64d4ca", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x64eca0", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x657d77", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x4ba6e5", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f9733c0", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f971618", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f971743", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x6b63df", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x6576a3", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f967609", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f541103", -"native_offset" : "0x00000" -} - -] -}, -{ -"is_managed" : false, -"offset_free_hash" : "0x0", -"offset_rich_hash" : "0x0", -"crashed" : false, -"native_thread_id" : "0x7f5aa531b700", -"thread_info_addr" : "0x7f5ba478c2d0", -"thread_name" : "Thread Pool Wor", -"ctx" : { -"IP" : "0x7f5c7f971618", -"SP" : "0x7f5aa531acb0", -"BP" : "0xa92d48" -}, -"unmanaged_frames" : [ -{ -"is_managed" : "false", -"native_address" : "0x462e99", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x64d4ca", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x64eca0", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x657d77", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x4ba6e5", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f9733c0", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f971618", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f971743", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x6b63df", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x6576a3", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f967609", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f541103", -"native_offset" : "0x00000" -} - -] -}, -{ -"is_managed" : false, -"offset_free_hash" : "0x0", -"offset_rich_hash" : "0x0", -"crashed" : false, -"native_thread_id" : "0x7f5ac14aa700", -"thread_info_addr" : "0x7f5acc065aa0", -"thread_name" : "Thread Pool Wor", -"ctx" : { -"IP" : "0x7f5c7f971618", -"SP" : "0x7f5ac14a9cb0", -"BP" : "0xa92d48" -}, -"unmanaged_frames" : [ -{ -"is_managed" : "false", -"native_address" : "0x462e99", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x64d4ca", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x64eca0", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x657d77", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x4ba6e5", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f9733c0", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f971618", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f971743", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x6b63df", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x6576a3", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f967609", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f541103", -"native_offset" : "0x00000" -} - -] -}, -{ -"is_managed" : false, -"offset_free_hash" : "0x0", -"offset_rich_hash" : "0x0", -"crashed" : false, -"native_thread_id" : "0x7f5ab20fa700", -"thread_info_addr" : "0x7f5b20002870", -"thread_name" : "Thread Pool Wor", -"ctx" : { -"IP" : "0x7f5c7f971618", -"SP" : "0x7f5ab20f9cb0", -"BP" : "0xa92d48" -}, -"unmanaged_frames" : [ -{ -"is_managed" : "false", -"native_address" : "0x462e99", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x64d4ca", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x64eca0", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x657d77", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x4ba6e5", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f9733c0", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f971618", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f971743", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x6b63df", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x6576a3", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f967609", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f541103", -"native_offset" : "0x00000" -} - -] -}, -{ -"is_managed" : false, -"offset_free_hash" : "0x0", -"offset_rich_hash" : "0x0", -"crashed" : false, -"native_thread_id" : "0x7f5afb2a7700", -"thread_info_addr" : "0x7f5af4000b60", -"thread_name" : "Thread Pool Wor", -"ctx" : { -"IP" : "0x7f5c7f971618", -"SP" : "0x7f5afb2a6cb0", -"BP" : "0xa92d48" -}, -"unmanaged_frames" : [ -{ -"is_managed" : "false", -"native_address" : "0x462e99", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x64d4ca", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x64eca0", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x657d77", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x4ba6e5", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f9733c0", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f971618", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f971743", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x6b63df", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x6576a3", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f967609", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f541103", -"native_offset" : "0x00000" -} - -] -}, -{ -"is_managed" : false, -"offset_free_hash" : "0x0", -"offset_rich_hash" : "0x0", -"crashed" : false, -"native_thread_id" : "0x7f5acbd7b700", -"thread_info_addr" : "0x7f5ae0016440", -"thread_name" : "Thread Pool Wor", -"ctx" : { -"IP" : "0x7f5c7f971618", -"SP" : "0x7f5acbd7acb0", -"BP" : "0xa92d48" -}, -"unmanaged_frames" : [ -{ -"is_managed" : "false", -"native_address" : "0x462e99", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x64d4ca", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x64eca0", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x657d77", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x4ba6e5", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f9733c0", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f971618", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f971743", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x6b63df", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x6576a3", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f967609", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f541103", -"native_offset" : "0x00000" -} - -] -}, -{ -"is_managed" : true, -"offset_free_hash" : "0xd5ed0e7ac", -"offset_rich_hash" : "0xd5ed0eccf", -"crashed" : false, -"native_thread_id" : "0x7f5b771f8700", -"thread_info_addr" : "0x7f5b50000b60", -"thread_name" : "Thread Pool Wor", -"ctx" : { -"IP" : "0x7f5c7f97236c", -"SP" : "0x7f5b771f7350", -"BP" : "0x17" -}, -"managed_frames" : [ -{ -"is_managed" : "false", -"native_address" : "unregistered" -} -, -{ -"is_managed" : "true", -"guid" : "4E15BBAE-9D70-43D8-AFD6-CFD50BD9BD5A", -"token" : "0x00000", -"native_offset" : "0x0", -"filename" : "System.dll", -"sizeofimage" : "0x286000", -"timestamp" : "0x94933251", -"il_offset" : "0x00000" -} -, -{ -"is_managed" : "true", -"guid" : "4E15BBAE-9D70-43D8-AFD6-CFD50BD9BD5A", -"token" : "0x6003e13", -"native_offset" : "0x0", -"filename" : "System.dll", -"sizeofimage" : "0x286000", -"timestamp" : "0x94933251", -"il_offset" : "0x00012" -} -, -{ -"is_managed" : "true", -"guid" : "4E15BBAE-9D70-43D8-AFD6-CFD50BD9BD5A", -"token" : "0x60041b8", -"native_offset" : "0x0", -"filename" : "System.dll", -"sizeofimage" : "0x286000", -"timestamp" : "0x94933251", -"il_offset" : "0x00027" -} -, -{ -"is_managed" : "true", -"guid" : "4E15BBAE-9D70-43D8-AFD6-CFD50BD9BD5A", -"token" : "0x60041b7", -"native_offset" : "0x0", -"filename" : "System.dll", -"sizeofimage" : "0x286000", -"timestamp" : "0x94933251", -"il_offset" : "0x002dc" -} -, -{ -"is_managed" : "true", -"guid" : "4E15BBAE-9D70-43D8-AFD6-CFD50BD9BD5A", -"token" : "0x60043ad", -"native_offset" : "0x0", -"filename" : "System.dll", -"sizeofimage" : "0x286000", -"timestamp" : "0x94933251", -"il_offset" : "0x00000" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x6002392", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x00025" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x600238e", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x00000" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x6002391", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x00000" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x6001ebe", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x00071" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x6001ebc", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x00000" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x60023fa", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x00034" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x6002390", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x0004a" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x6002506", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x00000" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x6001f16", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x00025" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x6001ebe", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x00071" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x6001ebc", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x00000" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x6001ebb", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x0002b" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x6001f17", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x0000f" -} -, -{ -"is_managed" : "true", -"guid" : "A17FA145-7C5D-44F2-885A-C746C1764EA5", -"token" : "0x00000", -"native_offset" : "0x0", -"filename" : "mscorlib.dll", -"sizeofimage" : "0x474000", -"timestamp" : "0xda7f05f4", -"il_offset" : "0x0002a" -} - -], -"unmanaged_frames" : [ -{ -"is_managed" : "false", -"native_address" : "0x462e99", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x64d4ca", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x64eca0", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x657d77", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x4ba6e5", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f9733c0", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f97236c", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7c24bc0b", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7c24a81e", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "true", -"guid" : "4E15BBAE-9D70-43D8-AFD6-CFD50BD9BD5A", -"token" : "0x00000", -"native_offset" : "0x0", -"filename" : "System.dll", -"sizeofimage" : "0x286000", -"timestamp" : "0x94933251", -"il_offset" : "0x00000" -} - -] -}, -{ -"is_managed" : false, -"offset_free_hash" : "0x0", -"offset_rich_hash" : "0x0", -"crashed" : false, -"native_thread_id" : "0x7f5ac07ff700", -"thread_info_addr" : "0x7f5ad8127740", -"thread_name" : "Thread Pool Wor", -"ctx" : { -"IP" : "0x7f5c7f971618", -"SP" : "0x7f5ac07fecb0", -"BP" : "0xa92d48" -}, -"unmanaged_frames" : [ -{ -"is_managed" : "false", -"native_address" : "0x462e99", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x64d4ca", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x64eca0", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x657d77", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x4ba6e5", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f9733c0", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f971618", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f971743", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x6b63df", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x6576a3", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f967609", -"native_offset" : "0x00000" -} -, -{ -"is_managed" : "false", -"native_address" : "0x7f5c7f541103", -"native_offset" : "0x00000" -} - -] -} -] -} \ No newline at end of file From 4d27d9d4680b52b6a8b799ec04825d8653e5340e Mon Sep 17 00:00:00 2001 From: Splitwirez Date: Fri, 4 Sep 2020 07:21:58 -0400 Subject: [PATCH 003/689] Removed commented-out garbage in XAML --- .../ManagedFileChooser.xaml | 25 ------------------- 1 file changed, 25 deletions(-) diff --git a/src/Avalonia.Themes.Fluent/ManagedFileChooser.xaml b/src/Avalonia.Themes.Fluent/ManagedFileChooser.xaml index 1af89351ab..17ee6f1bc7 100644 --- a/src/Avalonia.Themes.Fluent/ManagedFileChooser.xaml +++ b/src/Avalonia.Themes.Fluent/ManagedFileChooser.xaml @@ -36,12 +36,6 @@ - @@ -60,12 +54,6 @@ - @@ -108,12 +96,6 @@ - @@ -137,18 +119,11 @@ - - - From 24b2615dd0378e0688d0dc2cc5bba8828a4ee40a Mon Sep 17 00:00:00 2001 From: Giuseppe Lippolis Date: Mon, 28 Sep 2020 18:13:23 +0200 Subject: [PATCH 004/689] Fiexes issue #4657 --- src/Avalonia.Diagnostics/Diagnostics/Views/MainWindow.xaml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/Avalonia.Diagnostics/Diagnostics/Views/MainWindow.xaml b/src/Avalonia.Diagnostics/Diagnostics/Views/MainWindow.xaml index 3623e95597..7dd4ed0832 100644 --- a/src/Avalonia.Diagnostics/Diagnostics/Views/MainWindow.xaml +++ b/src/Avalonia.Diagnostics/Diagnostics/Views/MainWindow.xaml @@ -12,6 +12,9 @@ + From 01edb8c8b128318a3c12d85be433af429dd1639f Mon Sep 17 00:00:00 2001 From: Adir Date: Wed, 7 Oct 2020 19:25:18 +0300 Subject: [PATCH 005/689] Added potential fix for hotkey manager instances not clearing up after detaching from root --- src/Avalonia.Controls/HotkeyManager.cs | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/Avalonia.Controls/HotkeyManager.cs b/src/Avalonia.Controls/HotkeyManager.cs index 95752e7875..9a2b4f2d0a 100644 --- a/src/Avalonia.Controls/HotkeyManager.cs +++ b/src/Avalonia.Controls/HotkeyManager.cs @@ -55,6 +55,11 @@ namespace Avalonia.Controls private void OnParentChanged(TopLevel control) { + if (control == null) + { + Stop(); + return; + } Unregister(); _root = control; Register(); From 188192c1259c34abcbcaaca1f5c4ede0d7259850 Mon Sep 17 00:00:00 2001 From: Adir Date: Wed, 7 Oct 2020 20:57:41 +0300 Subject: [PATCH 006/689] Changed HotkeyManager.cs to stop/init based on detaching/attaching to visual tree --- src/Avalonia.Controls/HotkeyManager.cs | 24 +++++++++++++++++------- 1 file changed, 17 insertions(+), 7 deletions(-) diff --git a/src/Avalonia.Controls/HotkeyManager.cs b/src/Avalonia.Controls/HotkeyManager.cs index 9a2b4f2d0a..bff25d6dad 100644 --- a/src/Avalonia.Controls/HotkeyManager.cs +++ b/src/Avalonia.Controls/HotkeyManager.cs @@ -2,6 +2,7 @@ using System; using System.Windows.Input; using Avalonia.Controls.Utils; using Avalonia.Input; +using Avalonia.LogicalTree; namespace Avalonia.Controls { @@ -45,6 +46,8 @@ namespace Avalonia.Controls { _control = control; _wrapper = new HotkeyCommandWrapper(_control); + _control.DetachedFromVisualTree += ControlOnDetachedFromVisualTree; + _control.AttachedToLogicalTree += ControlOnAttachedToLogicalTree; } public void Init() @@ -53,13 +56,19 @@ namespace Avalonia.Controls _parentSub = AncestorFinder.Create(_control).Subscribe(OnParentChanged); } + private void ControlOnAttachedToLogicalTree(object sender, LogicalTreeAttachmentEventArgs e) + { + Stop(); + Init(); + } + + private void ControlOnDetachedFromVisualTree(object sender, VisualTreeAttachmentEventArgs e) + { + Stop(); + } + private void OnParentChanged(TopLevel control) { - if (control == null) - { - Stop(); - return; - } Unregister(); _root = control; Register(); @@ -89,7 +98,7 @@ namespace Avalonia.Controls { if (_root != null && _hotkey != null) { - _binding = new KeyBinding() {Gesture = _hotkey, Command = _wrapper}; + _binding = new KeyBinding() { Gesture = _hotkey, Command = _wrapper }; _root.KeyBindings.Add(_binding); } } @@ -107,11 +116,12 @@ namespace Avalonia.Controls HotKeyProperty.Changed.Subscribe(args => { var control = args.Sender as IControl; - if (args.OldValue != null|| control == null) + if (args.OldValue != null || control == null) return; new Manager(control).Init(); }); } + public static void SetHotKey(AvaloniaObject target, KeyGesture value) => target.SetValue(HotKeyProperty, value); public static KeyGesture GetHotKey(AvaloniaObject target) => target.GetValue(HotKeyProperty); } From ecba5f65f05da4917b6a454e81abf3f99b76ceb4 Mon Sep 17 00:00:00 2001 From: Adir Date: Wed, 7 Oct 2020 23:11:50 +0300 Subject: [PATCH 007/689] Reverted HotkeyManager.cs Changed Button.cs to remove it's HotKey property when detaching from visual tree --- src/Avalonia.Controls/Button.cs | 12 ++++++++++-- src/Avalonia.Controls/HotkeyManager.cs | 14 -------------- 2 files changed, 10 insertions(+), 16 deletions(-) diff --git a/src/Avalonia.Controls/Button.cs b/src/Avalonia.Controls/Button.cs index e94d00b2ff..c541a384b0 100644 --- a/src/Avalonia.Controls/Button.cs +++ b/src/Avalonia.Controls/Button.cs @@ -80,6 +80,7 @@ namespace Avalonia.Controls private ICommand _command; private bool _commandCanExecute = true; + private KeyGesture _hotkey; /// /// Initializes static members of the class. @@ -168,11 +169,13 @@ namespace Avalonia.Controls private set { SetValue(IsPressedProperty, value); } } - protected override bool IsEnabledCore => base.IsEnabledCore && _commandCanExecute; + protected override bool IsEnabledCore => base.IsEnabledCore && _commandCanExecute; /// protected override void OnAttachedToVisualTree(VisualTreeAttachmentEventArgs e) { + if (_hotkey != null) + HotKey = _hotkey; base.OnAttachedToVisualTree(e); if (IsDefault) @@ -182,6 +185,7 @@ namespace Avalonia.Controls ListenForDefault(inputElement); } } + if (IsCancel) { if (e.Root is IInputElement inputElement) @@ -194,6 +198,8 @@ namespace Avalonia.Controls /// protected override void OnDetachedFromVisualTree(VisualTreeAttachmentEventArgs e) { + _hotkey = HotKey; + HotKey = null; base.OnDetachedFromVisualTree(e); if (IsDefault) @@ -239,6 +245,7 @@ namespace Avalonia.Controls { OnClick(); } + IsPressed = true; e.Handled = true; } @@ -255,6 +262,7 @@ namespace Avalonia.Controls { OnClick(); } + IsPressed = false; e.Handled = true; } @@ -309,7 +317,7 @@ namespace Avalonia.Controls } } } - + protected override void OnPointerCaptureLost(PointerCaptureLostEventArgs e) { IsPressed = false; diff --git a/src/Avalonia.Controls/HotkeyManager.cs b/src/Avalonia.Controls/HotkeyManager.cs index bff25d6dad..5972a0fdd9 100644 --- a/src/Avalonia.Controls/HotkeyManager.cs +++ b/src/Avalonia.Controls/HotkeyManager.cs @@ -2,7 +2,6 @@ using System; using System.Windows.Input; using Avalonia.Controls.Utils; using Avalonia.Input; -using Avalonia.LogicalTree; namespace Avalonia.Controls { @@ -46,8 +45,6 @@ namespace Avalonia.Controls { _control = control; _wrapper = new HotkeyCommandWrapper(_control); - _control.DetachedFromVisualTree += ControlOnDetachedFromVisualTree; - _control.AttachedToLogicalTree += ControlOnAttachedToLogicalTree; } public void Init() @@ -56,17 +53,6 @@ namespace Avalonia.Controls _parentSub = AncestorFinder.Create(_control).Subscribe(OnParentChanged); } - private void ControlOnAttachedToLogicalTree(object sender, LogicalTreeAttachmentEventArgs e) - { - Stop(); - Init(); - } - - private void ControlOnDetachedFromVisualTree(object sender, VisualTreeAttachmentEventArgs e) - { - Stop(); - } - private void OnParentChanged(TopLevel control) { Unregister(); From 7c952cfc5fb3063b03b3860d7faf1b69e6db1b46 Mon Sep 17 00:00:00 2001 From: Adir Date: Thu, 8 Oct 2020 16:33:32 +0300 Subject: [PATCH 008/689] Changed Hotkey reset to detatch from logical tree (was visual tree) --- src/Avalonia.Controls/Button.cs | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/src/Avalonia.Controls/Button.cs b/src/Avalonia.Controls/Button.cs index c541a384b0..046253b3cd 100644 --- a/src/Avalonia.Controls/Button.cs +++ b/src/Avalonia.Controls/Button.cs @@ -174,8 +174,6 @@ namespace Avalonia.Controls /// protected override void OnAttachedToVisualTree(VisualTreeAttachmentEventArgs e) { - if (_hotkey != null) - HotKey = _hotkey; base.OnAttachedToVisualTree(e); if (IsDefault) @@ -198,8 +196,6 @@ namespace Avalonia.Controls /// protected override void OnDetachedFromVisualTree(VisualTreeAttachmentEventArgs e) { - _hotkey = HotKey; - HotKey = null; base.OnDetachedFromVisualTree(e); if (IsDefault) @@ -213,6 +209,8 @@ namespace Avalonia.Controls protected override void OnAttachedToLogicalTree(LogicalTreeAttachmentEventArgs e) { + if (_hotkey != null) + HotKey = _hotkey; base.OnAttachedToLogicalTree(e); if (Command != null) @@ -223,6 +221,12 @@ namespace Avalonia.Controls protected override void OnDetachedFromLogicalTree(LogicalTreeAttachmentEventArgs e) { + if (HotKey != null) + { + _hotkey = HotKey; + HotKey = null; + } + base.OnDetachedFromLogicalTree(e); if (Command != null) From 3c302f72f236a94d5b1d3f31fcab52d351d31625 Mon Sep 17 00:00:00 2001 From: Adir Date: Thu, 8 Oct 2020 18:03:52 +0300 Subject: [PATCH 009/689] Added docs explaining why need to change Hotkey on attach/detach from logical tree Added the same logic to MenuItem.cs Reverted auto indentation in Button.cs --- src/Avalonia.Controls/Button.cs | 9 ++++----- src/Avalonia.Controls/MenuItem.cs | 11 +++++++++++ 2 files changed, 15 insertions(+), 5 deletions(-) diff --git a/src/Avalonia.Controls/Button.cs b/src/Avalonia.Controls/Button.cs index 046253b3cd..87fabf5ed7 100644 --- a/src/Avalonia.Controls/Button.cs +++ b/src/Avalonia.Controls/Button.cs @@ -169,7 +169,7 @@ namespace Avalonia.Controls private set { SetValue(IsPressedProperty, value); } } - protected override bool IsEnabledCore => base.IsEnabledCore && _commandCanExecute; + protected override bool IsEnabledCore => base.IsEnabledCore && _commandCanExecute; /// protected override void OnAttachedToVisualTree(VisualTreeAttachmentEventArgs e) @@ -183,7 +183,6 @@ namespace Avalonia.Controls ListenForDefault(inputElement); } } - if (IsCancel) { if (e.Root is IInputElement inputElement) @@ -210,6 +209,7 @@ namespace Avalonia.Controls protected override void OnAttachedToLogicalTree(LogicalTreeAttachmentEventArgs e) { if (_hotkey != null) + // Control attached again, set Hotkey to create a hotkey manager for this control HotKey = _hotkey; base.OnAttachedToLogicalTree(e); @@ -223,6 +223,7 @@ namespace Avalonia.Controls { if (HotKey != null) { + // This will cause the hotkey manager to dispose the observer and the reference to this control _hotkey = HotKey; HotKey = null; } @@ -249,7 +250,6 @@ namespace Avalonia.Controls { OnClick(); } - IsPressed = true; e.Handled = true; } @@ -266,7 +266,6 @@ namespace Avalonia.Controls { OnClick(); } - IsPressed = false; e.Handled = true; } @@ -321,7 +320,7 @@ namespace Avalonia.Controls } } } - + protected override void OnPointerCaptureLost(PointerCaptureLostEventArgs e) { IsPressed = false; diff --git a/src/Avalonia.Controls/MenuItem.cs b/src/Avalonia.Controls/MenuItem.cs index 7d4fef009d..faf92c97fe 100644 --- a/src/Avalonia.Controls/MenuItem.cs +++ b/src/Avalonia.Controls/MenuItem.cs @@ -102,6 +102,7 @@ namespace Avalonia.Controls private ICommand? _command; private bool _commandCanExecute = true; private Popup? _popup; + private KeyGesture _hotkey; /// /// Initializes static members of the class. @@ -337,6 +338,9 @@ namespace Avalonia.Controls protected override void OnAttachedToLogicalTree(LogicalTreeAttachmentEventArgs e) { + if (_hotkey != null) + // Control attached again, set Hotkey to create a hotkey manager for this control + HotKey = _hotkey; base.OnAttachedToLogicalTree(e); if (Command != null) @@ -347,6 +351,13 @@ namespace Avalonia.Controls protected override void OnDetachedFromLogicalTree(LogicalTreeAttachmentEventArgs e) { + if (HotKey != null) + { + // This will cause the hotkey manager to dispose the observer and the reference to this control + _hotkey = HotKey; + HotKey = null; + } + base.OnDetachedFromLogicalTree(e); if (Command != null) From 68f67f703401c50105ed63250266f44ec7f190a7 Mon Sep 17 00:00:00 2001 From: Adir Date: Thu, 8 Oct 2020 18:05:46 +0300 Subject: [PATCH 010/689] Reverted auto indentation in HotkeyManager.cs --- src/Avalonia.Controls/HotkeyManager.cs | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/Avalonia.Controls/HotkeyManager.cs b/src/Avalonia.Controls/HotkeyManager.cs index 5972a0fdd9..95752e7875 100644 --- a/src/Avalonia.Controls/HotkeyManager.cs +++ b/src/Avalonia.Controls/HotkeyManager.cs @@ -84,7 +84,7 @@ namespace Avalonia.Controls { if (_root != null && _hotkey != null) { - _binding = new KeyBinding() { Gesture = _hotkey, Command = _wrapper }; + _binding = new KeyBinding() {Gesture = _hotkey, Command = _wrapper}; _root.KeyBindings.Add(_binding); } } @@ -102,12 +102,11 @@ namespace Avalonia.Controls HotKeyProperty.Changed.Subscribe(args => { var control = args.Sender as IControl; - if (args.OldValue != null || control == null) + if (args.OldValue != null|| control == null) return; new Manager(control).Init(); }); } - public static void SetHotKey(AvaloniaObject target, KeyGesture value) => target.SetValue(HotKeyProperty, value); public static KeyGesture GetHotKey(AvaloniaObject target) => target.GetValue(HotKeyProperty); } From fd2da7aa49b2ba59289d205e35b39cff177b43db Mon Sep 17 00:00:00 2001 From: Adir Date: Thu, 8 Oct 2020 21:26:21 +0300 Subject: [PATCH 011/689] Added unit tests for enforcing manager releasing reference to the controls Changed AncestorFinder.cs to dispose child nodes and subject (need review on this) --- src/Avalonia.Controls/Utils/AncestorFinder.cs | 2 + .../Utils/HotKeyManagerTests.cs | 113 +++++++++++++++++- 2 files changed, 114 insertions(+), 1 deletion(-) diff --git a/src/Avalonia.Controls/Utils/AncestorFinder.cs b/src/Avalonia.Controls/Utils/AncestorFinder.cs index 529aec1393..42e0d85dcd 100644 --- a/src/Avalonia.Controls/Utils/AncestorFinder.cs +++ b/src/Avalonia.Controls/Utils/AncestorFinder.cs @@ -47,6 +47,8 @@ namespace Avalonia.Controls.Utils public void Dispose() { + _child?.Dispose(); + _subject.Dispose(); _disposable.Dispose(); } } diff --git a/tests/Avalonia.Controls.UnitTests/Utils/HotKeyManagerTests.cs b/tests/Avalonia.Controls.UnitTests/Utils/HotKeyManagerTests.cs index 9f2712c93c..6425c5c8f4 100644 --- a/tests/Avalonia.Controls.UnitTests/Utils/HotKeyManagerTests.cs +++ b/tests/Avalonia.Controls.UnitTests/Utils/HotKeyManagerTests.cs @@ -1,9 +1,14 @@ -using Moq; +using System; +using System.Collections.Generic; +using Avalonia.Collections; using Avalonia.Controls.Presenters; using Avalonia.Controls.Templates; +using Avalonia.Data; using Avalonia.Input; using Avalonia.Platform; using Avalonia.Styling; +using Avalonia.UnitTests; +using Moq; using Xunit; namespace Avalonia.Controls.UnitTests.Utils @@ -50,10 +55,116 @@ namespace Avalonia.Controls.UnitTests.Utils HotKeyManager.SetHotKey(button, null); Assert.Empty(tl.KeyBindings); + } + } + + [Fact] + public void HotKeyManager_Release_Reference_When_Control_Detached() + { + using (AvaloniaLocator.EnterScope()) + { + var styler = new Mock(); + + AvaloniaLocator.CurrentMutable + .Bind().ToConstant(new WindowingPlatformMock()) + .Bind().ToConstant(styler.Object); + + var gesture1 = new KeyGesture(Key.A, KeyModifiers.Control); + + WeakReference reference = null; + + var tl = new Window(); + + new Action(() => + { + var button = new Button(); + reference = new WeakReference(button, true); + tl.Content = button; + tl.Template = CreateWindowTemplate(); + tl.ApplyTemplate(); + tl.Presenter.ApplyTemplate(); + HotKeyManager.SetHotKey(button, gesture1); + + // Detach the button from the logical tree, so there is no reference to it + tl.Content = null; + tl.ApplyTemplate(); + })(); + + // The button should be collected since it's detached from the listbox + GC.Collect(); + GC.WaitForPendingFinalizers(); + + Assert.Null(reference?.Target); + } + } + + [Fact] + public void HotKeyManager_Release_Reference_When_Control_In_Item_Template_Detached() + { + using (UnitTestApplication.Start(TestServices.StyledWindow)) + { + var styler = new Mock(); + + AvaloniaLocator.CurrentMutable + .Bind().ToConstant(new WindowingPlatformMock()) + .Bind().ToConstant(styler.Object); + + var gesture1 = new KeyGesture(Key.A, KeyModifiers.Control); + + var weakReferences = new List(); + var tl = new Window { SizeToContent = SizeToContent.WidthAndHeight, IsVisible = true }; + var lm = tl.LayoutManager; + + var keyGestures = new AvaloniaList { gesture1 }; + var listBox = new ListBox + { + Width = 100, + Height = 100, + VirtualizationMode = ItemVirtualizationMode.None, + // Create a button with binding to the KeyGesture in the template and add it to references list + ItemTemplate = new FuncDataTemplate(typeof(KeyGesture), (o, scope) => + { + var keyGesture = o as KeyGesture; + var button = new Button + { + DataContext = keyGesture, [!Button.HotKeyProperty] = new Binding("") + }; + weakReferences.Add(new WeakReference(button, true)); + return button; + }) + }; + // Add the listbox and render it + tl.Content = listBox; + lm.ExecuteInitialLayoutPass(); + listBox.Items = keyGestures; + lm.ExecuteLayoutPass(); + + // Let the button detach when clearing the source items + keyGestures.Clear(); + lm.ExecuteLayoutPass(); + + // Add it again to double check,and render + keyGestures.Add(gesture1); + lm.ExecuteLayoutPass(); + + keyGestures.Clear(); + lm.ExecuteLayoutPass(); + + // The button should be collected since it's detached from the listbox + GC.Collect(); + GC.WaitForPendingFinalizers(); + + + Assert.True(weakReferences.Count > 0); + foreach (var weakReference in weakReferences) + { + Assert.Null(weakReference.Target); + } } } + private FuncControlTemplate CreateWindowTemplate() { return new FuncControlTemplate((parent, scope) => From d58d80d11b8c8e7d038899e99c62e75da59fbc2c Mon Sep 17 00:00:00 2001 From: Adir Date: Fri, 9 Oct 2020 01:34:14 +0300 Subject: [PATCH 012/689] Added another GC collect to the HotKeyManagerTests.cs memory leak tests Renamed tests --- .../Utils/HotKeyManagerTests.cs | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/tests/Avalonia.Controls.UnitTests/Utils/HotKeyManagerTests.cs b/tests/Avalonia.Controls.UnitTests/Utils/HotKeyManagerTests.cs index 6425c5c8f4..2e23de366e 100644 --- a/tests/Avalonia.Controls.UnitTests/Utils/HotKeyManagerTests.cs +++ b/tests/Avalonia.Controls.UnitTests/Utils/HotKeyManagerTests.cs @@ -59,7 +59,7 @@ namespace Avalonia.Controls.UnitTests.Utils } [Fact] - public void HotKeyManager_Release_Reference_When_Control_Detached() + public void HotKeyManager_Should_Release_Reference_When_Control_Detached() { using (AvaloniaLocator.EnterScope()) { @@ -94,13 +94,15 @@ namespace Avalonia.Controls.UnitTests.Utils // The button should be collected since it's detached from the listbox GC.Collect(); GC.WaitForPendingFinalizers(); + GC.Collect(); + GC.WaitForPendingFinalizers(); Assert.Null(reference?.Target); } } [Fact] - public void HotKeyManager_Release_Reference_When_Control_In_Item_Template_Detached() + public void HotKeyManager_Should_Release_Reference_When_Control_In_Item_Template_Detached() { using (UnitTestApplication.Start(TestServices.StyledWindow)) { @@ -154,7 +156,8 @@ namespace Avalonia.Controls.UnitTests.Utils // The button should be collected since it's detached from the listbox GC.Collect(); GC.WaitForPendingFinalizers(); - + GC.Collect(); + GC.WaitForPendingFinalizers(); Assert.True(weakReferences.Count > 0); foreach (var weakReference in weakReferences) From 640bddf5cabf5f6a8bf4cb07fefe341549c62c03 Mon Sep 17 00:00:00 2001 From: Giuseppe Lippolis Date: Thu, 24 Sep 2020 14:59:29 +0200 Subject: [PATCH 013/689] Add interface ICommandSource --- src/Avalonia.Input/ICommandSource.cs | 31 ++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 src/Avalonia.Input/ICommandSource.cs diff --git a/src/Avalonia.Input/ICommandSource.cs b/src/Avalonia.Input/ICommandSource.cs new file mode 100644 index 0000000000..b0dd75e12e --- /dev/null +++ b/src/Avalonia.Input/ICommandSource.cs @@ -0,0 +1,31 @@ +using System.Windows.Input; + +namespace Avalonia.Input +{ + /// + /// An interface for classes that know how to invoke a Command. + /// + public interface ICommandSource + { + /// + /// The command that will be executed when the class is "invoked." + /// Classes that implement this interface should enable or disable based on the command's CanExecute return value. + /// The property may be implemented as read-write if desired. + /// + ICommand Command { get; } + + /// + /// The parameter that will be passed to the command when executing the command. + /// The property may be implemented as read-write if desired. + /// + object CommandParameter { get; } + + + /// + /// Bor the bheavior CanExecuteChanged + /// + /// + /// + void CanExecuteChanged(object sender, System.EventArgs e); + } +} From ef385675470f347aee079f3c9517f88014aa3789 Mon Sep 17 00:00:00 2001 From: Giuseppe Lippolis Date: Thu, 24 Sep 2020 15:48:10 +0200 Subject: [PATCH 014/689] Implemented ICommandSource --- src/Avalonia.Controls/Button.cs | 4 +++- src/Avalonia.Controls/MenuItem.cs | 4 +++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/src/Avalonia.Controls/Button.cs b/src/Avalonia.Controls/Button.cs index e94d00b2ff..91eef3947b 100644 --- a/src/Avalonia.Controls/Button.cs +++ b/src/Avalonia.Controls/Button.cs @@ -30,7 +30,7 @@ namespace Avalonia.Controls /// A button control. /// [PseudoClasses(":pressed")] - public class Button : ContentControl + public class Button : ContentControl, ICommandSource { /// /// Defines the property. @@ -492,5 +492,7 @@ namespace Avalonia.Controls { PseudoClasses.Set(":pressed", isPressed); } + + void ICommandSource.CanExecuteChanged(object sender, EventArgs e) => this.CanExecuteChanged(sender, e); } } diff --git a/src/Avalonia.Controls/MenuItem.cs b/src/Avalonia.Controls/MenuItem.cs index 7d4fef009d..d034f54df2 100644 --- a/src/Avalonia.Controls/MenuItem.cs +++ b/src/Avalonia.Controls/MenuItem.cs @@ -22,7 +22,7 @@ namespace Avalonia.Controls /// A menu item control. /// [PseudoClasses(":separator", ":icon", ":open", ":pressed", ":selected")] - public class MenuItem : HeaderedSelectingItemsControl, IMenuItem, ISelectable + public class MenuItem : HeaderedSelectingItemsControl, IMenuItem, ISelectable, ICommandSource { /// /// Defines the property. @@ -609,6 +609,8 @@ namespace Avalonia.Controls SelectedItem = null; } + void ICommandSource.CanExecuteChanged(object sender, EventArgs e) => this.CanExecuteChanged(sender, e); + /// /// A dependency resolver which returns a . /// From fa1476a6622101c383a19e499eb44ad352306e14 Mon Sep 17 00:00:00 2001 From: Giuseppe Lippolis Date: Thu, 24 Sep 2020 16:05:59 +0200 Subject: [PATCH 015/689] Fix Hotkey CommandParameter --- src/Avalonia.Controls/HotkeyManager.cs | 17 +++++++++++------ src/Avalonia.Controls/NativeMenuItem.cs | 2 +- 2 files changed, 12 insertions(+), 7 deletions(-) diff --git a/src/Avalonia.Controls/HotkeyManager.cs b/src/Avalonia.Controls/HotkeyManager.cs index 95752e7875..b104b7a9a8 100644 --- a/src/Avalonia.Controls/HotkeyManager.cs +++ b/src/Avalonia.Controls/HotkeyManager.cs @@ -1,6 +1,7 @@ using System; using System.Windows.Input; using Avalonia.Controls.Utils; +using Avalonia.Data.Core; using Avalonia.Input; namespace Avalonia.Controls @@ -12,14 +13,14 @@ namespace Avalonia.Controls class HotkeyCommandWrapper : ICommand { - public HotkeyCommandWrapper(IControl control) + public HotkeyCommandWrapper(ICommandSource control) { - Control = control; + CommandSource = control; } - public readonly IControl Control; + public readonly ICommandSource CommandSource; - private ICommand GetCommand() => Control.GetValue(Button.CommandProperty); + private ICommand GetCommand() => CommandSource.Command; public bool CanExecute(object parameter) => GetCommand()?.CanExecute(parameter) ?? false; @@ -37,6 +38,7 @@ namespace Avalonia.Controls private TopLevel _root; private IDisposable _parentSub; private IDisposable _hotkeySub; + private IDisposable _commandParameterChangedSubscriber; private KeyGesture _hotkey; private readonly HotkeyCommandWrapper _wrapper; private KeyBinding _binding; @@ -44,7 +46,7 @@ namespace Avalonia.Controls public Manager(IControl control) { _control = control; - _wrapper = new HotkeyCommandWrapper(_control); + _wrapper = new HotkeyCommandWrapper(_control as ICommandSource); } public void Init() @@ -77,6 +79,7 @@ namespace Avalonia.Controls { if (_root != null && _binding != null) _root.KeyBindings.Remove(_binding); + _commandParameterChangedSubscriber?.Dispose(); _binding = null; } @@ -85,6 +88,8 @@ namespace Avalonia.Controls if (_root != null && _hotkey != null) { _binding = new KeyBinding() {Gesture = _hotkey, Command = _wrapper}; + _commandParameterChangedSubscriber = _binding.Bind(KeyBinding.CommandParameterProperty + , ExpressionObserver.Create(((ICommandSource)_control), o => o.CommandParameter)); _root.KeyBindings.Add(_binding); } } @@ -102,7 +107,7 @@ namespace Avalonia.Controls HotKeyProperty.Changed.Subscribe(args => { var control = args.Sender as IControl; - if (args.OldValue != null|| control == null) + if (args.OldValue != null || control == null || !(control is ICommandSource)) return; new Manager(control).Init(); }); diff --git a/src/Avalonia.Controls/NativeMenuItem.cs b/src/Avalonia.Controls/NativeMenuItem.cs index a0fec9e677..d1adda3b0d 100644 --- a/src/Avalonia.Controls/NativeMenuItem.cs +++ b/src/Avalonia.Controls/NativeMenuItem.cs @@ -148,7 +148,7 @@ namespace Avalonia.Controls void CanExecuteChanged() { - IsEnabled = _command?.CanExecute(null) ?? true; + IsEnabled = _command?.CanExecute(CommandParameter) ?? true; } public bool HasClickHandlers => Clicked != null; From 9ffd78a3baa31772de40dd3aad018451486927e7 Mon Sep 17 00:00:00 2001 From: Giuseppe Lippolis Date: Thu, 24 Sep 2020 16:29:51 +0200 Subject: [PATCH 016/689] Add Test --- .../Utils/HotKeyManagerTests.cs | 98 +++++++++++++++++++ 1 file changed, 98 insertions(+) diff --git a/tests/Avalonia.Controls.UnitTests/Utils/HotKeyManagerTests.cs b/tests/Avalonia.Controls.UnitTests/Utils/HotKeyManagerTests.cs index 9f2712c93c..a29eb0f0c7 100644 --- a/tests/Avalonia.Controls.UnitTests/Utils/HotKeyManagerTests.cs +++ b/tests/Avalonia.Controls.UnitTests/Utils/HotKeyManagerTests.cs @@ -5,6 +5,9 @@ using Avalonia.Input; using Avalonia.Platform; using Avalonia.Styling; using Xunit; +using System; +using Avalonia.Input.Raw; +using Factory = System.Func, Avalonia.Controls.Window, Avalonia.AvaloniaObject>; namespace Avalonia.Controls.UnitTests.Utils { @@ -54,6 +57,84 @@ namespace Avalonia.Controls.UnitTests.Utils } } + [Theory] + [MemberData(nameof(ElementsFactory))] + public void HotKeyManager_Should_Use_CommandParameter(string factoryName, Factory factory) + { + using (AvaloniaLocator.EnterScope()) + { + var styler = new Mock(); + var target = new KeyboardDevice(); + var commandResult = 0; + var expectedParameter = 1; + AvaloniaLocator.CurrentMutable + .Bind().ToConstant(new WindowingPlatformMock()) + .Bind().ToConstant(styler.Object); + + var gesture = new KeyGesture(Key.A, KeyModifiers.Control); + + var action = new Action(parameter => + { + if (parameter is int value) + { + commandResult = value; + } + }); + + var root = new Window(); + var element = factory(expectedParameter, action, root); + + root.Template = CreateWindowTemplate(); + root.ApplyTemplate(); + root.Presenter.ApplyTemplate(); + + HotKeyManager.SetHotKey(element, gesture); + + target.ProcessRawEvent(new RawKeyEventArgs(target, + 0, + root, + RawKeyEventType.KeyDown, + Key.A, + RawInputModifiers.Control)); + + Assert.True(expectedParameter == commandResult, $"{factoryName} HotKey did not carry the CommandParameter."); + } + } + + public static TheoryData ElementsFactory => + new TheoryData() + { + {nameof(Button), MakeButton}, + {nameof(MenuItem),MakeMenu}, + }; + + private static AvaloniaObject MakeMenu(int expectedParameter, Action action, Window root) + { + var menuitem = new MenuItem() + { + Command = new Command(action), + CommandParameter = expectedParameter, + }; + var rootMenu = new Menu(); + + rootMenu.Items = new[] { menuitem }; + + root.Content = rootMenu; + return menuitem; + } + + private static AvaloniaObject MakeButton(int expectedParameter, Action action, Window root) + { + var button = new Button() + { + Command = new Command(action), + CommandParameter = expectedParameter, + }; + + root.Content = button; + return button; + } + private FuncControlTemplate CreateWindowTemplate() { return new FuncControlTemplate((parent, scope) => @@ -65,5 +146,22 @@ namespace Avalonia.Controls.UnitTests.Utils }.RegisterInNameScope(scope); }); } + + class Command : System.Windows.Input.ICommand + { + private readonly Action _execeute; + +#pragma warning disable 67 // Event not used + public event EventHandler CanExecuteChanged; +#pragma warning restore 67 // Event not used + + public Command(Action execeute) + { + _execeute = execeute; + } + public bool CanExecute(object parameter) => true; + + public void Execute(object parameter) => _execeute?.Invoke(parameter); + } } } From f1f2df8dd48d42ddc7cc669235988b38cf24b259 Mon Sep 17 00:00:00 2001 From: Giuseppe Lippolis Date: Fri, 25 Sep 2020 17:32:26 +0200 Subject: [PATCH 017/689] Fixes Issue #4734 : HotKeys trigger command when control is disabled --- src/Avalonia.Controls/HotkeyManager.cs | 2 +- src/Avalonia.Input/ICommandSource.cs | 5 +++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/src/Avalonia.Controls/HotkeyManager.cs b/src/Avalonia.Controls/HotkeyManager.cs index b104b7a9a8..f210ecfdaf 100644 --- a/src/Avalonia.Controls/HotkeyManager.cs +++ b/src/Avalonia.Controls/HotkeyManager.cs @@ -22,7 +22,7 @@ namespace Avalonia.Controls private ICommand GetCommand() => CommandSource.Command; - public bool CanExecute(object parameter) => GetCommand()?.CanExecute(parameter) ?? false; + public bool CanExecute(object parameter) => CommandSource.IsEffectivelyEnabled; public void Execute(object parameter) => GetCommand()?.Execute(parameter); diff --git a/src/Avalonia.Input/ICommandSource.cs b/src/Avalonia.Input/ICommandSource.cs index b0dd75e12e..ba2e8eed4e 100644 --- a/src/Avalonia.Input/ICommandSource.cs +++ b/src/Avalonia.Input/ICommandSource.cs @@ -27,5 +27,10 @@ namespace Avalonia.Input /// /// void CanExecuteChanged(object sender, System.EventArgs e); + + /// + /// Gets a value indicating whether this control and all its parents are enabled. + /// + bool IsEffectivelyEnabled { get; } } } From f0efe9aef0d2e4953f5ed034e21359c95dcc4499 Mon Sep 17 00:00:00 2001 From: Giuseppe Lippolis Date: Fri, 25 Sep 2020 17:33:13 +0200 Subject: [PATCH 018/689] Add test Issue #4734 --- .../Utils/HotKeyManagerTests.cs | 43 +++++++++++++++++++ 1 file changed, 43 insertions(+) diff --git a/tests/Avalonia.Controls.UnitTests/Utils/HotKeyManagerTests.cs b/tests/Avalonia.Controls.UnitTests/Utils/HotKeyManagerTests.cs index a29eb0f0c7..151c3070f4 100644 --- a/tests/Avalonia.Controls.UnitTests/Utils/HotKeyManagerTests.cs +++ b/tests/Avalonia.Controls.UnitTests/Utils/HotKeyManagerTests.cs @@ -101,6 +101,49 @@ namespace Avalonia.Controls.UnitTests.Utils } } + + [Theory] + [MemberData(nameof(ElementsFactory))] + public void HotKeyManager_Should_Do_Not_Executed_When_IsEnabled_False(string factoryName, Factory factory) + { + using (AvaloniaLocator.EnterScope()) + { + var styler = new Mock(); + var target = new KeyboardDevice(); + var isExecuted = false; + AvaloniaLocator.CurrentMutable + .Bind().ToConstant(new WindowingPlatformMock()) + .Bind().ToConstant(styler.Object); + + var gesture = new KeyGesture(Key.A, KeyModifiers.Control); + + var action = new Action(parameter => + { + isExecuted = true; + }); + + var root = new Window(); + var element = factory(0, action, root) as InputElement; + + element.IsEnabled = false; + + root.Template = CreateWindowTemplate(); + root.ApplyTemplate(); + root.Presenter.ApplyTemplate(); + + HotKeyManager.SetHotKey(element, gesture); + + target.ProcessRawEvent(new RawKeyEventArgs(target, + 0, + root, + RawKeyEventType.KeyDown, + Key.A, + RawInputModifiers.Control)); + + Assert.True(isExecuted == false, $"{factoryName} Execution raised when IsEnabled is false."); + } + } + public static TheoryData ElementsFactory => new TheoryData() { From c7a21d7268aad472e9022777b626120cdc6b29e3 Mon Sep 17 00:00:00 2001 From: Giuseppe Lippolis Date: Fri, 9 Oct 2020 09:51:54 +0200 Subject: [PATCH 019/689] Removed CommandParameter Binding --- src/Avalonia.Controls/HotkeyManager.cs | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/src/Avalonia.Controls/HotkeyManager.cs b/src/Avalonia.Controls/HotkeyManager.cs index f210ecfdaf..dabc35dd24 100644 --- a/src/Avalonia.Controls/HotkeyManager.cs +++ b/src/Avalonia.Controls/HotkeyManager.cs @@ -1,7 +1,6 @@ using System; using System.Windows.Input; using Avalonia.Controls.Utils; -using Avalonia.Data.Core; using Avalonia.Input; namespace Avalonia.Controls @@ -22,9 +21,12 @@ namespace Avalonia.Controls private ICommand GetCommand() => CommandSource.Command; - public bool CanExecute(object parameter) => CommandSource.IsEffectivelyEnabled; + public bool CanExecute(object parameter) => + CommandSource.Command?.CanExecute(CommandSource.CommandParameter) == true + && CommandSource.IsEffectivelyEnabled; - public void Execute(object parameter) => GetCommand()?.Execute(parameter); + public void Execute(object parameter) => + GetCommand()?.Execute(CommandSource.CommandParameter); #pragma warning disable 67 // Event not used public event EventHandler CanExecuteChanged; @@ -38,7 +40,6 @@ namespace Avalonia.Controls private TopLevel _root; private IDisposable _parentSub; private IDisposable _hotkeySub; - private IDisposable _commandParameterChangedSubscriber; private KeyGesture _hotkey; private readonly HotkeyCommandWrapper _wrapper; private KeyBinding _binding; @@ -79,7 +80,6 @@ namespace Avalonia.Controls { if (_root != null && _binding != null) _root.KeyBindings.Remove(_binding); - _commandParameterChangedSubscriber?.Dispose(); _binding = null; } @@ -87,9 +87,7 @@ namespace Avalonia.Controls { if (_root != null && _hotkey != null) { - _binding = new KeyBinding() {Gesture = _hotkey, Command = _wrapper}; - _commandParameterChangedSubscriber = _binding.Bind(KeyBinding.CommandParameterProperty - , ExpressionObserver.Create(((ICommandSource)_control), o => o.CommandParameter)); + _binding = new KeyBinding() { Gesture = _hotkey, Command = _wrapper }; _root.KeyBindings.Add(_binding); } } From b8728c8f8ccf08a95f68114d0c3f2f00bb7ff0d3 Mon Sep 17 00:00:00 2001 From: Giuseppe Lippolis Date: Fri, 9 Oct 2020 09:53:54 +0200 Subject: [PATCH 020/689] Add warning when HotKey is attached to a control that does not support ICommandSource. --- src/Avalonia.Controls/HotkeyManager.cs | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/Avalonia.Controls/HotkeyManager.cs b/src/Avalonia.Controls/HotkeyManager.cs index dabc35dd24..baae37e022 100644 --- a/src/Avalonia.Controls/HotkeyManager.cs +++ b/src/Avalonia.Controls/HotkeyManager.cs @@ -105,8 +105,13 @@ namespace Avalonia.Controls HotKeyProperty.Changed.Subscribe(args => { var control = args.Sender as IControl; - if (args.OldValue != null || control == null || !(control is ICommandSource)) + if (args.OldValue != null || control == null || !(control is ICommandSource)) + { + Logging.Logger.TryGet(Logging.LogEventLevel.Warning, Logging.LogArea.Control)?. + Log(control, $"The element {args.Sender.GetType().Name} do not support HotKey({args.NewValue})."); return; + } + new Manager(control).Init(); }); } From abff848c8d844eebd32a8a61062a471ccc807db7 Mon Sep 17 00:00:00 2001 From: workgroupengineering Date: Tue, 13 Oct 2020 17:01:37 +0200 Subject: [PATCH 021/689] Update warning message Co-authored-by: Steven Kirk --- src/Avalonia.Controls/HotkeyManager.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Avalonia.Controls/HotkeyManager.cs b/src/Avalonia.Controls/HotkeyManager.cs index baae37e022..b76b7fbed5 100644 --- a/src/Avalonia.Controls/HotkeyManager.cs +++ b/src/Avalonia.Controls/HotkeyManager.cs @@ -108,7 +108,7 @@ namespace Avalonia.Controls if (args.OldValue != null || control == null || !(control is ICommandSource)) { Logging.Logger.TryGet(Logging.LogEventLevel.Warning, Logging.LogArea.Control)?. - Log(control, $"The element {args.Sender.GetType().Name} do not support HotKey({args.NewValue})."); + Log(control, $"The element {args.Sender.GetType().Name} does not support binding a HotKey ({args.NewValue})."); return; } From fda517d13e7371c4577974dbc4ea3d6bc5d78201 Mon Sep 17 00:00:00 2001 From: Steven Kirk Date: Sat, 17 Oct 2020 14:24:52 +0200 Subject: [PATCH 022/689] Make filename match contained class. --- src/Avalonia.Input/{Cursors.cs => Cursor.cs} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename src/Avalonia.Input/{Cursors.cs => Cursor.cs} (100%) diff --git a/src/Avalonia.Input/Cursors.cs b/src/Avalonia.Input/Cursor.cs similarity index 100% rename from src/Avalonia.Input/Cursors.cs rename to src/Avalonia.Input/Cursor.cs From 3124152913cf91658836e7d9b4faef246a573178 Mon Sep 17 00:00:00 2001 From: Steven Kirk Date: Sat, 17 Oct 2020 16:37:27 +0200 Subject: [PATCH 023/689] Enable NRT for cursor API. --- src/Avalonia.Input/Cursor.cs | 2 ++ src/Avalonia.Input/Platform/IStandardCursorFactory.cs | 2 ++ 2 files changed, 4 insertions(+) diff --git a/src/Avalonia.Input/Cursor.cs b/src/Avalonia.Input/Cursor.cs index 920b598eac..0c858aacdd 100644 --- a/src/Avalonia.Input/Cursor.cs +++ b/src/Avalonia.Input/Cursor.cs @@ -1,6 +1,8 @@ using System; using Avalonia.Platform; +#nullable enable + namespace Avalonia.Input { /* diff --git a/src/Avalonia.Input/Platform/IStandardCursorFactory.cs b/src/Avalonia.Input/Platform/IStandardCursorFactory.cs index 51845cf03e..ede19e91b4 100644 --- a/src/Avalonia.Input/Platform/IStandardCursorFactory.cs +++ b/src/Avalonia.Input/Platform/IStandardCursorFactory.cs @@ -1,5 +1,7 @@ using Avalonia.Input; +#nullable enable + namespace Avalonia.Platform { public interface IStandardCursorFactory From 03a18f56bbc6c70542db99e0056d94b360a78d91 Mon Sep 17 00:00:00 2001 From: Steven Kirk Date: Sat, 17 Oct 2020 16:38:24 +0200 Subject: [PATCH 024/689] Initial support for custom cursors on Win32. --- src/Avalonia.DesignerSupport/Remote/Stubs.cs | 1 + .../HeadlessPlatformStubs.cs | 6 +- src/Avalonia.Input/Cursor.cs | 20 ++--- .../Platform/IStandardCursorFactory.cs | 1 + src/Avalonia.Native/Cursor.cs | 5 ++ src/Avalonia.X11/X11CursorFactory.cs | 5 ++ src/Linux/Avalonia.LinuxFramebuffer/Stubs.cs | 5 ++ src/Windows/Avalonia.Win32/CursorFactory.cs | 80 +++++++++++++++++++ .../Interop/UnmanagedMethods.cs | 13 +++ .../CursorFactoryMock.cs | 5 ++ 10 files changed, 130 insertions(+), 11 deletions(-) diff --git a/src/Avalonia.DesignerSupport/Remote/Stubs.cs b/src/Avalonia.DesignerSupport/Remote/Stubs.cs index f377b1bcd1..a400102877 100644 --- a/src/Avalonia.DesignerSupport/Remote/Stubs.cs +++ b/src/Avalonia.DesignerSupport/Remote/Stubs.cs @@ -195,6 +195,7 @@ namespace Avalonia.DesignerSupport.Remote class CursorFactoryStub : IStandardCursorFactory { public IPlatformHandle GetCursor(StandardCursorType cursorType) => new PlatformHandle(IntPtr.Zero, "STUB"); + public IPlatformHandle CreateCursor(IBitmapImpl cursor, PixelPoint hotSpot) => new PlatformHandle(IntPtr.Zero, "STUB"); } class IconLoaderStub : IPlatformIconLoader diff --git a/src/Avalonia.Headless/HeadlessPlatformStubs.cs b/src/Avalonia.Headless/HeadlessPlatformStubs.cs index 4c0e2982f4..43e6731eee 100644 --- a/src/Avalonia.Headless/HeadlessPlatformStubs.cs +++ b/src/Avalonia.Headless/HeadlessPlatformStubs.cs @@ -54,11 +54,15 @@ namespace Avalonia.Headless class HeadlessCursorFactoryStub : IStandardCursorFactory { - public IPlatformHandle GetCursor(StandardCursorType cursorType) { return new PlatformHandle(new IntPtr((int)cursorType), "STUB"); } + + public IPlatformHandle CreateCursor(IBitmapImpl cursor, PixelPoint hotSpot) + { + return new PlatformHandle(IntPtr.Zero, "STUB"); + } } class HeadlessPlatformSettingsStub : IPlatformSettings diff --git a/src/Avalonia.Input/Cursor.cs b/src/Avalonia.Input/Cursor.cs index 0c858aacdd..21c2b1a326 100644 --- a/src/Avalonia.Input/Cursor.cs +++ b/src/Avalonia.Input/Cursor.cs @@ -1,4 +1,5 @@ using System; +using Avalonia.Media.Imaging; using Avalonia.Platform; #nullable enable @@ -58,7 +59,12 @@ namespace Avalonia.Input } public Cursor(StandardCursorType cursorType) - : this(GetCursor(cursorType)) + : this(GetCursorFactory().GetCursor(cursorType)) + { + } + + public Cursor(IBitmap cursor, PixelPoint hotSpot) + : this(GetCursorFactory().CreateCursor(cursor.PlatformImpl.Item, hotSpot)) { } @@ -71,16 +77,10 @@ namespace Avalonia.Input throw new ArgumentException($"Unrecognized cursor type '{s}'."); } - private static IPlatformHandle GetCursor(StandardCursorType type) + private static IStandardCursorFactory GetCursorFactory() { - var platform = AvaloniaLocator.Current.GetService(); - - if (platform == null) - { - throw new Exception("Could not create Cursor: IStandardCursorFactory not registered."); - } - - return platform.GetCursor(type); + return AvaloniaLocator.Current.GetService() ?? + throw new Exception("Could not create Cursor: ICursorFactory not registered."); } } } diff --git a/src/Avalonia.Input/Platform/IStandardCursorFactory.cs b/src/Avalonia.Input/Platform/IStandardCursorFactory.cs index ede19e91b4..12c3ec7b74 100644 --- a/src/Avalonia.Input/Platform/IStandardCursorFactory.cs +++ b/src/Avalonia.Input/Platform/IStandardCursorFactory.cs @@ -7,5 +7,6 @@ namespace Avalonia.Platform public interface IStandardCursorFactory { IPlatformHandle GetCursor(StandardCursorType cursorType); + IPlatformHandle CreateCursor(IBitmapImpl cursor, PixelPoint hotSpot); } } diff --git a/src/Avalonia.Native/Cursor.cs b/src/Avalonia.Native/Cursor.cs index 3c65367c12..fffff51bce 100644 --- a/src/Avalonia.Native/Cursor.cs +++ b/src/Avalonia.Native/Cursor.cs @@ -38,5 +38,10 @@ namespace Avalonia.Native var cursor = _native.GetCursor((AvnStandardCursorType)cursorType); return new AvaloniaNativeCursor( cursor ); } + + public IPlatformHandle CreateCursor(IBitmapImpl cursor, PixelPoint hotSpot) + { + throw new NotImplementedException(); + } } } diff --git a/src/Avalonia.X11/X11CursorFactory.cs b/src/Avalonia.X11/X11CursorFactory.cs index 1c995475ae..a82fe76cd5 100644 --- a/src/Avalonia.X11/X11CursorFactory.cs +++ b/src/Avalonia.X11/X11CursorFactory.cs @@ -67,6 +67,11 @@ namespace Avalonia.X11 return new PlatformHandle(handle, "XCURSOR"); } + public IPlatformHandle CreateCursor(IBitmapImpl cursor, PixelPoint hotSpot) + { + throw new NotImplementedException(); + } + private static IntPtr GetNullCursor(IntPtr display) { XColor color = new XColor(); diff --git a/src/Linux/Avalonia.LinuxFramebuffer/Stubs.cs b/src/Linux/Avalonia.LinuxFramebuffer/Stubs.cs index 7a257da0dd..8763f18cc0 100644 --- a/src/Linux/Avalonia.LinuxFramebuffer/Stubs.cs +++ b/src/Linux/Avalonia.LinuxFramebuffer/Stubs.cs @@ -10,6 +10,11 @@ namespace Avalonia.LinuxFramebuffer { return new PlatformHandle(IntPtr.Zero, null); } + + public IPlatformHandle CreateCursor(IBitmapImpl cursor, PixelPoint hotSpot) + { + return new PlatformHandle(IntPtr.Zero, null); + } } internal class PlatformSettings : IPlatformSettings { diff --git a/src/Windows/Avalonia.Win32/CursorFactory.cs b/src/Windows/Avalonia.Win32/CursorFactory.cs index 8c40eaa7b8..844f230a2e 100644 --- a/src/Windows/Avalonia.Win32/CursorFactory.cs +++ b/src/Windows/Avalonia.Win32/CursorFactory.cs @@ -1,8 +1,15 @@ using System; using System.Collections.Generic; +using System.Drawing; +using System.Drawing.Imaging; +using System.IO; +using System.Runtime.InteropServices; using Avalonia.Input; +using Avalonia.Media.Imaging; using Avalonia.Platform; using Avalonia.Win32.Interop; +using SdBitmap = System.Drawing.Bitmap; +using SdPixelFormat = System.Drawing.Imaging.PixelFormat; namespace Avalonia.Win32 { @@ -87,5 +94,78 @@ namespace Avalonia.Win32 return rv; } + + public IPlatformHandle CreateCursor(IBitmapImpl cursor, PixelPoint hotSpot) + { + using var source = LoadSystemDrawingBitmap(cursor); + using var mask = AlphaToMask(source); + + var info = new UnmanagedMethods.ICONINFO + { + IsIcon = false, + xHotspot = hotSpot.X, + yHotspot = hotSpot.Y, + MaskBitmap = mask.GetHbitmap(), + ColorBitmap = source.GetHbitmap(), + }; + + return new PlatformHandle( + UnmanagedMethods.CreateIconIndirect(ref info), + PlatformConstants.CursorHandleType); + } + + private SdBitmap LoadSystemDrawingBitmap(IBitmapImpl bitmap) + { + using var memoryStream = new MemoryStream(); + bitmap.Save(memoryStream); + return new SdBitmap(memoryStream); + } + + private unsafe SdBitmap AlphaToMask(SdBitmap source) + { + var dest = new SdBitmap(source.Width, source.Height, SdPixelFormat.Format1bppIndexed); + + if (source.PixelFormat != SdPixelFormat.Format32bppArgb && + source.PixelFormat != SdPixelFormat.Format32bppPArgb) + { + return dest; + } + + var sourceData = source.LockBits( + new Rectangle(default, source.Size), + ImageLockMode.ReadOnly, + SdPixelFormat.Format32bppArgb); + var destData = dest.LockBits( + new Rectangle(default, source.Size), + ImageLockMode.ReadOnly, + SdPixelFormat.Format1bppIndexed); + + try + { + var pSource = (byte*)sourceData.Scan0.ToPointer(); + var pDest = (byte*)destData.Scan0.ToPointer(); + + for (var y = 0; y < dest.Height; ++y) + { + for (var x = 0; x < dest.Width; ++x) + { + if (pSource[x * 4] == 0) + { + pDest[x / 8] |= (byte)(1 << (x % 8)); + } + } + + pSource += sourceData.Stride; + pDest += destData.Stride; + } + + return dest; + } + finally + { + source.UnlockBits(sourceData); + dest.UnlockBits(destData); + } + } } } diff --git a/src/Windows/Avalonia.Win32/Interop/UnmanagedMethods.cs b/src/Windows/Avalonia.Win32/Interop/UnmanagedMethods.cs index 5feb6c9e46..c18a5c07c5 100644 --- a/src/Windows/Avalonia.Win32/Interop/UnmanagedMethods.cs +++ b/src/Windows/Avalonia.Win32/Interop/UnmanagedMethods.cs @@ -1031,6 +1031,9 @@ namespace Avalonia.Win32.Interop [DllImport("user32.dll")] public static extern IntPtr LoadCursor(IntPtr hInstance, IntPtr lpCursorName); + [DllImport("user32.dll")] + public static extern IntPtr CreateIconIndirect([In] ref ICONINFO iconInfo); + [DllImport("user32.dll")] public static extern bool PeekMessage(out MSG lpMsg, IntPtr hWnd, uint wMsgFilterMin, uint wMsgFilterMax, uint wRemoveMsg); @@ -1743,6 +1746,16 @@ namespace Avalonia.Win32.Interop public int CyContact; } + [StructLayout(LayoutKind.Sequential)] + public struct ICONINFO + { + public bool IsIcon; + public int xHotspot; + public int yHotspot; + public IntPtr MaskBitmap; + public IntPtr ColorBitmap; + }; + [Flags] public enum TouchInputFlags { diff --git a/tests/Avalonia.Controls.UnitTests/CursorFactoryMock.cs b/tests/Avalonia.Controls.UnitTests/CursorFactoryMock.cs index da02cccdc5..66c6033fb4 100644 --- a/tests/Avalonia.Controls.UnitTests/CursorFactoryMock.cs +++ b/tests/Avalonia.Controls.UnitTests/CursorFactoryMock.cs @@ -10,5 +10,10 @@ namespace Avalonia.Controls.UnitTests { return new PlatformHandle(IntPtr.Zero, cursorType.ToString()); } + + public IPlatformHandle CreateCursor(IBitmapImpl cursor, PixelPoint hotSpot) + { + return new PlatformHandle(IntPtr.Zero, "Custom"); + } } } From 193cdb3324d82a3dc7207a5bf980fa45bd9b639e Mon Sep 17 00:00:00 2001 From: grokys Date: Mon, 19 Oct 2020 13:44:54 +0200 Subject: [PATCH 025/689] Implement custom cursors on X11. --- src/Avalonia.X11/X11CursorFactory.cs | 59 +++++++++++++++++++++++++++- src/Avalonia.X11/X11Structs.cs | 2 +- src/Avalonia.X11/XLib.cs | 7 ++++ 3 files changed, 65 insertions(+), 3 deletions(-) diff --git a/src/Avalonia.X11/X11CursorFactory.cs b/src/Avalonia.X11/X11CursorFactory.cs index a82fe76cd5..176878ed5f 100644 --- a/src/Avalonia.X11/X11CursorFactory.cs +++ b/src/Avalonia.X11/X11CursorFactory.cs @@ -1,8 +1,13 @@ using System; using System.Collections.Generic; using System.Linq; +using System.Runtime.InteropServices; +using Avalonia.Controls.Platform.Surfaces; using Avalonia.Input; using Avalonia.Platform; +using Avalonia.Utilities; + +#nullable enable namespace Avalonia.X11 { @@ -67,9 +72,9 @@ namespace Avalonia.X11 return new PlatformHandle(handle, "XCURSOR"); } - public IPlatformHandle CreateCursor(IBitmapImpl cursor, PixelPoint hotSpot) + public unsafe IPlatformHandle CreateCursor(IBitmapImpl cursor, PixelPoint hotSpot) { - throw new NotImplementedException(); + return new XImageCursor(_display, cursor, hotSpot); } private static IntPtr GetNullCursor(IntPtr display) @@ -79,5 +84,55 @@ namespace Avalonia.X11 IntPtr pixmap = XLib.XCreateBitmapFromData(display, window, NullCursorData, 1, 1); return XLib.XCreatePixmapCursor(display, pixmap, pixmap, ref color, ref color, 0, 0); } + + private unsafe class XImageCursor : IFramebufferPlatformSurface, IPlatformHandle, IDisposable + { + private readonly PixelSize _pixelSize; + private readonly IUnmanagedBlob _blob; + + public XImageCursor(IntPtr display, IBitmapImpl bitmap, PixelPoint hotSpot) + { + var size = Marshal.SizeOf() + + (bitmap.PixelSize.Width * bitmap.PixelSize.Height * 4); + + _pixelSize = bitmap.PixelSize; + _blob = AvaloniaLocator.Current.GetService().AllocBlob(size); + + var image = (XcursorImage*)_blob.Address; + image->version = 1; + image->size = Marshal.SizeOf(); + image->width = bitmap.PixelSize.Width; + image->height = bitmap.PixelSize.Height; + image->xhot = hotSpot.X; + image->yhot = hotSpot.Y; + image->pixels = (IntPtr)(image + 1); + + using (var renderTarget = AvaloniaLocator.Current.GetService().CreateRenderTarget(new[] { this })) + using (var ctx = renderTarget.CreateDrawingContext(null)) + { + var r = new Rect(_pixelSize.ToSize(1)); + ctx.DrawBitmap(RefCountable.CreateUnownedNotClonable(bitmap), 1, r, r); + } + + Handle = XLib.XcursorImageLoadCursor(display, _blob.Address); + } + + public IntPtr Handle { get; } + public string HandleDescriptor => "XCURSOR"; + + public void Dispose() + { + XLib.XcursorImageDestroy(Handle); + _blob.Dispose(); + } + + public ILockedFramebuffer Lock() + { + return new LockedFramebuffer( + _blob.Address + Marshal.SizeOf(), + _pixelSize, _pixelSize.Width * 4, + new Vector(96, 96), PixelFormat.Bgra8888, null); + } + } } } diff --git a/src/Avalonia.X11/X11Structs.cs b/src/Avalonia.X11/X11Structs.cs index 0ae5c16aef..7ee764e8a3 100644 --- a/src/Avalonia.X11/X11Structs.cs +++ b/src/Avalonia.X11/X11Structs.cs @@ -1684,7 +1684,7 @@ namespace Avalonia.X11 { [StructLayout (LayoutKind.Sequential)] internal struct XcursorImage { - private int version; + public int version; public int size; /* nominal size for matching */ public int width; /* actual width */ public int height; /* actual height */ diff --git a/src/Avalonia.X11/XLib.cs b/src/Avalonia.X11/XLib.cs index 85aa4862b7..f5da691caa 100644 --- a/src/Avalonia.X11/XLib.cs +++ b/src/Avalonia.X11/XLib.cs @@ -19,6 +19,7 @@ namespace Avalonia.X11 const string libX11Randr = "libXrandr.so.2"; const string libX11Ext = "libXext.so.6"; const string libXInput = "libXi.so.6"; + const string libXCursor = "libXcursor.so.1"; [DllImport(libX11)] public static extern IntPtr XOpenDisplay(IntPtr display); @@ -512,6 +513,12 @@ namespace Avalonia.X11 [DllImport(libXInput)] public static extern void XIFreeDeviceInfo(XIDeviceInfo* info); + [DllImport(libXCursor)] + public static extern IntPtr XcursorImageLoadCursor(IntPtr display, IntPtr image); + + [DllImport(libXCursor)] + public static extern IntPtr XcursorImageDestroy(IntPtr image); + public static void XISetMask(ref int mask, XiEventType ev) { mask |= (1 << (int)ev); From a832d639155ea05b84d35fa17a48c32b1e0366b1 Mon Sep 17 00:00:00 2001 From: Steven Kirk Date: Tue, 20 Oct 2020 13:46:47 +0200 Subject: [PATCH 026/689] IStandardCursorFactory -> ICursorFactory. --- .../Remote/PreviewerWindowingPlatform.cs | 2 +- src/Avalonia.DesignerSupport/Remote/Stubs.cs | 2 +- src/Avalonia.Headless/AvaloniaHeadlessPlatform.cs | 2 +- src/Avalonia.Headless/HeadlessPlatformStubs.cs | 2 +- src/Avalonia.Input/Cursor.cs | 4 ++-- .../{IStandardCursorFactory.cs => ICursorFactory.cs} | 2 +- src/Avalonia.Native/AvaloniaNativePlatform.cs | 2 +- src/Avalonia.Native/Cursor.cs | 2 +- src/Avalonia.Native/WindowImplBase.cs | 4 ++-- src/Avalonia.X11/X11CursorFactory.cs | 2 +- src/Avalonia.X11/X11Platform.cs | 2 +- .../Avalonia.LinuxFramebuffer/LinuxFramebufferPlatform.cs | 2 +- src/Linux/Avalonia.LinuxFramebuffer/Stubs.cs | 2 +- src/Windows/Avalonia.Win32/CursorFactory.cs | 2 +- src/Windows/Avalonia.Win32/Win32Platform.cs | 2 +- .../CalendarDatePickerTests.cs | 2 +- tests/Avalonia.Controls.UnitTests/CursorFactoryMock.cs | 2 +- tests/Avalonia.Controls.UnitTests/DatePickerTests.cs | 2 +- tests/Avalonia.Controls.UnitTests/GridSplitterTests.cs | 4 ++-- tests/Avalonia.Controls.UnitTests/TextBoxTests.cs | 4 ++-- .../TextBoxTests_DataValidation.cs | 2 +- tests/Avalonia.Controls.UnitTests/TimePickerTests.cs | 2 +- tests/Avalonia.UnitTests/TestServices.cs | 8 ++++---- tests/Avalonia.UnitTests/UnitTestApplication.cs | 2 +- 24 files changed, 31 insertions(+), 31 deletions(-) rename src/Avalonia.Input/Platform/{IStandardCursorFactory.cs => ICursorFactory.cs} (83%) diff --git a/src/Avalonia.DesignerSupport/Remote/PreviewerWindowingPlatform.cs b/src/Avalonia.DesignerSupport/Remote/PreviewerWindowingPlatform.cs index fe4c580bbb..67b832318a 100644 --- a/src/Avalonia.DesignerSupport/Remote/PreviewerWindowingPlatform.cs +++ b/src/Avalonia.DesignerSupport/Remote/PreviewerWindowingPlatform.cs @@ -47,7 +47,7 @@ namespace Avalonia.DesignerSupport.Remote var threading = new InternalPlatformThreadingInterface(); AvaloniaLocator.CurrentMutable .Bind().ToSingleton() - .Bind().ToSingleton() + .Bind().ToSingleton() .Bind().ToConstant(Keyboard) .Bind().ToConstant(instance) .Bind().ToConstant(threading) diff --git a/src/Avalonia.DesignerSupport/Remote/Stubs.cs b/src/Avalonia.DesignerSupport/Remote/Stubs.cs index a400102877..df1e5d6e98 100644 --- a/src/Avalonia.DesignerSupport/Remote/Stubs.cs +++ b/src/Avalonia.DesignerSupport/Remote/Stubs.cs @@ -192,7 +192,7 @@ namespace Avalonia.DesignerSupport.Remote public Task GetDataAsync(string format) => Task.FromResult((object)null); } - class CursorFactoryStub : IStandardCursorFactory + class CursorFactoryStub : ICursorFactory { public IPlatformHandle GetCursor(StandardCursorType cursorType) => new PlatformHandle(IntPtr.Zero, "STUB"); public IPlatformHandle CreateCursor(IBitmapImpl cursor, PixelPoint hotSpot) => new PlatformHandle(IntPtr.Zero, "STUB"); diff --git a/src/Avalonia.Headless/AvaloniaHeadlessPlatform.cs b/src/Avalonia.Headless/AvaloniaHeadlessPlatform.cs index 1f750a0309..fca2a1336f 100644 --- a/src/Avalonia.Headless/AvaloniaHeadlessPlatform.cs +++ b/src/Avalonia.Headless/AvaloniaHeadlessPlatform.cs @@ -58,7 +58,7 @@ namespace Avalonia.Headless AvaloniaLocator.CurrentMutable .Bind().ToConstant(new HeadlessPlatformThreadingInterface()) .Bind().ToSingleton() - .Bind().ToSingleton() + .Bind().ToSingleton() .Bind().ToConstant(new HeadlessPlatformSettingsStub()) .Bind().ToSingleton() .Bind().ToSingleton() diff --git a/src/Avalonia.Headless/HeadlessPlatformStubs.cs b/src/Avalonia.Headless/HeadlessPlatformStubs.cs index 43e6731eee..efad5133b9 100644 --- a/src/Avalonia.Headless/HeadlessPlatformStubs.cs +++ b/src/Avalonia.Headless/HeadlessPlatformStubs.cs @@ -52,7 +52,7 @@ namespace Avalonia.Headless } } - class HeadlessCursorFactoryStub : IStandardCursorFactory + class HeadlessCursorFactoryStub : ICursorFactory { public IPlatformHandle GetCursor(StandardCursorType cursorType) { diff --git a/src/Avalonia.Input/Cursor.cs b/src/Avalonia.Input/Cursor.cs index 21c2b1a326..f018041a94 100644 --- a/src/Avalonia.Input/Cursor.cs +++ b/src/Avalonia.Input/Cursor.cs @@ -77,9 +77,9 @@ namespace Avalonia.Input throw new ArgumentException($"Unrecognized cursor type '{s}'."); } - private static IStandardCursorFactory GetCursorFactory() + private static ICursorFactory GetCursorFactory() { - return AvaloniaLocator.Current.GetService() ?? + return AvaloniaLocator.Current.GetService() ?? throw new Exception("Could not create Cursor: ICursorFactory not registered."); } } diff --git a/src/Avalonia.Input/Platform/IStandardCursorFactory.cs b/src/Avalonia.Input/Platform/ICursorFactory.cs similarity index 83% rename from src/Avalonia.Input/Platform/IStandardCursorFactory.cs rename to src/Avalonia.Input/Platform/ICursorFactory.cs index 12c3ec7b74..e531015d40 100644 --- a/src/Avalonia.Input/Platform/IStandardCursorFactory.cs +++ b/src/Avalonia.Input/Platform/ICursorFactory.cs @@ -4,7 +4,7 @@ using Avalonia.Input; namespace Avalonia.Platform { - public interface IStandardCursorFactory + public interface ICursorFactory { IPlatformHandle GetCursor(StandardCursorType cursorType); IPlatformHandle CreateCursor(IBitmapImpl cursor, PixelPoint hotSpot); diff --git a/src/Avalonia.Native/AvaloniaNativePlatform.cs b/src/Avalonia.Native/AvaloniaNativePlatform.cs index e8b2f065c7..c56a8404fa 100644 --- a/src/Avalonia.Native/AvaloniaNativePlatform.cs +++ b/src/Avalonia.Native/AvaloniaNativePlatform.cs @@ -99,7 +99,7 @@ namespace Avalonia.Native AvaloniaLocator.CurrentMutable .Bind() .ToConstant(new PlatformThreadingInterface(_factory.CreatePlatformThreadingInterface())) - .Bind().ToConstant(new CursorFactory(_factory.CreateCursorFactory())) + .Bind().ToConstant(new CursorFactory(_factory.CreateCursorFactory())) .Bind().ToSingleton() .Bind().ToConstant(KeyboardDevice) .Bind().ToConstant(this) diff --git a/src/Avalonia.Native/Cursor.cs b/src/Avalonia.Native/Cursor.cs index fffff51bce..ebee4baafe 100644 --- a/src/Avalonia.Native/Cursor.cs +++ b/src/Avalonia.Native/Cursor.cs @@ -24,7 +24,7 @@ namespace Avalonia.Native } } - class CursorFactory : IStandardCursorFactory + class CursorFactory : ICursorFactory { IAvnCursorFactory _native; diff --git a/src/Avalonia.Native/WindowImplBase.cs b/src/Avalonia.Native/WindowImplBase.cs index 5d35c773d7..e4643bf675 100644 --- a/src/Avalonia.Native/WindowImplBase.cs +++ b/src/Avalonia.Native/WindowImplBase.cs @@ -53,7 +53,7 @@ namespace Avalonia.Native private bool _gpu = false; private readonly MouseDevice _mouse; private readonly IKeyboardDevice _keyboard; - private readonly IStandardCursorFactory _cursorFactory; + private readonly ICursorFactory _cursorFactory; private Size _savedLogicalSize; private Size _lastRenderedLogicalSize; private double _savedScaling; @@ -68,7 +68,7 @@ namespace Avalonia.Native _keyboard = AvaloniaLocator.Current.GetService(); _mouse = new MouseDevice(); - _cursorFactory = AvaloniaLocator.Current.GetService(); + _cursorFactory = AvaloniaLocator.Current.GetService(); } protected void Init(IAvnWindowBase window, IAvnScreens screens, IGlContext glContext) diff --git a/src/Avalonia.X11/X11CursorFactory.cs b/src/Avalonia.X11/X11CursorFactory.cs index 176878ed5f..7f08407239 100644 --- a/src/Avalonia.X11/X11CursorFactory.cs +++ b/src/Avalonia.X11/X11CursorFactory.cs @@ -11,7 +11,7 @@ using Avalonia.Utilities; namespace Avalonia.X11 { - class X11CursorFactory : IStandardCursorFactory + class X11CursorFactory : ICursorFactory { private static readonly byte[] NullCursorData = new byte[] { 0 }; diff --git a/src/Avalonia.X11/X11Platform.cs b/src/Avalonia.X11/X11Platform.cs index c6db146f7b..ffd7c75608 100644 --- a/src/Avalonia.X11/X11Platform.cs +++ b/src/Avalonia.X11/X11Platform.cs @@ -52,7 +52,7 @@ namespace Avalonia.X11 .Bind().ToConstant(new RenderLoop()) .Bind().ToConstant(new PlatformHotkeyConfiguration(KeyModifiers.Control)) .Bind().ToFunc(() => KeyboardDevice) - .Bind().ToConstant(new X11CursorFactory(Display)) + .Bind().ToConstant(new X11CursorFactory(Display)) .Bind().ToConstant(new X11Clipboard(this)) .Bind().ToConstant(new PlatformSettingsStub()) .Bind().ToConstant(new X11IconLoader(Info)) diff --git a/src/Linux/Avalonia.LinuxFramebuffer/LinuxFramebufferPlatform.cs b/src/Linux/Avalonia.LinuxFramebuffer/LinuxFramebufferPlatform.cs index 8801f71f9a..340d10517d 100644 --- a/src/Linux/Avalonia.LinuxFramebuffer/LinuxFramebufferPlatform.cs +++ b/src/Linux/Avalonia.LinuxFramebuffer/LinuxFramebufferPlatform.cs @@ -38,7 +38,7 @@ namespace Avalonia.LinuxFramebuffer .Bind().ToConstant(Threading) .Bind().ToConstant(new DefaultRenderTimer(60)) .Bind().ToConstant(new RenderLoop()) - .Bind().ToTransient() + .Bind().ToTransient() .Bind().ToConstant(new KeyboardDevice()) .Bind().ToSingleton() .Bind().ToConstant(new RenderLoop()) diff --git a/src/Linux/Avalonia.LinuxFramebuffer/Stubs.cs b/src/Linux/Avalonia.LinuxFramebuffer/Stubs.cs index 8763f18cc0..def5f6b817 100644 --- a/src/Linux/Avalonia.LinuxFramebuffer/Stubs.cs +++ b/src/Linux/Avalonia.LinuxFramebuffer/Stubs.cs @@ -4,7 +4,7 @@ using Avalonia.Platform; namespace Avalonia.LinuxFramebuffer { - internal class CursorFactoryStub : IStandardCursorFactory + internal class CursorFactoryStub : ICursorFactory { public IPlatformHandle GetCursor(StandardCursorType cursorType) { diff --git a/src/Windows/Avalonia.Win32/CursorFactory.cs b/src/Windows/Avalonia.Win32/CursorFactory.cs index 844f230a2e..aca5f42771 100644 --- a/src/Windows/Avalonia.Win32/CursorFactory.cs +++ b/src/Windows/Avalonia.Win32/CursorFactory.cs @@ -13,7 +13,7 @@ using SdPixelFormat = System.Drawing.Imaging.PixelFormat; namespace Avalonia.Win32 { - internal class CursorFactory : IStandardCursorFactory + internal class CursorFactory : ICursorFactory { public static CursorFactory Instance { get; } = new CursorFactory(); diff --git a/src/Windows/Avalonia.Win32/Win32Platform.cs b/src/Windows/Avalonia.Win32/Win32Platform.cs index 61c1a4f45e..ebc69072fc 100644 --- a/src/Windows/Avalonia.Win32/Win32Platform.cs +++ b/src/Windows/Avalonia.Win32/Win32Platform.cs @@ -90,7 +90,7 @@ namespace Avalonia.Win32 Options = options; AvaloniaLocator.CurrentMutable .Bind().ToSingleton() - .Bind().ToConstant(CursorFactory.Instance) + .Bind().ToConstant(CursorFactory.Instance) .Bind().ToConstant(WindowsKeyboardDevice.Instance) .Bind().ToConstant(s_instance) .Bind().ToConstant(s_instance) diff --git a/tests/Avalonia.Controls.UnitTests/CalendarDatePickerTests.cs b/tests/Avalonia.Controls.UnitTests/CalendarDatePickerTests.cs index f41a3e7581..d77c7b87fa 100644 --- a/tests/Avalonia.Controls.UnitTests/CalendarDatePickerTests.cs +++ b/tests/Avalonia.Controls.UnitTests/CalendarDatePickerTests.cs @@ -74,7 +74,7 @@ namespace Avalonia.Controls.UnitTests } private static TestServices Services => TestServices.MockThreadingInterface.With( - standardCursorFactory: Mock.Of()); + standardCursorFactory: Mock.Of()); private CalendarDatePicker CreateControl() { diff --git a/tests/Avalonia.Controls.UnitTests/CursorFactoryMock.cs b/tests/Avalonia.Controls.UnitTests/CursorFactoryMock.cs index 66c6033fb4..0c5a395ba4 100644 --- a/tests/Avalonia.Controls.UnitTests/CursorFactoryMock.cs +++ b/tests/Avalonia.Controls.UnitTests/CursorFactoryMock.cs @@ -4,7 +4,7 @@ using Avalonia.Platform; namespace Avalonia.Controls.UnitTests { - public class CursorFactoryMock : IStandardCursorFactory + public class CursorFactoryMock : ICursorFactory { public IPlatformHandle GetCursor(StandardCursorType cursorType) { diff --git a/tests/Avalonia.Controls.UnitTests/DatePickerTests.cs b/tests/Avalonia.Controls.UnitTests/DatePickerTests.cs index 7bcb120850..3105263290 100644 --- a/tests/Avalonia.Controls.UnitTests/DatePickerTests.cs +++ b/tests/Avalonia.Controls.UnitTests/DatePickerTests.cs @@ -204,7 +204,7 @@ namespace Avalonia.Controls.UnitTests private static TestServices Services => TestServices.MockThreadingInterface.With( fontManagerImpl: new MockFontManagerImpl(), - standardCursorFactory: Mock.Of(), + standardCursorFactory: Mock.Of(), textShaperImpl: new MockTextShaperImpl()); private IControlTemplate CreateTemplate() diff --git a/tests/Avalonia.Controls.UnitTests/GridSplitterTests.cs b/tests/Avalonia.Controls.UnitTests/GridSplitterTests.cs index f2b6b0db4b..72ccead783 100644 --- a/tests/Avalonia.Controls.UnitTests/GridSplitterTests.cs +++ b/tests/Avalonia.Controls.UnitTests/GridSplitterTests.cs @@ -11,8 +11,8 @@ namespace Avalonia.Controls.UnitTests { public GridSplitterTests() { - var cursorFactoryImpl = new Mock(); - AvaloniaLocator.CurrentMutable.Bind().ToConstant(cursorFactoryImpl.Object); + var cursorFactoryImpl = new Mock(); + AvaloniaLocator.CurrentMutable.Bind().ToConstant(cursorFactoryImpl.Object); } [Fact] diff --git a/tests/Avalonia.Controls.UnitTests/TextBoxTests.cs b/tests/Avalonia.Controls.UnitTests/TextBoxTests.cs index fe25fa7346..6ac7799828 100644 --- a/tests/Avalonia.Controls.UnitTests/TextBoxTests.cs +++ b/tests/Avalonia.Controls.UnitTests/TextBoxTests.cs @@ -698,10 +698,10 @@ namespace Avalonia.Controls.UnitTests keyboardDevice: () => new KeyboardDevice(), keyboardNavigation: new KeyboardNavigationHandler(), inputManager: new InputManager(), - standardCursorFactory: Mock.Of()); + standardCursorFactory: Mock.Of()); private static TestServices Services => TestServices.MockThreadingInterface.With( - standardCursorFactory: Mock.Of()); + standardCursorFactory: Mock.Of()); private IControlTemplate CreateTemplate() { diff --git a/tests/Avalonia.Controls.UnitTests/TextBoxTests_DataValidation.cs b/tests/Avalonia.Controls.UnitTests/TextBoxTests_DataValidation.cs index 78b6bf01ec..570b9ee4ea 100644 --- a/tests/Avalonia.Controls.UnitTests/TextBoxTests_DataValidation.cs +++ b/tests/Avalonia.Controls.UnitTests/TextBoxTests_DataValidation.cs @@ -86,7 +86,7 @@ namespace Avalonia.Controls.UnitTests } private static TestServices Services => TestServices.MockThreadingInterface.With( - standardCursorFactory: Mock.Of()); + standardCursorFactory: Mock.Of()); private IControlTemplate CreateTemplate() { diff --git a/tests/Avalonia.Controls.UnitTests/TimePickerTests.cs b/tests/Avalonia.Controls.UnitTests/TimePickerTests.cs index 682f0eaadb..c39a963dae 100644 --- a/tests/Avalonia.Controls.UnitTests/TimePickerTests.cs +++ b/tests/Avalonia.Controls.UnitTests/TimePickerTests.cs @@ -100,7 +100,7 @@ namespace Avalonia.Controls.UnitTests private static TestServices Services => TestServices.MockThreadingInterface.With( fontManagerImpl: new MockFontManagerImpl(), - standardCursorFactory: Mock.Of(), + standardCursorFactory: Mock.Of(), textShaperImpl: new MockTextShaperImpl()); private IControlTemplate CreateTemplate() diff --git a/tests/Avalonia.UnitTests/TestServices.cs b/tests/Avalonia.UnitTests/TestServices.cs index 012cab23dc..8d27562146 100644 --- a/tests/Avalonia.UnitTests/TestServices.cs +++ b/tests/Avalonia.UnitTests/TestServices.cs @@ -23,7 +23,7 @@ namespace Avalonia.UnitTests assetLoader: new AssetLoader(), platform: new AppBuilder().RuntimePlatform, renderInterface: new MockPlatformRenderInterface(), - standardCursorFactory: Mock.Of(), + standardCursorFactory: Mock.Of(), styler: new Styler(), theme: () => CreateDefaultTheme(), threadingInterface: Mock.Of(x => x.CurrentThreadIsLoopThread == true), @@ -70,7 +70,7 @@ namespace Avalonia.UnitTests IPlatformRenderInterface renderInterface = null, IRenderTimer renderLoop = null, IScheduler scheduler = null, - IStandardCursorFactory standardCursorFactory = null, + ICursorFactory standardCursorFactory = null, IStyler styler = null, Func theme = null, IPlatformThreadingInterface threadingInterface = null, @@ -111,7 +111,7 @@ namespace Avalonia.UnitTests public IFontManagerImpl FontManagerImpl { get; } public ITextShaperImpl TextShaperImpl { get; } public IScheduler Scheduler { get; } - public IStandardCursorFactory StandardCursorFactory { get; } + public ICursorFactory StandardCursorFactory { get; } public IStyler Styler { get; } public Func Theme { get; } public IPlatformThreadingInterface ThreadingInterface { get; } @@ -130,7 +130,7 @@ namespace Avalonia.UnitTests IPlatformRenderInterface renderInterface = null, IRenderTimer renderLoop = null, IScheduler scheduler = null, - IStandardCursorFactory standardCursorFactory = null, + ICursorFactory standardCursorFactory = null, IStyler styler = null, Func theme = null, IPlatformThreadingInterface threadingInterface = null, diff --git a/tests/Avalonia.UnitTests/UnitTestApplication.cs b/tests/Avalonia.UnitTests/UnitTestApplication.cs index e4a65f105d..6fc82088e9 100644 --- a/tests/Avalonia.UnitTests/UnitTestApplication.cs +++ b/tests/Avalonia.UnitTests/UnitTestApplication.cs @@ -62,7 +62,7 @@ namespace Avalonia.UnitTests .Bind().ToConstant(Services.TextShaperImpl) .Bind().ToConstant(Services.ThreadingInterface) .Bind().ToConstant(Services.Scheduler) - .Bind().ToConstant(Services.StandardCursorFactory) + .Bind().ToConstant(Services.StandardCursorFactory) .Bind().ToConstant(Services.Styler) .Bind().ToConstant(Services.WindowingPlatform) .Bind().ToSingleton(); From ca408e55b5091449158cfae7536960464389f6fd Mon Sep 17 00:00:00 2001 From: Steven Kirk Date: Tue, 20 Oct 2020 14:32:28 +0200 Subject: [PATCH 027/689] Added ICursorImpl. --- .../Offscreen/OffscreenTopLevelImpl.cs | 2 +- .../Platform/ITopLevelImpl.cs | 2 +- src/Avalonia.Controls/TopLevel.cs | 2 +- src/Avalonia.DesignerSupport/Remote/Stubs.cs | 11 ++-- .../HeadlessPlatformStubs.cs | 10 ++-- src/Avalonia.Headless/HeadlessWindowImpl.cs | 2 +- src/Avalonia.Input/Cursor.cs | 6 +-- src/Avalonia.Input/Platform/ICursorFactory.cs | 4 +- src/Avalonia.Input/Platform/ICursorImpl.cs | 14 +++++ src/Avalonia.Native/Cursor.cs | 6 +-- src/Avalonia.Native/WindowImplBase.cs | 2 +- src/Avalonia.X11/X11CursorFactory.cs | 19 ++++--- src/Avalonia.X11/X11Window.cs | 8 ++- .../FramebufferToplevelImpl.cs | 2 +- src/Linux/Avalonia.LinuxFramebuffer/Stubs.cs | 10 ++-- .../Wpf/WpfTopLevelImpl.cs | 6 +-- src/Windows/Avalonia.Win32/CursorFactory.cs | 52 ++++++++++++------- .../Interop/UnmanagedMethods.cs | 3 ++ src/Windows/Avalonia.Win32/WindowImpl.cs | 15 ++++-- .../CursorFactoryMock.cs | 16 ++++-- 20 files changed, 121 insertions(+), 71 deletions(-) create mode 100644 src/Avalonia.Input/Platform/ICursorImpl.cs diff --git a/src/Avalonia.Controls/Embedding/Offscreen/OffscreenTopLevelImpl.cs b/src/Avalonia.Controls/Embedding/Offscreen/OffscreenTopLevelImpl.cs index 522103c7bd..ca0e9d48b8 100644 --- a/src/Avalonia.Controls/Embedding/Offscreen/OffscreenTopLevelImpl.cs +++ b/src/Avalonia.Controls/Embedding/Offscreen/OffscreenTopLevelImpl.cs @@ -61,7 +61,7 @@ namespace Avalonia.Controls.Embedding.Offscreen public virtual PixelPoint PointToScreen(Point point) => PixelPoint.FromPoint(point, 1); - public virtual void SetCursor(IPlatformHandle cursor) + public virtual void SetCursor(ICursorImpl cursor) { } diff --git a/src/Avalonia.Controls/Platform/ITopLevelImpl.cs b/src/Avalonia.Controls/Platform/ITopLevelImpl.cs index 7514f214aa..09f38042a1 100644 --- a/src/Avalonia.Controls/Platform/ITopLevelImpl.cs +++ b/src/Avalonia.Controls/Platform/ITopLevelImpl.cs @@ -98,7 +98,7 @@ namespace Avalonia.Platform /// Sets the cursor associated with the toplevel. /// /// The cursor. Use null for default cursor - void SetCursor(IPlatformHandle cursor); + void SetCursor(ICursorImpl cursor); /// /// Gets or sets a method called when the underlying implementation is destroyed. diff --git a/src/Avalonia.Controls/TopLevel.cs b/src/Avalonia.Controls/TopLevel.cs index 3d24f60463..ffccdeb3e2 100644 --- a/src/Avalonia.Controls/TopLevel.cs +++ b/src/Avalonia.Controls/TopLevel.cs @@ -162,7 +162,7 @@ namespace Avalonia.Controls this.GetObservable(PointerOverElementProperty) .Select( x => (x as InputElement)?.GetObservable(CursorProperty) ?? Observable.Empty()) - .Switch().Subscribe(cursor => PlatformImpl?.SetCursor(cursor?.PlatformCursor)); + .Switch().Subscribe(cursor => PlatformImpl?.SetCursor(cursor?.PlatformImpl)); if (((IStyleHost)this).StylingParent is IResourceHost applicationResources) { diff --git a/src/Avalonia.DesignerSupport/Remote/Stubs.cs b/src/Avalonia.DesignerSupport/Remote/Stubs.cs index df1e5d6e98..751c5c08f2 100644 --- a/src/Avalonia.DesignerSupport/Remote/Stubs.cs +++ b/src/Avalonia.DesignerSupport/Remote/Stubs.cs @@ -73,7 +73,7 @@ namespace Avalonia.DesignerSupport.Remote public PixelPoint PointToScreen(Point p) => PixelPoint.FromPoint(p, 1); - public void SetCursor(IPlatformHandle cursor) + public void SetCursor(ICursorImpl cursor) { } @@ -194,8 +194,13 @@ namespace Avalonia.DesignerSupport.Remote class CursorFactoryStub : ICursorFactory { - public IPlatformHandle GetCursor(StandardCursorType cursorType) => new PlatformHandle(IntPtr.Zero, "STUB"); - public IPlatformHandle CreateCursor(IBitmapImpl cursor, PixelPoint hotSpot) => new PlatformHandle(IntPtr.Zero, "STUB"); + public ICursorImpl GetCursor(StandardCursorType cursorType) => new CursorStub(); + public ICursorImpl CreateCursor(IBitmapImpl cursor, PixelPoint hotSpot) => new CursorStub(); + + private class CursorStub : ICursorImpl + { + public void Dispose() { } + } } class IconLoaderStub : IPlatformIconLoader diff --git a/src/Avalonia.Headless/HeadlessPlatformStubs.cs b/src/Avalonia.Headless/HeadlessPlatformStubs.cs index efad5133b9..ce4c31e27e 100644 --- a/src/Avalonia.Headless/HeadlessPlatformStubs.cs +++ b/src/Avalonia.Headless/HeadlessPlatformStubs.cs @@ -54,14 +54,12 @@ namespace Avalonia.Headless class HeadlessCursorFactoryStub : ICursorFactory { - public IPlatformHandle GetCursor(StandardCursorType cursorType) - { - return new PlatformHandle(new IntPtr((int)cursorType), "STUB"); - } + public ICursorImpl GetCursor(StandardCursorType cursorType) => new CursorStub(); + public ICursorImpl CreateCursor(IBitmapImpl cursor, PixelPoint hotSpot) => new CursorStub(); - public IPlatformHandle CreateCursor(IBitmapImpl cursor, PixelPoint hotSpot) + private class CursorStub : ICursorImpl { - return new PlatformHandle(IntPtr.Zero, "STUB"); + public void Dispose() { } } } diff --git a/src/Avalonia.Headless/HeadlessWindowImpl.cs b/src/Avalonia.Headless/HeadlessWindowImpl.cs index 8f4fa5e304..2c52438743 100644 --- a/src/Avalonia.Headless/HeadlessWindowImpl.cs +++ b/src/Avalonia.Headless/HeadlessWindowImpl.cs @@ -67,7 +67,7 @@ namespace Avalonia.Headless public PixelPoint PointToScreen(Point point) => PixelPoint.FromPoint(point, RenderScaling); - public void SetCursor(IPlatformHandle cursor) + public void SetCursor(ICursorImpl cursor) { } diff --git a/src/Avalonia.Input/Cursor.cs b/src/Avalonia.Input/Cursor.cs index f018041a94..052ef5e9a0 100644 --- a/src/Avalonia.Input/Cursor.cs +++ b/src/Avalonia.Input/Cursor.cs @@ -53,9 +53,9 @@ namespace Avalonia.Input { public static readonly Cursor Default = new Cursor(StandardCursorType.Arrow); - internal Cursor(IPlatformHandle platformCursor) + internal Cursor(ICursorImpl platformImpl) { - PlatformCursor = platformCursor; + PlatformImpl = platformImpl; } public Cursor(StandardCursorType cursorType) @@ -68,7 +68,7 @@ namespace Avalonia.Input { } - public IPlatformHandle PlatformCursor { get; } + public ICursorImpl PlatformImpl { get; } public static Cursor Parse(string s) { diff --git a/src/Avalonia.Input/Platform/ICursorFactory.cs b/src/Avalonia.Input/Platform/ICursorFactory.cs index e531015d40..fff1f92d53 100644 --- a/src/Avalonia.Input/Platform/ICursorFactory.cs +++ b/src/Avalonia.Input/Platform/ICursorFactory.cs @@ -6,7 +6,7 @@ namespace Avalonia.Platform { public interface ICursorFactory { - IPlatformHandle GetCursor(StandardCursorType cursorType); - IPlatformHandle CreateCursor(IBitmapImpl cursor, PixelPoint hotSpot); + ICursorImpl GetCursor(StandardCursorType cursorType); + ICursorImpl CreateCursor(IBitmapImpl cursor, PixelPoint hotSpot); } } diff --git a/src/Avalonia.Input/Platform/ICursorImpl.cs b/src/Avalonia.Input/Platform/ICursorImpl.cs new file mode 100644 index 0000000000..14235869f7 --- /dev/null +++ b/src/Avalonia.Input/Platform/ICursorImpl.cs @@ -0,0 +1,14 @@ +using System; +using Avalonia.Input; + +#nullable enable + +namespace Avalonia.Platform +{ + /// + /// Represents a platform implementation of a . + /// + public interface ICursorImpl : IDisposable + { + } +} diff --git a/src/Avalonia.Native/Cursor.cs b/src/Avalonia.Native/Cursor.cs index ebee4baafe..2cb085bc7e 100644 --- a/src/Avalonia.Native/Cursor.cs +++ b/src/Avalonia.Native/Cursor.cs @@ -5,7 +5,7 @@ using Avalonia.Native.Interop; namespace Avalonia.Native { - class AvaloniaNativeCursor : IPlatformHandle, IDisposable + class AvaloniaNativeCursor : ICursorImpl, IDisposable { public IAvnCursor Cursor { get; private set; } public IntPtr Handle => IntPtr.Zero; @@ -33,13 +33,13 @@ namespace Avalonia.Native _native = native; } - public IPlatformHandle GetCursor(StandardCursorType cursorType) + public ICursorImpl GetCursor(StandardCursorType cursorType) { var cursor = _native.GetCursor((AvnStandardCursorType)cursorType); return new AvaloniaNativeCursor( cursor ); } - public IPlatformHandle CreateCursor(IBitmapImpl cursor, PixelPoint hotSpot) + public ICursorImpl CreateCursor(IBitmapImpl cursor, PixelPoint hotSpot) { throw new NotImplementedException(); } diff --git a/src/Avalonia.Native/WindowImplBase.cs b/src/Avalonia.Native/WindowImplBase.cs index e4643bf675..ad2b7411eb 100644 --- a/src/Avalonia.Native/WindowImplBase.cs +++ b/src/Avalonia.Native/WindowImplBase.cs @@ -389,7 +389,7 @@ namespace Avalonia.Native public Action Deactivated { get; set; } public Action Activated { get; set; } - public void SetCursor(IPlatformHandle cursor) + public void SetCursor(ICursorImpl cursor) { if (_native == null) { diff --git a/src/Avalonia.X11/X11CursorFactory.cs b/src/Avalonia.X11/X11CursorFactory.cs index 7f08407239..f95d4320fe 100644 --- a/src/Avalonia.X11/X11CursorFactory.cs +++ b/src/Avalonia.X11/X11CursorFactory.cs @@ -56,7 +56,7 @@ namespace Avalonia.X11 .ToDictionary(id => id, id => XLib.XCreateFontCursor(_display, id)); } - public IPlatformHandle GetCursor(StandardCursorType cursorType) + public ICursorImpl GetCursor(StandardCursorType cursorType) { IntPtr handle; if (cursorType == StandardCursorType.None) @@ -69,10 +69,10 @@ namespace Avalonia.X11 ? _cursors[shape] : _cursors[CursorFontShape.XC_top_left_arrow]; } - return new PlatformHandle(handle, "XCURSOR"); + return new CursorImpl(handle); } - public unsafe IPlatformHandle CreateCursor(IBitmapImpl cursor, PixelPoint hotSpot) + public unsafe ICursorImpl CreateCursor(IBitmapImpl cursor, PixelPoint hotSpot) { return new XImageCursor(_display, cursor, hotSpot); } @@ -85,7 +85,7 @@ namespace Avalonia.X11 return XLib.XCreatePixmapCursor(display, pixmap, pixmap, ref color, ref color, 0, 0); } - private unsafe class XImageCursor : IFramebufferPlatformSurface, IPlatformHandle, IDisposable + private unsafe class XImageCursor : CursorImpl, IFramebufferPlatformSurface, IPlatformHandle { private readonly PixelSize _pixelSize; private readonly IUnmanagedBlob _blob; @@ -117,10 +117,9 @@ namespace Avalonia.X11 Handle = XLib.XcursorImageLoadCursor(display, _blob.Address); } - public IntPtr Handle { get; } public string HandleDescriptor => "XCURSOR"; - public void Dispose() + public override void Dispose() { XLib.XcursorImageDestroy(Handle); _blob.Dispose(); @@ -135,4 +134,12 @@ namespace Avalonia.X11 } } } + + class CursorImpl : ICursorImpl + { + public CursorImpl() { } + public CursorImpl(IntPtr handle) => Handle = handle; + public IntPtr Handle { get; protected set; } + public virtual void Dispose() { } + } } diff --git a/src/Avalonia.X11/X11Window.cs b/src/Avalonia.X11/X11Window.cs index 2cd3b973d8..32c455571f 100644 --- a/src/Avalonia.X11/X11Window.cs +++ b/src/Avalonia.X11/X11Window.cs @@ -878,15 +878,13 @@ namespace Avalonia.X11 UpdateSizeHints(null); } - public void SetCursor(IPlatformHandle cursor) + public void SetCursor(ICursorImpl cursor) { if (cursor == null) XDefineCursor(_x11.Display, _handle, _x11.DefaultCursor); - else + else if (cursor is CursorImpl impl) { - if (cursor.HandleDescriptor != "XCURSOR") - throw new ArgumentException("Expected XCURSOR handle type"); - XDefineCursor(_x11.Display, _handle, cursor.Handle); + XDefineCursor(_x11.Display, _handle, impl.Handle); } } diff --git a/src/Linux/Avalonia.LinuxFramebuffer/FramebufferToplevelImpl.cs b/src/Linux/Avalonia.LinuxFramebuffer/FramebufferToplevelImpl.cs index 0a101eec7a..4bbb58e53e 100644 --- a/src/Linux/Avalonia.LinuxFramebuffer/FramebufferToplevelImpl.cs +++ b/src/Linux/Avalonia.LinuxFramebuffer/FramebufferToplevelImpl.cs @@ -57,7 +57,7 @@ namespace Avalonia.LinuxFramebuffer public PixelPoint PointToScreen(Point p) => PixelPoint.FromPoint(p, 1); - public void SetCursor(IPlatformHandle cursor) + public void SetCursor(ICursorImpl cursor) { } diff --git a/src/Linux/Avalonia.LinuxFramebuffer/Stubs.cs b/src/Linux/Avalonia.LinuxFramebuffer/Stubs.cs index def5f6b817..642be28c69 100644 --- a/src/Linux/Avalonia.LinuxFramebuffer/Stubs.cs +++ b/src/Linux/Avalonia.LinuxFramebuffer/Stubs.cs @@ -6,14 +6,12 @@ namespace Avalonia.LinuxFramebuffer { internal class CursorFactoryStub : ICursorFactory { - public IPlatformHandle GetCursor(StandardCursorType cursorType) - { - return new PlatformHandle(IntPtr.Zero, null); - } + public ICursorImpl GetCursor(StandardCursorType cursorType) => new CursorStub(); + public ICursorImpl CreateCursor(IBitmapImpl cursor, PixelPoint hotSpot) => new CursorStub(); - public IPlatformHandle CreateCursor(IBitmapImpl cursor, PixelPoint hotSpot) + private class CursorStub : ICursorImpl { - return new PlatformHandle(IntPtr.Zero, null); + public void Dispose() { } } } internal class PlatformSettings : IPlatformSettings diff --git a/src/Windows/Avalonia.Win32.Interop/Wpf/WpfTopLevelImpl.cs b/src/Windows/Avalonia.Win32.Interop/Wpf/WpfTopLevelImpl.cs index 3467a33d16..3bb29f4e23 100644 --- a/src/Windows/Avalonia.Win32.Interop/Wpf/WpfTopLevelImpl.cs +++ b/src/Windows/Avalonia.Win32.Interop/Wpf/WpfTopLevelImpl.cs @@ -225,12 +225,12 @@ namespace Avalonia.Win32.Interop.Wpf protected override void OnTextInput(TextCompositionEventArgs e) => _ttl.Input?.Invoke(new RawTextInputEventArgs(_keyboard, (uint) e.Timestamp, _inputRoot, e.Text)); - void ITopLevelImpl.SetCursor(IPlatformHandle cursor) + void ITopLevelImpl.SetCursor(ICursorImpl cursor) { if (cursor == null) Cursor = Cursors.Arrow; - else if (cursor.HandleDescriptor == "HCURSOR") - Cursor = CursorShim.FromHCursor(cursor.Handle); + else if (cursor is IPlatformHandle handle) + Cursor = CursorShim.FromHCursor(handle.Handle); } Action ITopLevelImpl.Input { get; set; } //TODO diff --git a/src/Windows/Avalonia.Win32/CursorFactory.cs b/src/Windows/Avalonia.Win32/CursorFactory.cs index aca5f42771..10878ba7b5 100644 --- a/src/Windows/Avalonia.Win32/CursorFactory.cs +++ b/src/Windows/Avalonia.Win32/CursorFactory.cs @@ -3,9 +3,7 @@ using System.Collections.Generic; using System.Drawing; using System.Drawing.Imaging; using System.IO; -using System.Runtime.InteropServices; using Avalonia.Input; -using Avalonia.Media.Imaging; using Avalonia.Platform; using Avalonia.Win32.Interop; using SdBitmap = System.Drawing.Bitmap; @@ -36,8 +34,7 @@ namespace Avalonia.Win32 IntPtr cursor = UnmanagedMethods.LoadCursor(mh, new IntPtr(id)); if (cursor != IntPtr.Zero) { - PlatformHandle phCursor = new PlatformHandle(cursor, PlatformConstants.CursorHandleType); - Cache.Add(cursorType, phCursor); + Cache.Add(cursorType, new CursorImpl(cursor, false)); } } } @@ -77,25 +74,23 @@ namespace Avalonia.Win32 {StandardCursorType.DragLink, 32516}, }; - private static readonly Dictionary Cache = - new Dictionary(); + private static readonly Dictionary Cache = + new Dictionary(); - public IPlatformHandle GetCursor(StandardCursorType cursorType) + public ICursorImpl GetCursor(StandardCursorType cursorType) { - IPlatformHandle rv; - if (!Cache.TryGetValue(cursorType, out rv)) + if (!Cache.TryGetValue(cursorType, out var rv)) { - Cache[cursorType] = - rv = - new PlatformHandle( - UnmanagedMethods.LoadCursor(IntPtr.Zero, new IntPtr(CursorTypeMapping[cursorType])), - PlatformConstants.CursorHandleType); + rv = new CursorImpl( + UnmanagedMethods.LoadCursor(IntPtr.Zero, new IntPtr(CursorTypeMapping[cursorType])), + false); + Cache.Add(cursorType, rv); } return rv; } - public IPlatformHandle CreateCursor(IBitmapImpl cursor, PixelPoint hotSpot) + public ICursorImpl CreateCursor(IBitmapImpl cursor, PixelPoint hotSpot) { using var source = LoadSystemDrawingBitmap(cursor); using var mask = AlphaToMask(source); @@ -109,9 +104,7 @@ namespace Avalonia.Win32 ColorBitmap = source.GetHbitmap(), }; - return new PlatformHandle( - UnmanagedMethods.CreateIconIndirect(ref info), - PlatformConstants.CursorHandleType); + return new CursorImpl(UnmanagedMethods.CreateIconIndirect(ref info), true); } private SdBitmap LoadSystemDrawingBitmap(IBitmapImpl bitmap) @@ -168,4 +161,27 @@ namespace Avalonia.Win32 } } } + + internal class CursorImpl : ICursorImpl, IPlatformHandle + { + private readonly bool _isCustom; + + public CursorImpl(IntPtr handle, bool isCustom) + { + Handle = handle; + _isCustom = isCustom; + } + + public IntPtr Handle { get; private set; } + public string HandleDescriptor => PlatformConstants.CursorHandleType; + + public void Dispose() + { + if (_isCustom && Handle != IntPtr.Zero) + { + UnmanagedMethods.DestroyIcon(Handle); + Handle = IntPtr.Zero; + } + } + } } diff --git a/src/Windows/Avalonia.Win32/Interop/UnmanagedMethods.cs b/src/Windows/Avalonia.Win32/Interop/UnmanagedMethods.cs index c18a5c07c5..3b11aecc2d 100644 --- a/src/Windows/Avalonia.Win32/Interop/UnmanagedMethods.cs +++ b/src/Windows/Avalonia.Win32/Interop/UnmanagedMethods.cs @@ -1034,6 +1034,9 @@ namespace Avalonia.Win32.Interop [DllImport("user32.dll")] public static extern IntPtr CreateIconIndirect([In] ref ICONINFO iconInfo); + [DllImport("user32.dll")] + public static extern bool DestroyIcon(IntPtr hIcon); + [DllImport("user32.dll")] public static extern bool PeekMessage(out MSG lpMsg, IntPtr hWnd, uint wMsgFilterMin, uint wMsgFilterMax, uint wRemoveMsg); diff --git a/src/Windows/Avalonia.Win32/WindowImpl.cs b/src/Windows/Avalonia.Win32/WindowImpl.cs index 7079a0120c..755570bff1 100644 --- a/src/Windows/Avalonia.Win32/WindowImpl.cs +++ b/src/Windows/Avalonia.Win32/WindowImpl.cs @@ -557,14 +557,19 @@ namespace Avalonia.Win32 SetWindowText(_hwnd, title); } - public void SetCursor(IPlatformHandle cursor) + public void SetCursor(ICursorImpl cursor) { - var hCursor = cursor?.Handle ?? DefaultCursor; - SetClassLong(_hwnd, ClassLongIndex.GCLP_HCURSOR, hCursor); + var impl = cursor as CursorImpl; - if (_owner.IsPointerOver) + if (cursor is null || impl is object) { - UnmanagedMethods.SetCursor(hCursor); + var hCursor = impl?.Handle ?? DefaultCursor; + SetClassLong(_hwnd, ClassLongIndex.GCLP_HCURSOR, hCursor); + + if (_owner.IsPointerOver) + { + UnmanagedMethods.SetCursor(hCursor); + } } } diff --git a/tests/Avalonia.Controls.UnitTests/CursorFactoryMock.cs b/tests/Avalonia.Controls.UnitTests/CursorFactoryMock.cs index 0c5a395ba4..ee4264e6b9 100644 --- a/tests/Avalonia.Controls.UnitTests/CursorFactoryMock.cs +++ b/tests/Avalonia.Controls.UnitTests/CursorFactoryMock.cs @@ -1,4 +1,3 @@ -using System; using Avalonia.Input; using Avalonia.Platform; @@ -6,14 +5,21 @@ namespace Avalonia.Controls.UnitTests { public class CursorFactoryMock : ICursorFactory { - public IPlatformHandle GetCursor(StandardCursorType cursorType) + public ICursorImpl GetCursor(StandardCursorType cursorType) { - return new PlatformHandle(IntPtr.Zero, cursorType.ToString()); + return new MockCursorImpl(); } - public IPlatformHandle CreateCursor(IBitmapImpl cursor, PixelPoint hotSpot) + public ICursorImpl CreateCursor(IBitmapImpl cursor, PixelPoint hotSpot) { - return new PlatformHandle(IntPtr.Zero, "Custom"); + return new MockCursorImpl(); + } + + private class MockCursorImpl : ICursorImpl + { + public void Dispose() + { + } } } } From f0d097ed1234a9a45ab42451c52bba8afc4ac37d Mon Sep 17 00:00:00 2001 From: Steven Kirk Date: Tue, 20 Oct 2020 14:34:50 +0200 Subject: [PATCH 028/689] Make Cursor disposable. --- src/Avalonia.Input/Cursor.cs | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) diff --git a/src/Avalonia.Input/Cursor.cs b/src/Avalonia.Input/Cursor.cs index 052ef5e9a0..2b99c51472 100644 --- a/src/Avalonia.Input/Cursor.cs +++ b/src/Avalonia.Input/Cursor.cs @@ -6,13 +6,6 @@ using Avalonia.Platform; namespace Avalonia.Input { - /* - ========================================================================================= - NOTE: Cursors are NOT disposable and are cached in platform implementation. - To support loading custom cursors some measures about that should be taken beforehand - ========================================================================================= - */ - public enum StandardCursorType { Arrow, @@ -49,7 +42,7 @@ namespace Avalonia.Input // SizeNorthEastSouthWest, } - public class Cursor + public class Cursor : IDisposable { public static readonly Cursor Default = new Cursor(StandardCursorType.Arrow); @@ -70,6 +63,8 @@ namespace Avalonia.Input public ICursorImpl PlatformImpl { get; } + public void Dispose() => PlatformImpl.Dispose(); + public static Cursor Parse(string s) { return Enum.TryParse(s, true, out var t) ? From 04f5d3a252f1c029ccc64f16684c07eb8cd6c798 Mon Sep 17 00:00:00 2001 From: Steven Kirk Date: Tue, 20 Oct 2020 14:38:01 +0200 Subject: [PATCH 029/689] Don't allow premultipied alpha for the moment. --- src/Windows/Avalonia.Win32/CursorFactory.cs | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/Windows/Avalonia.Win32/CursorFactory.cs b/src/Windows/Avalonia.Win32/CursorFactory.cs index 10878ba7b5..0a0e45b03a 100644 --- a/src/Windows/Avalonia.Win32/CursorFactory.cs +++ b/src/Windows/Avalonia.Win32/CursorFactory.cs @@ -118,8 +118,13 @@ namespace Avalonia.Win32 { var dest = new SdBitmap(source.Width, source.Height, SdPixelFormat.Format1bppIndexed); - if (source.PixelFormat != SdPixelFormat.Format32bppArgb && - source.PixelFormat != SdPixelFormat.Format32bppPArgb) + if (source.PixelFormat == SdPixelFormat.Format32bppPArgb) + { + throw new NotSupportedException( + "Images with premultiplied alpha not yet supported as cursor images."); + } + + if (source.PixelFormat != SdPixelFormat.Format32bppArgb) { return dest; } From 98974af13e7e08662c32b4744e6df9f89490d97c Mon Sep 17 00:00:00 2001 From: Steven Kirk Date: Wed, 21 Oct 2020 14:44:24 +0200 Subject: [PATCH 030/689] Added cursor page to control catalog. --- samples/ControlCatalog/Assets/avalonia-32.png | Bin 0 -> 1322 bytes samples/ControlCatalog/MainView.xaml | 4 ++ samples/ControlCatalog/Pages/CursorPage.xaml | 29 ++++++++++++ .../ControlCatalog/Pages/CursorPage.xaml.cs | 20 +++++++++ .../ViewModels/CursorPageViewModel.cs | 42 ++++++++++++++++++ 5 files changed, 95 insertions(+) create mode 100644 samples/ControlCatalog/Assets/avalonia-32.png create mode 100644 samples/ControlCatalog/Pages/CursorPage.xaml create mode 100644 samples/ControlCatalog/Pages/CursorPage.xaml.cs create mode 100644 samples/ControlCatalog/ViewModels/CursorPageViewModel.cs diff --git a/samples/ControlCatalog/Assets/avalonia-32.png b/samples/ControlCatalog/Assets/avalonia-32.png new file mode 100644 index 0000000000000000000000000000000000000000..7b443e7a250846dc898e6467cddeed8c55880766 GIT binary patch literal 1322 zcmV+_1=aeAP)A zL5V<&1`?F`W{`LZcsE5cBpMzF4;mv6L;;~9STsnu#G;m4u_XwFBGRT;C>`6GUgn(T zL)$4c=S({l;{UQ|_FDV=|6Y6Tb=DCggsQrL1;9dJ29OIR^qV_@TA&g*4xAK`-bkN4 z9C5m;mZ)ljMvf*`-Kwf%?}yk>)mK&3GXmmJbg1eZ{m~l{d7`S8-Uo3gep1zxNXaLv zYSjZIAHbigniI+=A>>IwIZ!Z^$o9rgT58+rX!W5AiD_}9PaZ`|X5w)By8#r7NUKeN zsv5v|z%r+mmfzx!BR9Bs_y#St?T$}Rn>32TB~y5G>114PBbTZ98d$;Vp#KA9s55xh1snb zVql0XA`$Lr7fUu3F?C*+li3I4iAdc*oHjU-H`Lr_?|aAS_Vr+?iKSLxRCGuI{vMMb zK0ZUk2-=%=h?IY zi`~EzPRh&oS7NDYn_skkCi9*z44TU>OeecAopT4SaeU`R+nUNljsgG{8T7qa0_gPk zXlwS6nU~go-h*d9ZQcYM`MsF6BA5Jy*|vF4lb7b}cb%5ZFn}oo|JrZ=!;Uw1vwh<( zW-ZO<@uv%dM9f`1WPJjlXysJL`Q~em0&)x>8Nl1o#aATvT{Op4xk1SOI5BuQ<-fC&z>p5V$uYLPByp$*GA{ zp16$P^aoYHvq!3^ID9EAdG)bc&K+_VkT53JX<7~XdN>>AE`KbD+)@+MviN388T+;# zrTOMyiM?Id&f(9>`L^T)rsa?TLqJqD7H9y1I+mWUUfx>%DV|nu*isxDAA`$q)9W*X zY)MfmgjVRHRe3B}Z@b2pAtGJC?odl~Y!ok+tVCScA~7&_dAsp-`bPYsx)%e5ejCso zYRoU1!kTxMgP~zX432}pM*;&tL~atM8JV+eCL4CFC1G@I#3CZ87oiaV_z*bhHmSh z$FX-7ktX^Yl}~^N^O5O{ABXi&)f`p*LRC8-@RyQDRdXYjs;Wt<`dq)5v#Q$iA4n}# g?NZe;Rhb%7 literal 0 HcmV?d00001 diff --git a/samples/ControlCatalog/MainView.xaml b/samples/ControlCatalog/MainView.xaml index bd5beafe29..34ff4b1a54 100644 --- a/samples/ControlCatalog/MainView.xaml +++ b/samples/ControlCatalog/MainView.xaml @@ -22,6 +22,10 @@ + + + diff --git a/samples/ControlCatalog/Pages/CursorPage.xaml b/samples/ControlCatalog/Pages/CursorPage.xaml new file mode 100644 index 0000000000..a28039ea3f --- /dev/null +++ b/samples/ControlCatalog/Pages/CursorPage.xaml @@ -0,0 +1,29 @@ + + + + Cursor + Defines a cursor (mouse pointer) + + + + + + + + + + + + + + + + + + diff --git a/samples/ControlCatalog/Pages/CursorPage.xaml.cs b/samples/ControlCatalog/Pages/CursorPage.xaml.cs new file mode 100644 index 0000000000..9e9e9ba8b9 --- /dev/null +++ b/samples/ControlCatalog/Pages/CursorPage.xaml.cs @@ -0,0 +1,20 @@ +using Avalonia.Controls; +using Avalonia.Markup.Xaml; +using ControlCatalog.ViewModels; + +namespace ControlCatalog.Pages +{ + public class CursorPage : UserControl + { + public CursorPage() + { + this.InitializeComponent(); + DataContext = new CursorPageViewModel(); + } + + private void InitializeComponent() + { + AvaloniaXamlLoader.Load(this); + } + } +} diff --git a/samples/ControlCatalog/ViewModels/CursorPageViewModel.cs b/samples/ControlCatalog/ViewModels/CursorPageViewModel.cs new file mode 100644 index 0000000000..a4c643dd04 --- /dev/null +++ b/samples/ControlCatalog/ViewModels/CursorPageViewModel.cs @@ -0,0 +1,42 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using Avalonia; +using Avalonia.Input; +using Avalonia.Media.Imaging; +using Avalonia.Platform; +using ReactiveUI; + +namespace ControlCatalog.ViewModels +{ + public class CursorPageViewModel : ReactiveObject + { + public CursorPageViewModel() + { + StandardCursors = Enum.GetValues(typeof(StandardCursorType)) + .Cast() + .Select(x => new StandardCursorModel(x)) + .ToList(); + + var loader = AvaloniaLocator.Current.GetService(); + var s = loader.Open(new Uri("avares://ControlCatalog/Assets/avalonia-32.png")); + var bitmap = new Bitmap(s); + CustomCursor = new Cursor(bitmap, new PixelPoint(16, 16)); + } + + public IEnumerable StandardCursors { get; } + public Cursor CustomCursor { get; } + + public class StandardCursorModel + { + public StandardCursorModel(StandardCursorType type) + { + Type = type; + Cursor = new Cursor(type); + } + + public StandardCursorType Type { get; } + public Cursor Cursor { get; } + } + } +} From 41c4630bbb2fac9e9247f864d510079a9e60327b Mon Sep 17 00:00:00 2001 From: Adir Date: Fri, 23 Oct 2020 14:08:05 +0300 Subject: [PATCH 031/689] Changed if statements to have braces Moved comments above if --- src/Avalonia.Controls/Button.cs | 8 +++++--- src/Avalonia.Controls/MenuItem.cs | 8 +++++--- 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/src/Avalonia.Controls/Button.cs b/src/Avalonia.Controls/Button.cs index 87fabf5ed7..9cd7a19e7e 100644 --- a/src/Avalonia.Controls/Button.cs +++ b/src/Avalonia.Controls/Button.cs @@ -208,9 +208,11 @@ namespace Avalonia.Controls protected override void OnAttachedToLogicalTree(LogicalTreeAttachmentEventArgs e) { - if (_hotkey != null) - // Control attached again, set Hotkey to create a hotkey manager for this control + if (_hotkey != null) // Control attached again, set Hotkey to create a hotkey manager for this control + { HotKey = _hotkey; + } + base.OnAttachedToLogicalTree(e); if (Command != null) @@ -221,9 +223,9 @@ namespace Avalonia.Controls protected override void OnDetachedFromLogicalTree(LogicalTreeAttachmentEventArgs e) { + // This will cause the hotkey manager to dispose the observer and the reference to this control if (HotKey != null) { - // This will cause the hotkey manager to dispose the observer and the reference to this control _hotkey = HotKey; HotKey = null; } diff --git a/src/Avalonia.Controls/MenuItem.cs b/src/Avalonia.Controls/MenuItem.cs index faf92c97fe..8612f696bc 100644 --- a/src/Avalonia.Controls/MenuItem.cs +++ b/src/Avalonia.Controls/MenuItem.cs @@ -338,9 +338,11 @@ namespace Avalonia.Controls protected override void OnAttachedToLogicalTree(LogicalTreeAttachmentEventArgs e) { - if (_hotkey != null) - // Control attached again, set Hotkey to create a hotkey manager for this control + if (_hotkey != null) // Control attached again, set Hotkey to create a hotkey manager for this control + { HotKey = _hotkey; + } + base.OnAttachedToLogicalTree(e); if (Command != null) @@ -351,9 +353,9 @@ namespace Avalonia.Controls protected override void OnDetachedFromLogicalTree(LogicalTreeAttachmentEventArgs e) { + // This will cause the hotkey manager to dispose the observer and the reference to this control if (HotKey != null) { - // This will cause the hotkey manager to dispose the observer and the reference to this control _hotkey = HotKey; HotKey = null; } From 13cd835bc0b2b33e8a2884f21b91080d72c8126d Mon Sep 17 00:00:00 2001 From: adospace Date: Sat, 7 Nov 2020 00:00:18 +0100 Subject: [PATCH 032/689] ItemsControl+ItemVirtualizerSimple did not recreated item containers when Items or ItemTemplate were replaced --- global.json | 2 +- src/Avalonia.Controls/ItemsControl.cs | 6 +- .../Presenters/ItemVirtualizerSimple.cs | 4 + .../Presenters/ItemsPresenterBase.cs | 4 +- .../ItemsControlTests.cs | 92 ++++++++++++++ .../ListBoxTests.cs | 112 ++++++++++++++++++ 6 files changed, 217 insertions(+), 3 deletions(-) diff --git a/global.json b/global.json index b2b2da7c4f..684d9bed71 100644 --- a/global.json +++ b/global.json @@ -1,6 +1,6 @@ { "sdk": { - "version": "3.1.401" + "version": "3.1.301" }, "msbuild-sdks": { "Microsoft.Build.Traversal": "1.0.43", diff --git a/src/Avalonia.Controls/ItemsControl.cs b/src/Avalonia.Controls/ItemsControl.cs index 4dc8aec6f3..f955df5f21 100644 --- a/src/Avalonia.Controls/ItemsControl.cs +++ b/src/Avalonia.Controls/ItemsControl.cs @@ -449,7 +449,11 @@ namespace Avalonia.Controls if (_itemContainerGenerator != null) { _itemContainerGenerator.ItemTemplate = (IDataTemplate)e.NewValue; - // TODO: Rebuild the item containers. + + if (e.OldValue != null && Presenter != null) + { + Presenter.ItemsChanged(new NotifyCollectionChangedEventArgs(NotifyCollectionChangedAction.Reset)); + } } } diff --git a/src/Avalonia.Controls/Presenters/ItemVirtualizerSimple.cs b/src/Avalonia.Controls/Presenters/ItemVirtualizerSimple.cs index 7d50ef7d33..51dbc969a8 100644 --- a/src/Avalonia.Controls/Presenters/ItemVirtualizerSimple.cs +++ b/src/Avalonia.Controls/Presenters/ItemVirtualizerSimple.cs @@ -200,6 +200,10 @@ namespace Avalonia.Controls.Presenters break; case NotifyCollectionChangedAction.Reset: + Owner.ItemContainerGenerator.Clear(); + VirtualizingPanel.Children.Clear(); + FirstIndex = NextIndex = 0; + RecycleContainersOnRemove(); CreateAndRemoveContainers(); panel.ForceInvalidateMeasure(); diff --git a/src/Avalonia.Controls/Presenters/ItemsPresenterBase.cs b/src/Avalonia.Controls/Presenters/ItemsPresenterBase.cs index 52f173fc71..6c408bbed9 100644 --- a/src/Avalonia.Controls/Presenters/ItemsPresenterBase.cs +++ b/src/Avalonia.Controls/Presenters/ItemsPresenterBase.cs @@ -57,6 +57,8 @@ namespace Avalonia.Controls.Presenters set { + var itemsReplaced = (_items != value); + _itemsSubscription?.Dispose(); _itemsSubscription = null; @@ -67,7 +69,7 @@ namespace Avalonia.Controls.Presenters SetAndRaise(ItemsProperty, ref _items, value); - if (_createdPanel) + if (_createdPanel && itemsReplaced) { ItemsChanged(new NotifyCollectionChangedEventArgs(NotifyCollectionChangedAction.Reset)); } diff --git a/tests/Avalonia.Controls.UnitTests/ItemsControlTests.cs b/tests/Avalonia.Controls.UnitTests/ItemsControlTests.cs index 684486cbae..157eefb84a 100644 --- a/tests/Avalonia.Controls.UnitTests/ItemsControlTests.cs +++ b/tests/Avalonia.Controls.UnitTests/ItemsControlTests.cs @@ -596,6 +596,98 @@ namespace Avalonia.Controls.UnitTests root.Child = target; } + [Fact] + public void Presenter_Items_Should_Be_In_Sync_When_Replacing_Items() + { + var target = new ItemsControl + { + Template = GetTemplate(), + Items = new[] + { + new Item("Item1") + } + }; + + var root = new TestRoot { Child = target }; + var otherPanel = new StackPanel(); + + target.ApplyTemplate(); + target.Presenter.ApplyTemplate(); + + int dematerializedEventCallCount = 0; + target.ItemContainerGenerator.Dematerialized += (s, e) => + { + Assert.IsType(e.Containers[0].Item); + Assert.Equal("Item1", ((Item)e.Containers[0].Item).Value); + dematerializedEventCallCount++; + }; + + int materializedEventCallCount = 0; + target.ItemContainerGenerator.Materialized += (s, e) => + { + Assert.IsType(e.Containers[0].Item); + Assert.Equal("Item2", ((Item)e.Containers[0].Item).Value); + materializedEventCallCount++; + }; + + target.Items = new[] + { + new Item("Item2") + }; + + //Ensure that events are called one time only + Assert.Equal(1, dematerializedEventCallCount); + Assert.Equal(1, materializedEventCallCount); + } + + [Fact] + public void Presenter_Items_Should_Be_In_Sync_When_Replacing_ItemTemplate() + { + var target = new ItemsControl + { + Template = GetTemplate(), + Items = new[] + { + new Item("Item1") + }, + ItemTemplate = new FuncDataTemplate((x, ns) => new TextBlock()) + }; + + var root = new TestRoot { Child = target }; + var otherPanel = new StackPanel(); + + target.ApplyTemplate(); + target.Presenter.ApplyTemplate(); + + int dematerializedEventCallCount = 0; + target.ItemContainerGenerator.Dematerialized += (s, e) => + { + Assert.IsType(e.Containers[0].Item); + Assert.Equal("Item1", ((Item)e.Containers[0].Item).Value); + var contentPresenter = ((ContentPresenter)e.Containers[0].ContainerControl); + contentPresenter.UpdateChild(); + Assert.IsType(contentPresenter.Child); + dematerializedEventCallCount++; + }; + + int materializedEventCallCount = 0; + target.ItemContainerGenerator.Materialized += (s, e) => + { + Assert.IsType(e.Containers[0].Item); + Assert.Equal("Item1", ((Item)e.Containers[0].Item).Value); + var contentPresenter = ((ContentPresenter)e.Containers[0].ContainerControl); + contentPresenter.UpdateChild(); + Assert.IsType(contentPresenter.Child); + materializedEventCallCount++; + }; + + target.ItemTemplate = + new FuncDataTemplate((x, ns) => new Canvas()); + + Assert.Equal(1, dematerializedEventCallCount); + Assert.Equal(1, materializedEventCallCount); + } + private class Item { public Item(string value) diff --git a/tests/Avalonia.Controls.UnitTests/ListBoxTests.cs b/tests/Avalonia.Controls.UnitTests/ListBoxTests.cs index 145fce4fed..364cb01c65 100644 --- a/tests/Avalonia.Controls.UnitTests/ListBoxTests.cs +++ b/tests/Avalonia.Controls.UnitTests/ListBoxTests.cs @@ -454,6 +454,118 @@ namespace Avalonia.Controls.UnitTests } } + + [Fact] + public void ListBox_Presenter_Items_Should_Be_In_Sync_When_Replacing_Items() + { + using (UnitTestApplication.Start(TestServices.StyledWindow)) + { + var wnd = new Window() { Width = 100, Height = 100, IsVisible = true }; + + var target = new ListBox() + { + VerticalAlignment = Layout.VerticalAlignment.Top, + AutoScrollToSelectedItem = true, + Width = 50, + VirtualizationMode = ItemVirtualizationMode.Simple, + Items = new[] + { + new Item("Item1") + }, + }; + wnd.Content = target; + + var lm = wnd.LayoutManager; + + lm.ExecuteInitialLayoutPass(); + + int dematerializedEventCallCount = 0; + target.ItemContainerGenerator.Dematerialized += (s, e) => + { + Assert.IsType(e.Containers[0].Item); + Assert.Equal("Item1", ((Item)e.Containers[0].Item).Value); + dematerializedEventCallCount++; + }; + + int materializedEventCallCount = 0; + target.ItemContainerGenerator.Materialized += (s, e) => + { + Assert.IsType(e.Containers[0].Item); + Assert.Equal("Item2", ((Item)e.Containers[0].Item).Value); + materializedEventCallCount++; + }; + + target.Items = new[] + { + new Item("Item2") + }; + + //assert that materialize/dematerialize events are called exactly one time + Assert.Equal(1, dematerializedEventCallCount); + Assert.Equal(1, materializedEventCallCount); + } + } + + [Fact] + public void ListBox_Items_Should_Be_In_Sync_When_Replacing_ItemTemplate() + { + using (UnitTestApplication.Start(TestServices.StyledWindow)) + { + var wnd = new Window() { Width = 100, Height = 100, IsVisible = true }; + + var target = new ListBox() + { + VerticalAlignment = Layout.VerticalAlignment.Top, + AutoScrollToSelectedItem = true, + Width = 50, + VirtualizationMode = ItemVirtualizationMode.Simple, + Items = new[] + { + new Item("Item1") + }, + ItemTemplate = + new FuncDataTemplate((x, ns) => new Canvas()) + }; + + wnd.Content = target; + + var lm = wnd.LayoutManager; + + lm.ExecuteInitialLayoutPass(); + + int dematerializedEventCallCount = 0; + target.ItemContainerGenerator.Dematerialized += (s, e) => + { + Assert.IsType(e.Containers[0].Item); + Assert.Equal("Item1", ((Item)e.Containers[0].Item).Value); + Assert.IsType(((ListBoxItem)e.Containers[0].ContainerControl).Presenter.Child); + dematerializedEventCallCount++; + }; + + int materializedEventCallCount = 0; + ListBoxItem materializedListBoxItem = null; + target.ItemContainerGenerator.Materialized += (s, e) => + { + Assert.IsType(e.Containers[0].Item); + Assert.Equal("Item1", ((Item)e.Containers[0].Item).Value); + materializedListBoxItem = ((ListBoxItem)e.Containers[0].ContainerControl); + materializedEventCallCount++; + }; + + target.ItemTemplate = + new FuncDataTemplate((x, ns) => new TextBlock()); + + //ensure events are called only one time + Assert.Equal(1, dematerializedEventCallCount); + Assert.Equal(1, materializedEventCallCount); + + wnd.LayoutManager.ExecuteLayoutPass(); + + //ensure that new template has been applied + Assert.IsType(materializedListBoxItem.Presenter.Child); + } + } + private FuncControlTemplate ListBoxTemplate() { return new FuncControlTemplate((parent, scope) => From a1d9d5296fb328a3f18f3c3c98bf4cbefb9603bf Mon Sep 17 00:00:00 2001 From: adospace Date: Sat, 7 Nov 2020 00:05:25 +0100 Subject: [PATCH 033/689] Set sdk version back to 3.1.401 --- global.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/global.json b/global.json index 684d9bed71..b2b2da7c4f 100644 --- a/global.json +++ b/global.json @@ -1,6 +1,6 @@ { "sdk": { - "version": "3.1.301" + "version": "3.1.401" }, "msbuild-sdks": { "Microsoft.Build.Traversal": "1.0.43", From 59d531b9f310c27ce2c74b46ef96f45f5994dc40 Mon Sep 17 00:00:00 2001 From: Steven Kirk Date: Tue, 10 Nov 2020 13:56:07 +0100 Subject: [PATCH 034/689] Don't use manual FBO for RenderTargetBitmap/VisualBrush. Fixes the first part of #4944. --- src/Skia/Avalonia.Skia/DrawingContextImpl.cs | 12 +++++++----- src/Skia/Avalonia.Skia/PlatformRenderInterface.cs | 3 ++- src/Skia/Avalonia.Skia/SurfaceRenderTarget.cs | 5 ++++- 3 files changed, 13 insertions(+), 7 deletions(-) diff --git a/src/Skia/Avalonia.Skia/DrawingContextImpl.cs b/src/Skia/Avalonia.Skia/DrawingContextImpl.cs index 44e0c82110..2a79a4bb50 100644 --- a/src/Skia/Avalonia.Skia/DrawingContextImpl.cs +++ b/src/Skia/Avalonia.Skia/DrawingContextImpl.cs @@ -434,7 +434,7 @@ namespace Avalonia.Skia /// public IDrawingContextLayerImpl CreateLayer(Size size) { - return CreateRenderTarget( size); + return CreateRenderTarget(size, true); } /// @@ -673,7 +673,7 @@ namespace Avalonia.Skia private void ConfigureTileBrush(ref PaintWrapper paintWrapper, Size targetSize, ITileBrush tileBrush, IDrawableBitmapImpl tileBrushImage) { var calc = new TileBrushCalculator(tileBrush, tileBrushImage.PixelSize.ToSizeWithDpi(_dpi), targetSize); - var intermediate = CreateRenderTarget(calc.IntermediateSize); + var intermediate = CreateRenderTarget(calc.IntermediateSize, false); paintWrapper.AddDisposable(intermediate); @@ -748,7 +748,7 @@ namespace Avalonia.Skia if (intermediateSize.Width >= 1 && intermediateSize.Height >= 1) { - var intermediate = CreateRenderTarget(intermediateSize); + var intermediate = CreateRenderTarget(intermediateSize, false); using (var ctx = intermediate.CreateDrawingContext(visualBrushRenderer)) { @@ -978,9 +978,10 @@ namespace Avalonia.Skia /// Create new render target compatible with this drawing context. /// /// The size of the render target in DIPs. + /// Whether the render target is being created for a layer. /// Pixel format. /// - private SurfaceRenderTarget CreateRenderTarget(Size size, PixelFormat? format = null) + private SurfaceRenderTarget CreateRenderTarget(Size size, bool isLayer, PixelFormat? format = null) { var pixelSize = PixelSize.FromSizeWithDpi(size, _dpi); var createInfo = new SurfaceRenderTarget.CreateInfo @@ -992,7 +993,8 @@ namespace Avalonia.Skia DisableTextLcdRendering = !_canTextUseLcdRendering, GrContext = _grContext, Gpu = _gpu, - Session = _session + Session = _session, + DisableManualFbo = !isLayer, }; return new SurfaceRenderTarget(createInfo); diff --git a/src/Skia/Avalonia.Skia/PlatformRenderInterface.cs b/src/Skia/Avalonia.Skia/PlatformRenderInterface.cs index d6f76a2c20..72700fb8fd 100644 --- a/src/Skia/Avalonia.Skia/PlatformRenderInterface.cs +++ b/src/Skia/Avalonia.Skia/PlatformRenderInterface.cs @@ -124,7 +124,8 @@ namespace Avalonia.Skia Width = size.Width, Height = size.Height, Dpi = dpi, - DisableTextLcdRendering = false + DisableTextLcdRendering = false, + DisableManualFbo = true, }; return new SurfaceRenderTarget(createInfo); diff --git a/src/Skia/Avalonia.Skia/SurfaceRenderTarget.cs b/src/Skia/Avalonia.Skia/SurfaceRenderTarget.cs index 6347c64aed..01b7449b64 100644 --- a/src/Skia/Avalonia.Skia/SurfaceRenderTarget.cs +++ b/src/Skia/Avalonia.Skia/SurfaceRenderTarget.cs @@ -51,7 +51,8 @@ namespace Avalonia.Skia _grContext = createInfo.GrContext; _gpu = createInfo.Gpu; - _surface = _gpu?.TryCreateSurface(PixelSize, createInfo.Session); + if (!createInfo.DisableManualFbo) + _surface = _gpu?.TryCreateSurface(PixelSize, createInfo.Session); if (_surface == null) _surface = new SkiaSurfaceWrapper(CreateSurface(createInfo.GrContext, PixelSize.Width, PixelSize.Height, createInfo.Format)); @@ -220,6 +221,8 @@ namespace Avalonia.Skia public ISkiaGpu Gpu; public ISkiaGpuRenderSession Session; + + public bool DisableManualFbo; } } } From f9a6da26da55d5ebae013610b544258fb6f9ad89 Mon Sep 17 00:00:00 2001 From: Steven Kirk Date: Tue, 10 Nov 2020 16:59:41 +0100 Subject: [PATCH 035/689] Don't respect root position when building scene. `VisualBrush` should not respect the root control's `Bounds.Position` and always display the root control at 0,0. Because other top level controls should always have a position of 0,0 anyway this should only affect visual brushes. Fixes the second part of #4944 --- .../Rendering/SceneGraph/SceneBuilder.cs | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/Avalonia.Visuals/Rendering/SceneGraph/SceneBuilder.cs b/src/Avalonia.Visuals/Rendering/SceneGraph/SceneBuilder.cs index 872f69c884..7d5d62a091 100644 --- a/src/Avalonia.Visuals/Rendering/SceneGraph/SceneBuilder.cs +++ b/src/Avalonia.Visuals/Rendering/SceneGraph/SceneBuilder.cs @@ -24,7 +24,8 @@ namespace Avalonia.Rendering.SceneGraph using (var impl = new DeferredDrawingContextImpl(this, scene.Layers)) using (var context = new DrawingContext(impl)) { - Update(context, scene, (VisualNode)scene.Root, scene.Root.Visual.Bounds, true); + var clip = new Rect(scene.Root.Visual.Bounds.Size); + Update(context, scene, (VisualNode)scene.Root, clip, true); } } @@ -77,7 +78,7 @@ namespace Avalonia.Rendering.SceneGraph using (var impl = new DeferredDrawingContextImpl(this, scene.Layers)) using (var context = new DrawingContext(impl)) { - var clip = scene.Root.Visual.Bounds; + var clip = new Rect(scene.Root.Visual.Bounds.Size); if (node.Parent != null) { @@ -174,7 +175,9 @@ namespace Avalonia.Rendering.SceneGraph if (visual.IsVisible) { - var m = Matrix.CreateTranslation(visual.Bounds.Position); + var m = node != scene.Root ? + Matrix.CreateTranslation(visual.Bounds.Position) : + Matrix.Identity; var renderTransform = Matrix.Identity; From e17f18de45ed3b9c1c851dafefeb904f62346329 Mon Sep 17 00:00:00 2001 From: Steven Kirk Date: Tue, 10 Nov 2020 17:10:38 +0100 Subject: [PATCH 036/689] Update SelectionBoxItem on visual tree attach. Fixes initial sizing of `SelectionBoxItem` when it's a control. --- src/Avalonia.Controls/ComboBox.cs | 32 ++++++++++++++++--------------- 1 file changed, 17 insertions(+), 15 deletions(-) diff --git a/src/Avalonia.Controls/ComboBox.cs b/src/Avalonia.Controls/ComboBox.cs index 02a9daee75..7f2acb58fe 100644 --- a/src/Avalonia.Controls/ComboBox.cs +++ b/src/Avalonia.Controls/ComboBox.cs @@ -173,11 +173,10 @@ namespace Avalonia.Controls ComboBoxItem.ContentTemplateProperty); } - /// - protected override void OnAttachedToLogicalTree(LogicalTreeAttachmentEventArgs e) + protected override void OnAttachedToVisualTree(VisualTreeAttachmentEventArgs e) { - base.OnAttachedToLogicalTree(e); - this.UpdateSelectionBoxItem(this.SelectedItem); + base.OnAttachedToVisualTree(e); + this.UpdateSelectionBoxItem(SelectedItem); } /// @@ -373,19 +372,22 @@ namespace Avalonia.Controls if (control != null) { - control.Measure(Size.Infinity); - - SelectionBoxItem = new Rectangle + if (VisualRoot is object) { - Width = control.DesiredSize.Width, - Height = control.DesiredSize.Height, - Fill = new VisualBrush + control.Measure(Size.Infinity); + + SelectionBoxItem = new Rectangle { - Visual = control, - Stretch = Stretch.None, - AlignmentX = AlignmentX.Left, - } - }; + Width = control.DesiredSize.Width, + Height = control.DesiredSize.Height, + Fill = new VisualBrush + { + Visual = control, + Stretch = Stretch.None, + AlignmentX = AlignmentX.Left, + } + }; + } } else { From c6540c1bf266c619634551d7cfb2b3005bb23555 Mon Sep 17 00:00:00 2001 From: Steven Kirk Date: Tue, 10 Nov 2020 18:09:49 +0100 Subject: [PATCH 037/689] Fix failing test. --- tests/Avalonia.Controls.UnitTests/ComboBoxTests.cs | 1 + 1 file changed, 1 insertion(+) diff --git a/tests/Avalonia.Controls.UnitTests/ComboBoxTests.cs b/tests/Avalonia.Controls.UnitTests/ComboBoxTests.cs index 783215fb5d..c8a30a42e9 100644 --- a/tests/Avalonia.Controls.UnitTests/ComboBoxTests.cs +++ b/tests/Avalonia.Controls.UnitTests/ComboBoxTests.cs @@ -40,6 +40,7 @@ namespace Avalonia.Controls.UnitTests Items = items, SelectedIndex = 0, }; + var root = new TestRoot(target); var rectangle = target.GetValue(ComboBox.SelectionBoxItemProperty) as Rectangle; Assert.NotNull(rectangle); From 1b0ff07133851b32f853d6815a7cc17612475f0e Mon Sep 17 00:00:00 2001 From: Giuseppe Lippolis Date: Fri, 13 Nov 2020 13:21:23 +0100 Subject: [PATCH 038/689] Fixes Issue 4980: Message loop exit when GetMessage < 0 --- src/Avalonia.Base/Logging/LogArea.cs | 5 +++++ .../Avalonia.Win32/Interop/UnmanagedMethods.cs | 4 ++-- src/Windows/Avalonia.Win32/Win32Platform.cs | 11 ++++++++--- 3 files changed, 15 insertions(+), 5 deletions(-) diff --git a/src/Avalonia.Base/Logging/LogArea.cs b/src/Avalonia.Base/Logging/LogArea.cs index 3c19b47a05..ce330247f3 100644 --- a/src/Avalonia.Base/Logging/LogArea.cs +++ b/src/Avalonia.Base/Logging/LogArea.cs @@ -34,5 +34,10 @@ namespace Avalonia.Logging /// The log event comes from the control system. /// public const string Control = "Control"; + + /// + /// The log evevnt come from Win32Platform + /// + public const string Win32Platform = nameof(Win32Platform); } } diff --git a/src/Windows/Avalonia.Win32/Interop/UnmanagedMethods.cs b/src/Windows/Avalonia.Win32/Interop/UnmanagedMethods.cs index f88c57cf59..85938829f6 100644 --- a/src/Windows/Avalonia.Win32/Interop/UnmanagedMethods.cs +++ b/src/Windows/Avalonia.Win32/Interop/UnmanagedMethods.cs @@ -931,8 +931,8 @@ namespace Avalonia.Win32.Interop [DllImport("user32.dll", EntryPoint = "MapVirtualKeyW")] public static extern uint MapVirtualKey(uint uCode, uint uMapType); - [DllImport("user32.dll", EntryPoint = "GetMessageW")] - public static extern sbyte GetMessage(out MSG lpMsg, IntPtr hWnd, uint wMsgFilterMin, uint wMsgFilterMax); + [DllImport("user32.dll", EntryPoint = "GetMessageW",SetLastError = true)] + public static extern int GetMessage(out MSG lpMsg, IntPtr hWnd, uint wMsgFilterMin, uint wMsgFilterMax); [DllImport("user32.dll")] public static extern int GetMessageTime(); diff --git a/src/Windows/Avalonia.Win32/Win32Platform.cs b/src/Windows/Avalonia.Win32/Win32Platform.cs index 5b16cae26e..209cb63603 100644 --- a/src/Windows/Avalonia.Win32/Win32Platform.cs +++ b/src/Windows/Avalonia.Win32/Win32Platform.cs @@ -137,13 +137,18 @@ namespace Avalonia.Win32 public void RunLoop(CancellationToken cancellationToken) { - while (!cancellationToken.IsCancellationRequested) + var result = 0; + while (!cancellationToken.IsCancellationRequested + && (result = UnmanagedMethods.GetMessage(out var msg, IntPtr.Zero, 0, 0)) > 0) { - UnmanagedMethods.MSG msg; - UnmanagedMethods.GetMessage(out msg, IntPtr.Zero, 0, 0); UnmanagedMethods.TranslateMessage(ref msg); UnmanagedMethods.DispatchMessage(ref msg); } + if (result < 0) + { + Logging.Logger.TryGet(Logging.LogEventLevel.Error, Logging.LogArea.Win32Platform) + ?.Log(this, "Unmanaged error in message loop. Error Code: {0}", Marshal.GetLastWin32Error()); + } } public IDisposable StartTimer(DispatcherPriority priority, TimeSpan interval, Action callback) From b31b6d68c9791085766550cdc29bcde12b1608a0 Mon Sep 17 00:00:00 2001 From: Giuseppe Lippolis Date: Fri, 13 Nov 2020 16:17:03 +0100 Subject: [PATCH 039/689] Fixes ProcessMessage --- src/Windows/Avalonia.Win32/Win32Platform.cs | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/src/Windows/Avalonia.Win32/Win32Platform.cs b/src/Windows/Avalonia.Win32/Win32Platform.cs index 209cb63603..1ed4d8dc9c 100644 --- a/src/Windows/Avalonia.Win32/Win32Platform.cs +++ b/src/Windows/Avalonia.Win32/Win32Platform.cs @@ -129,10 +129,18 @@ namespace Avalonia.Win32 public void ProcessMessage() { - UnmanagedMethods.MSG msg; - UnmanagedMethods.GetMessage(out msg, IntPtr.Zero, 0, 0); - UnmanagedMethods.TranslateMessage(ref msg); - UnmanagedMethods.DispatchMessage(ref msg); + + if (UnmanagedMethods.GetMessage(out var msg, IntPtr.Zero, 0, 0) > 0) + { + UnmanagedMethods.TranslateMessage(ref msg); + UnmanagedMethods.DispatchMessage(ref msg); + } + else + { + Logging.Logger.TryGet(Logging.LogEventLevel.Error, Logging.LogArea.Win32Platform) + ?.Log(this, "Unmanaged error in {0}. Error Code: {1}", nameof(ProcessMessage), Marshal.GetLastWin32Error()); + + } } public void RunLoop(CancellationToken cancellationToken) @@ -147,7 +155,7 @@ namespace Avalonia.Win32 if (result < 0) { Logging.Logger.TryGet(Logging.LogEventLevel.Error, Logging.LogArea.Win32Platform) - ?.Log(this, "Unmanaged error in message loop. Error Code: {0}", Marshal.GetLastWin32Error()); + ?.Log(this, "Unmanaged error in {0}. Error Code: {1}" ,nameof(RunLoop), Marshal.GetLastWin32Error()); } } From cfb81aedcaae7d501017a4224f18ffc8348ae4de Mon Sep 17 00:00:00 2001 From: Giuseppe Lippolis Date: Sat, 14 Nov 2020 00:44:44 +0100 Subject: [PATCH 040/689] fixes typo. --- src/Avalonia.Base/Logging/LogArea.cs | 2 +- src/Windows/Avalonia.Win32/Interop/UnmanagedMethods.cs | 2 +- src/Windows/Avalonia.Win32/Win32Platform.cs | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/Avalonia.Base/Logging/LogArea.cs b/src/Avalonia.Base/Logging/LogArea.cs index ce330247f3..2ad220dddd 100644 --- a/src/Avalonia.Base/Logging/LogArea.cs +++ b/src/Avalonia.Base/Logging/LogArea.cs @@ -36,7 +36,7 @@ namespace Avalonia.Logging public const string Control = "Control"; /// - /// The log evevnt come from Win32Platform + /// The log event comes from Win32Platform. /// public const string Win32Platform = nameof(Win32Platform); } diff --git a/src/Windows/Avalonia.Win32/Interop/UnmanagedMethods.cs b/src/Windows/Avalonia.Win32/Interop/UnmanagedMethods.cs index 85938829f6..b164bcc611 100644 --- a/src/Windows/Avalonia.Win32/Interop/UnmanagedMethods.cs +++ b/src/Windows/Avalonia.Win32/Interop/UnmanagedMethods.cs @@ -931,7 +931,7 @@ namespace Avalonia.Win32.Interop [DllImport("user32.dll", EntryPoint = "MapVirtualKeyW")] public static extern uint MapVirtualKey(uint uCode, uint uMapType); - [DllImport("user32.dll", EntryPoint = "GetMessageW",SetLastError = true)] + [DllImport("user32.dll", EntryPoint = "GetMessageW", SetLastError = true)] public static extern int GetMessage(out MSG lpMsg, IntPtr hWnd, uint wMsgFilterMin, uint wMsgFilterMax); [DllImport("user32.dll")] diff --git a/src/Windows/Avalonia.Win32/Win32Platform.cs b/src/Windows/Avalonia.Win32/Win32Platform.cs index 1ed4d8dc9c..345c825a5d 100644 --- a/src/Windows/Avalonia.Win32/Win32Platform.cs +++ b/src/Windows/Avalonia.Win32/Win32Platform.cs @@ -155,7 +155,7 @@ namespace Avalonia.Win32 if (result < 0) { Logging.Logger.TryGet(Logging.LogEventLevel.Error, Logging.LogArea.Win32Platform) - ?.Log(this, "Unmanaged error in {0}. Error Code: {1}" ,nameof(RunLoop), Marshal.GetLastWin32Error()); + ?.Log(this, "Unmanaged error in {0}. Error Code: {1}", nameof(RunLoop), Marshal.GetLastWin32Error()); } } From 3b18572dd60cc0222ef7717d9455557ce01b1676 Mon Sep 17 00:00:00 2001 From: Jumar Macato Date: Sat, 14 Nov 2020 10:49:34 +0800 Subject: [PATCH 041/689] add property listening for path segments --- src/Avalonia.Visuals/Media/PathFigure.cs | 32 +++++++++++++++++++++- src/Avalonia.Visuals/Media/PathGeometry.cs | 20 ++++++++++++-- 2 files changed, 48 insertions(+), 4 deletions(-) diff --git a/src/Avalonia.Visuals/Media/PathFigure.cs b/src/Avalonia.Visuals/Media/PathFigure.cs index d0eb67ba39..ff63a6286c 100644 --- a/src/Avalonia.Visuals/Media/PathFigure.cs +++ b/src/Avalonia.Visuals/Media/PathFigure.cs @@ -1,3 +1,6 @@ +using System; +using System.ComponentModel; +using Avalonia.Collections; using Avalonia.Metadata; namespace Avalonia.Media @@ -25,14 +28,41 @@ namespace Avalonia.Media public static readonly StyledProperty StartPointProperty = AvaloniaProperty.Register(nameof(StartPoint)); + internal event EventHandler SegmentsInvalidated; + + private IDisposable? _segmentsObserver; + + private IDisposable? _segmentsPropertiesObserver; + /// /// Initializes a new instance of the class. /// public PathFigure() { + SegmentsProperty.Changed.AddClassHandler((s, e) => + s.OnSegmentsChanged(e.NewValue as PathSegments)); + Segments = new PathSegments(); } + private void OnSegmentsChanged(PathSegments? arg2NewValue) + { + _segmentsObserver?.Dispose(); + _segmentsPropertiesObserver?.Dispose(); + + _segmentsObserver = _segments?.ForEachItem( + _ => InvalidateSegments(), + _ => InvalidateSegments(), + InvalidateSegments); + + _segmentsPropertiesObserver = _segments?.TrackItemPropertyChanged(_ => InvalidateSegments()); + } + + private void InvalidateSegments() + { + SegmentsInvalidated?.Invoke(this, EventArgs.Empty); + } + /// /// Gets or sets a value indicating whether this instance is closed. /// @@ -99,4 +129,4 @@ namespace Avalonia.Media public override string ToString() => $"M {StartPoint} {string.Join(" ", _segments)}{(IsClosed ? "Z" : "")}"; } -} \ No newline at end of file +} diff --git a/src/Avalonia.Visuals/Media/PathGeometry.cs b/src/Avalonia.Visuals/Media/PathGeometry.cs index fbc29aedc8..819669d86e 100644 --- a/src/Avalonia.Visuals/Media/PathGeometry.cs +++ b/src/Avalonia.Visuals/Media/PathGeometry.cs @@ -104,12 +104,26 @@ namespace Avalonia.Media _figuresPropertiesObserver?.Dispose(); _figuresObserver = figures?.ForEachItem( - _ => InvalidateGeometry(), - _ => InvalidateGeometry(), - () => InvalidateGeometry()); + s => + { + s.SegmentsInvalidated += InvalidateGeometryFromSegments; + InvalidateGeometry(); + }, + s => + { + s.SegmentsInvalidated -= InvalidateGeometryFromSegments; + InvalidateGeometry(); + }, + InvalidateGeometry); + _figuresPropertiesObserver = figures?.TrackItemPropertyChanged(_ => InvalidateGeometry()); + } + public void InvalidateGeometryFromSegments(object _, EventArgs __) + { + InvalidateGeometry(); + } public override string ToString() => $"{(FillRule != FillRule.EvenOdd ? "F1 " : "")}{(string.Join(" ", Figures))}"; From d2339a041df94ca65878140435a351a3932f7ee4 Mon Sep 17 00:00:00 2001 From: Jumar Macato Date: Sat, 14 Nov 2020 11:02:30 +0800 Subject: [PATCH 042/689] try making a unit test --- .../Avalonia.RenderTests/Shapes/PathTests.cs | 40 +++++++++++++++++++ 1 file changed, 40 insertions(+) diff --git a/tests/Avalonia.RenderTests/Shapes/PathTests.cs b/tests/Avalonia.RenderTests/Shapes/PathTests.cs index bac16cca88..24e420d972 100644 --- a/tests/Avalonia.RenderTests/Shapes/PathTests.cs +++ b/tests/Avalonia.RenderTests/Shapes/PathTests.cs @@ -353,7 +353,47 @@ namespace Avalonia.Direct2D1.RenderTests.Shapes await RenderToFile(target); CompareImages(); } + + [Fact] + public async Task PathSegment_Triggers_Invalidation_On_Property_Change() + { + var targetSegment = new ArcSegment() + { + Size = new Size(10,10), + Point = new Point(5,5) + }; + + var targetPath = new Path + { + VerticalAlignment = VerticalAlignment.Center, + HorizontalAlignment = HorizontalAlignment.Center, + Fill = Brushes.Red, + Data = new PathGeometry + { + Figures = new PathFigures + { + new PathFigure { IsClosed = false, Segments = new PathSegments { targetSegment } } + } + } + }; + + var root = new Border + { + Width = 100, + Height = 100, + Background = Brushes.White, + Child =targetPath + }; + + Assert.Equal(10, targetPath.Bounds.Height); + Assert.Equal(10, targetPath.Bounds.Width); + + targetSegment.Size = new Size(20, 20); + Assert.Equal(20, targetPath.Bounds.Height); + Assert.Equal(20, targetPath.Bounds.Width); + } + [Fact] public async Task Path_With_Rotated_Geometry() { From 7ff860c8ef54c5ce38b2e6c672297e651c1142c2 Mon Sep 17 00:00:00 2001 From: Giuseppe Lippolis Date: Sat, 14 Nov 2020 14:40:21 +0100 Subject: [PATCH 043/689] fix ProcessMessage issue --- src/Windows/Avalonia.Win32/Win32Platform.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Windows/Avalonia.Win32/Win32Platform.cs b/src/Windows/Avalonia.Win32/Win32Platform.cs index 345c825a5d..e854ceae0b 100644 --- a/src/Windows/Avalonia.Win32/Win32Platform.cs +++ b/src/Windows/Avalonia.Win32/Win32Platform.cs @@ -130,7 +130,7 @@ namespace Avalonia.Win32 public void ProcessMessage() { - if (UnmanagedMethods.GetMessage(out var msg, IntPtr.Zero, 0, 0) > 0) + if (UnmanagedMethods.GetMessage(out var msg, IntPtr.Zero, 0, 0) > -1) { UnmanagedMethods.TranslateMessage(ref msg); UnmanagedMethods.DispatchMessage(ref msg); From 2fd70994adc8535c8380459a0505aaf43faac77c Mon Sep 17 00:00:00 2001 From: Dariusz Komosinski Date: Sat, 14 Nov 2020 19:48:45 +0100 Subject: [PATCH 044/689] Remove enumerator allocations and LINQ from children change notifications. --- src/Avalonia.Styling/StyledElement.cs | 48 ++++++++++++++++----------- src/Avalonia.Visuals/Visual.cs | 37 ++++++++++----------- 2 files changed, 45 insertions(+), 40 deletions(-) diff --git a/src/Avalonia.Styling/StyledElement.cs b/src/Avalonia.Styling/StyledElement.cs index 65885ddebe..cc8d91462d 100644 --- a/src/Avalonia.Styling/StyledElement.cs +++ b/src/Avalonia.Styling/StyledElement.cs @@ -1,8 +1,8 @@ using System; +using System.Collections; using System.Collections.Generic; using System.Collections.Specialized; using System.ComponentModel; -using System.Linq; using Avalonia.Animation; using Avalonia.Collections; using Avalonia.Controls; @@ -479,16 +479,16 @@ namespace Avalonia switch (e.Action) { case NotifyCollectionChangedAction.Add: - SetLogicalParent(e.NewItems.Cast()); + SetLogicalParent(e.NewItems); break; case NotifyCollectionChangedAction.Remove: - ClearLogicalParent(e.OldItems.Cast()); + ClearLogicalParent(e.OldItems); break; case NotifyCollectionChangedAction.Replace: - ClearLogicalParent(e.OldItems.Cast()); - SetLogicalParent(e.NewItems.Cast()); + ClearLogicalParent(e.OldItems); + SetLogicalParent(e.NewItems); break; case NotifyCollectionChangedAction.Reset: @@ -702,13 +702,32 @@ namespace Avalonia OnDataContextChanged(EventArgs.Empty); } - private void SetLogicalParent(IEnumerable children) + private void SetLogicalParent(IList children) { - foreach (var i in children) + var count = children.Count; + + for (var i = 0; i < count; i++) + { + var logical = (ILogical) children[i]; + + if (logical.LogicalParent is null) + { + ((ISetLogicalParent)logical).SetParent(this); + } + } + } + + private void ClearLogicalParent(IList children) + { + var count = children.Count; + + for (var i = 0; i < count; i++) { - if (i.LogicalParent == null) + var logical = (ILogical) children[i]; + + if (logical.LogicalParent == this) { - ((ISetLogicalParent)i).SetParent(this); + ((ISetLogicalParent)logical).SetParent(null); } } } @@ -784,17 +803,6 @@ namespace Avalonia } } - private void ClearLogicalParent(IEnumerable children) - { - foreach (var i in children) - { - if (i.LogicalParent == this) - { - ((ISetLogicalParent)i).SetParent(null); - } - } - } - private void NotifyResourcesChanged( ResourcesChangedEventArgs? e = null, bool propagate = true) diff --git a/src/Avalonia.Visuals/Visual.cs b/src/Avalonia.Visuals/Visual.cs index 283d9deb52..30073c9966 100644 --- a/src/Avalonia.Visuals/Visual.cs +++ b/src/Avalonia.Visuals/Visual.cs @@ -1,4 +1,5 @@ using System; +using System.Collections; using System.Collections.Specialized; using Avalonia.Collections; using Avalonia.Data; @@ -619,34 +620,30 @@ namespace Avalonia switch (e.Action) { case NotifyCollectionChangedAction.Add: - foreach (Visual v in e.NewItems) - { - v.SetVisualParent(this); - } - + SetVisualParent(e.NewItems, this); break; case NotifyCollectionChangedAction.Remove: - foreach (Visual v in e.OldItems) - { - v.SetVisualParent(null); - } - + SetVisualParent(e.OldItems, null); break; case NotifyCollectionChangedAction.Replace: - foreach (Visual v in e.OldItems) - { - v.SetVisualParent(null); - } - - foreach (Visual v in e.NewItems) - { - v.SetVisualParent(this); - } - + SetVisualParent(e.OldItems, null); + SetVisualParent(e.NewItems, this); break; } } + + private static void SetVisualParent(IList children, Visual parent) + { + var count = children.Count; + + for (var i = 0; i < count; i++) + { + var visual = (Visual) children[i]; + + visual.SetVisualParent(parent); + } + } } } From a778800d2e706524895426dae254f07d046dd802 Mon Sep 17 00:00:00 2001 From: Dariusz Komosinski Date: Sun, 15 Nov 2020 14:19:07 +0100 Subject: [PATCH 045/689] Remove boxing from TemplatedControl as well. --- src/Avalonia.Controls/Primitives/TemplatedControl.cs | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/Avalonia.Controls/Primitives/TemplatedControl.cs b/src/Avalonia.Controls/Primitives/TemplatedControl.cs index d18cf7da71..9c73ff2411 100644 --- a/src/Avalonia.Controls/Primitives/TemplatedControl.cs +++ b/src/Avalonia.Controls/Primitives/TemplatedControl.cs @@ -354,11 +354,14 @@ namespace Avalonia.Controls.Primitives { control.SetValue(TemplatedParentProperty, this); - foreach (var child in control.LogicalChildren) + var children = control.LogicalChildren; + var count = children.Count; + + for (var i = 0; i < count; i++) { - if (child is IControl c) + if (children[i] is IControl child) { - ApplyTemplatedParent(c); + ApplyTemplatedParent(child); } } } From cde8f4cf1aa5ee1ad969a99b8363456c09aa53e7 Mon Sep 17 00:00:00 2001 From: Dariusz Komosinski Date: Sun, 15 Nov 2020 14:27:10 +0100 Subject: [PATCH 046/689] Fix control benchmarks. --- tests/Avalonia.Benchmarks/NullRenderingPlatform.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/Avalonia.Benchmarks/NullRenderingPlatform.cs b/tests/Avalonia.Benchmarks/NullRenderingPlatform.cs index f632d85c26..1570205456 100644 --- a/tests/Avalonia.Benchmarks/NullRenderingPlatform.cs +++ b/tests/Avalonia.Benchmarks/NullRenderingPlatform.cs @@ -28,7 +28,7 @@ namespace Avalonia.Benchmarks public IGeometryImpl CreateRectangleGeometry(Rect rect) { - throw new NotImplementedException(); + return new MockStreamGeometryImpl(); } public IStreamGeometryImpl CreateStreamGeometry() From 7e4552ffedae697aa94b4766656915d1cfd7be7f Mon Sep 17 00:00:00 2001 From: Nikita Tsukanov Date: Sun, 15 Nov 2020 18:32:15 +0300 Subject: [PATCH 047/689] Reduce the element of surprise in XAML compiler --- src/Avalonia.Build.Tasks/XamlCompilerTaskExecutor.cs | 4 +++- .../Avalonia.Markup.Xaml.Loader.csproj | 1 + 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/src/Avalonia.Build.Tasks/XamlCompilerTaskExecutor.cs b/src/Avalonia.Build.Tasks/XamlCompilerTaskExecutor.cs index 0b9b50e771..6ef8a98fae 100644 --- a/src/Avalonia.Build.Tasks/XamlCompilerTaskExecutor.cs +++ b/src/Avalonia.Build.Tasks/XamlCompilerTaskExecutor.cs @@ -46,7 +46,9 @@ namespace Avalonia.Build.Tasks string output, bool verifyIl, MessageImportance logImportance, string strongNameKey, bool patchCom, bool skipXamlCompilation) { - var typeSystem = new CecilTypeSystem(references.Concat(new[] { input }), input); + var typeSystem = new CecilTypeSystem(references + .Where(r => !r.ToLowerInvariant().EndsWith("avalonia.build.tasks.dll")) + .Concat(new[] { input }), input); var asm = typeSystem.TargetAssemblyDefinition; diff --git a/src/Markup/Avalonia.Markup.Xaml.Loader/Avalonia.Markup.Xaml.Loader.csproj b/src/Markup/Avalonia.Markup.Xaml.Loader/Avalonia.Markup.Xaml.Loader.csproj index 514556d0b9..db9c414840 100644 --- a/src/Markup/Avalonia.Markup.Xaml.Loader/Avalonia.Markup.Xaml.Loader.csproj +++ b/src/Markup/Avalonia.Markup.Xaml.Loader/Avalonia.Markup.Xaml.Loader.csproj @@ -4,6 +4,7 @@ netstandard2.0 true Avalonia.Markup.Xaml.Loader + $(DefineConstants);XAMLX_INTERNAL From 80a87d7aa31a8b177690207d3d043e90d68f093e Mon Sep 17 00:00:00 2001 From: Andrey Kunchev Date: Sun, 15 Nov 2020 17:32:43 +0200 Subject: [PATCH 048/689] add failing tests for CompiledBidning with Source set to StaticResource and x:Static --- .../CompiledBindingExtensionTests.cs | 46 ++++++++++++++++++- 1 file changed, 45 insertions(+), 1 deletion(-) diff --git a/tests/Avalonia.Markup.Xaml.UnitTests/MarkupExtensions/CompiledBindingExtensionTests.cs b/tests/Avalonia.Markup.Xaml.UnitTests/MarkupExtensions/CompiledBindingExtensionTests.cs index 50dfa2c7b0..c19640c244 100644 --- a/tests/Avalonia.Markup.Xaml.UnitTests/MarkupExtensions/CompiledBindingExtensionTests.cs +++ b/tests/Avalonia.Markup.Xaml.UnitTests/MarkupExtensions/CompiledBindingExtensionTests.cs @@ -10,6 +10,7 @@ using Avalonia.Controls.Presenters; using Avalonia.Data.Converters; using Avalonia.Data.Core; using Avalonia.Markup.Data; +using Avalonia.Media; using Avalonia.UnitTests; using XamlX; using Xunit; @@ -536,7 +537,7 @@ namespace Avalonia.Markup.Xaml.UnitTests.MarkupExtensions } [Fact] - public void ResolvesSourceBindingLongForm() + public void Binds_To_Source() { using (UnitTestApplication.Start(TestServices.StyledWindow)) { @@ -559,6 +560,49 @@ namespace Avalonia.Markup.Xaml.UnitTests.MarkupExtensions } } + [Fact] + public void Binds_To_Source_StaticResource() + { + using (UnitTestApplication.Start(TestServices.StyledWindow)) + { + var xaml = @" + + + + + +"; + + var window = (Window)AvaloniaRuntimeXamlLoader.Load(xaml); + var textBlock = window.FindControl("textBlock"); + + Assert.Equal("foobar", textBlock.Text); + } + } + + [Fact] + public void Binds_To_Source_xStatic() + { + using (UnitTestApplication.Start(TestServices.StyledWindow)) + { + var xaml = @" + + +"; + + var window = (Window)AvaloniaRuntimeXamlLoader.Load(xaml); + var contentControl = window.FindControl("contentControl"); + + Assert.Equal(Brushes.Red.Color, contentControl.Content); + } + } + [Fact] public void CompilesBindingWhenRequested() { From 06d81f6e23cde111166393f441558dc1354247df Mon Sep 17 00:00:00 2001 From: Andrey Kunchev Date: Sun, 15 Nov 2020 17:40:34 +0200 Subject: [PATCH 049/689] make CompiledBinding work with x:Static and StaticResource --- .../AvaloniaXamlIlBindingPathTransformer.cs | 33 ++++++++++++++++--- ...ransformSyntheticCompiledBindingMembers.cs | 4 +-- .../CompiledBindingExtension.cs | 10 ++++++ 3 files changed, 40 insertions(+), 7 deletions(-) diff --git a/src/Markup/Avalonia.Markup.Xaml.Loader/CompilerExtensions/Transformers/AvaloniaXamlIlBindingPathTransformer.cs b/src/Markup/Avalonia.Markup.Xaml.Loader/CompilerExtensions/Transformers/AvaloniaXamlIlBindingPathTransformer.cs index fc32084687..0d54e97bd9 100644 --- a/src/Markup/Avalonia.Markup.Xaml.Loader/CompilerExtensions/Transformers/AvaloniaXamlIlBindingPathTransformer.cs +++ b/src/Markup/Avalonia.Markup.Xaml.Loader/CompilerExtensions/Transformers/AvaloniaXamlIlBindingPathTransformer.cs @@ -15,14 +15,37 @@ namespace Avalonia.Markup.Xaml.XamlIl.CompilerExtensions.Transformers { if (node is XamlAstConstructableObjectNode binding && binding.Type.GetClrType().Equals(context.GetAvaloniaTypes().CompiledBindingExtension)) { - IXamlType startType; - var parentDataContextNode = context.ParentNodes().OfType().FirstOrDefault(); - if (parentDataContextNode is null) + IXamlType startType = null; + var sourceProperty = binding.Children.OfType().FirstOrDefault(c => c.Property.Name == "Source"); + if ((sourceProperty?.Values.Count ?? 0) == 1) { - throw new XamlX.XamlParseException("Cannot parse a compiled binding without an explicit x:DataType directive to give a starting data type for bindings.", binding); + var sourceValue = sourceProperty.Values[0]; + switch (sourceValue) + { + case XamlAstTextNode textNode: + startType = textNode.Type?.GetClrType(); + break; + + case XamlMarkupExtensionNode extension: + startType = extension.Type?.GetClrType(); + break; + + case XamlStaticExtensionNode staticExtension: + startType = staticExtension.Type?.GetClrType(); + break; + } } - startType = parentDataContextNode.DataContextType; + if (startType == null) + { + var parentDataContextNode = context.ParentNodes().OfType().FirstOrDefault(); + if (parentDataContextNode is null) + { + throw new XamlX.XamlParseException("Cannot parse a compiled binding without an explicit x:DataType directive to give a starting data type for bindings.", binding); + } + + startType = parentDataContextNode.DataContextType; + } XamlIlBindingPathHelper.UpdateCompiledBindingExtension(context, binding, startType); } diff --git a/src/Markup/Avalonia.Markup.Xaml.Loader/CompilerExtensions/Transformers/AvaloniaXamlIlTransformSyntheticCompiledBindingMembers.cs b/src/Markup/Avalonia.Markup.Xaml.Loader/CompilerExtensions/Transformers/AvaloniaXamlIlTransformSyntheticCompiledBindingMembers.cs index 154c6a235c..6cb6e4e2d1 100644 --- a/src/Markup/Avalonia.Markup.Xaml.Loader/CompilerExtensions/Transformers/AvaloniaXamlIlTransformSyntheticCompiledBindingMembers.cs +++ b/src/Markup/Avalonia.Markup.Xaml.Loader/CompilerExtensions/Transformers/AvaloniaXamlIlTransformSyntheticCompiledBindingMembers.cs @@ -27,8 +27,8 @@ namespace Avalonia.Markup.Xaml.XamlIl.CompilerExtensions.Transformers } else if (prop.Name == "Source") { - return new AvaloniaSyntheticCompiledBindingProperty(node, - SyntheticCompiledBindingPropertyName.Source); + //return new AvaloniaSyntheticCompiledBindingProperty(node, + // SyntheticCompiledBindingPropertyName.Source); } } diff --git a/src/Markup/Avalonia.Markup.Xaml/MarkupExtensions/CompiledBindingExtension.cs b/src/Markup/Avalonia.Markup.Xaml/MarkupExtensions/CompiledBindingExtension.cs index da39920eb3..17d2ea7ae9 100644 --- a/src/Markup/Avalonia.Markup.Xaml/MarkupExtensions/CompiledBindingExtension.cs +++ b/src/Markup/Avalonia.Markup.Xaml/MarkupExtensions/CompiledBindingExtension.cs @@ -32,6 +32,7 @@ namespace Avalonia.Markup.Xaml.MarkupExtensions Mode = Mode, Priority = Priority, StringFormat = StringFormat, + Source = Source, DefaultAnchor = new WeakReference(GetDefaultAnchor(provider)) }; } @@ -52,6 +53,13 @@ namespace Avalonia.Markup.Xaml.MarkupExtensions protected override ExpressionObserver CreateExpressionObserver(IAvaloniaObject target, AvaloniaProperty targetProperty, object anchor, bool enableDataValidation) { + if (Source != null) + { + return CreateSourceObserver( + Source, + Path.BuildExpression(enableDataValidation)); + } + if (Path.RawSource != null) { return CreateSourceObserver( @@ -77,5 +85,7 @@ namespace Avalonia.Markup.Xaml.MarkupExtensions [ConstructorArgument("path")] public CompiledBindingPath Path { get; set; } + + public object Source { get; set; } } } From f9de2a9c8236573df5ffe8dd0acc4417f3e43665 Mon Sep 17 00:00:00 2001 From: Andrey Kunchev Date: Sun, 15 Nov 2020 17:42:05 +0200 Subject: [PATCH 050/689] add more tests for CompiledBinding Source with StaticResource --- .../CompiledBindingExtensionTests.cs | 75 +++++++++++++++++++ 1 file changed, 75 insertions(+) diff --git a/tests/Avalonia.Markup.Xaml.UnitTests/MarkupExtensions/CompiledBindingExtensionTests.cs b/tests/Avalonia.Markup.Xaml.UnitTests/MarkupExtensions/CompiledBindingExtensionTests.cs index c19640c244..de9ecc8bb0 100644 --- a/tests/Avalonia.Markup.Xaml.UnitTests/MarkupExtensions/CompiledBindingExtensionTests.cs +++ b/tests/Avalonia.Markup.Xaml.UnitTests/MarkupExtensions/CompiledBindingExtensionTests.cs @@ -583,6 +583,81 @@ namespace Avalonia.Markup.Xaml.UnitTests.MarkupExtensions } } + [Fact] + public void Binds_To_Source_StaticResource1() + { + using (UnitTestApplication.Start(TestServices.StyledWindow)) + { + var xaml = @" + + + + test + + +"; + + var window = (Window)AvaloniaRuntimeXamlLoader.Load(xaml); + var textBlock = window.FindControl("textBlock"); + + Assert.Equal("foobar", textBlock.Text); + } + } + + [Fact] + public void Binds_To_Source_StaticResource_In_ResourceDictionary() + { + using (UnitTestApplication.Start(TestServices.StyledWindow)) + { + var xaml = @" + + + + + + + +"; + + var window = (Window)AvaloniaRuntimeXamlLoader.Load(xaml); + var textBlock = window.FindControl("textBlock"); + + Assert.Equal("foobar", textBlock.Text); + } + } + + [Fact] + public void Binds_To_Source_StaticResource_In_ResourceDictionary1() + { + using (UnitTestApplication.Start(TestServices.StyledWindow)) + { + var xaml = @" + + + + + test + + + +"; + + var window = (Window)AvaloniaRuntimeXamlLoader.Load(xaml); + var textBlock = window.FindControl("textBlock"); + + Assert.Equal("foobar", textBlock.Text); + } + } + [Fact] public void Binds_To_Source_xStatic() { From 13c25983f70d2c606eaaa5d83f318413bf65773b Mon Sep 17 00:00:00 2001 From: Andrey Kunchev Date: Sun, 15 Nov 2020 17:45:04 +0200 Subject: [PATCH 051/689] try infer StaticResource type in CompiledBinding Soure --- .../AvaloniaXamlIlBindingPathTransformer.cs | 67 ++++++++++++++++++- 1 file changed, 65 insertions(+), 2 deletions(-) diff --git a/src/Markup/Avalonia.Markup.Xaml.Loader/CompilerExtensions/Transformers/AvaloniaXamlIlBindingPathTransformer.cs b/src/Markup/Avalonia.Markup.Xaml.Loader/CompilerExtensions/Transformers/AvaloniaXamlIlBindingPathTransformer.cs index 0d54e97bd9..4d8c940bbc 100644 --- a/src/Markup/Avalonia.Markup.Xaml.Loader/CompilerExtensions/Transformers/AvaloniaXamlIlBindingPathTransformer.cs +++ b/src/Markup/Avalonia.Markup.Xaml.Loader/CompilerExtensions/Transformers/AvaloniaXamlIlBindingPathTransformer.cs @@ -1,8 +1,6 @@ using System; using System.Collections.Generic; using System.Linq; -using System.Text; -using XamlX; using XamlX.Ast; using XamlX.Transform; using XamlX.TypeSystem; @@ -28,6 +26,71 @@ namespace Avalonia.Markup.Xaml.XamlIl.CompilerExtensions.Transformers case XamlMarkupExtensionNode extension: startType = extension.Type?.GetClrType(); + + //let's try to infer StaticResource type from parent resources in xaml + if (extension.Value.Type.GetClrType().FullName == "Avalonia.Markup.Xaml.MarkupExtensions.StaticResourceExtension" && + extension.Value is XamlAstConstructableObjectNode cn && + cn.Arguments.Count == 1 && cn.Arguments[0] is XamlAstTextNode keyNode) + { + bool matchProperty(IXamlAstNode node, IXamlType styledElementType, string propertyName) + { + return (node is XamlPropertyAssignmentNode p && + p.Property.DeclaringType == styledElementType && p.Property.Name == propertyName) + || + (node is XamlManipulationGroupNode m && m.Children.Count > 0 && + m.Children[0] is XamlPropertyAssignmentNode pm && + pm.Property.DeclaringType == styledElementType && pm.Property.Name == propertyName); + } + + string getResourceValue_xKey(XamlPropertyAssignmentNode node) + => node.Values.Count == 2 && node.Values[0] is XamlAstTextNode t ? t.Text : ""; + + IXamlType getResourceValue_Type(XamlPropertyAssignmentNode node, IXamlType xamlType) + => node.Values.Count == 2 ? node.Values[1].Type.GetClrType() : xamlType; + + IEnumerable getResourceValues(IXamlAstNode node) + { + if (node is XamlPropertyAssignmentNode propertyNode) + { + if (propertyNode.Values.Count == 1 && + propertyNode.Values[0] is XamlAstConstructableObjectNode obj && + obj.Type.GetClrType().FullName == "Avalonia.Controls.ResourceDictionary") + { + foreach (var r in obj.Children.SelectMany(c => getResourceValues(c))) + { + yield return r; + } + } + else + { + yield return propertyNode; + } + } + else if (node is XamlManipulationGroupNode m) + { + foreach (var r in m.Children.OfType()) + { + yield return r; + } + } + } + + string key = keyNode.Text; + + var styledElement = context.GetAvaloniaTypes().StyledElement; + var resource = context.ParentNodes() + .OfType() + .Where(o => styledElement.IsAssignableFrom(o.Type.GetClrType())) + .Select(o => o.Children.FirstOrDefault(p => matchProperty(p, styledElement, "Resources"))) + .Where(r => r != null) + .SelectMany(r => getResourceValues(r)) + .FirstOrDefault(r => getResourceValue_xKey(r) == key); + + if (resource != null) + { + startType = getResourceValue_Type(resource, startType); + } + } break; case XamlStaticExtensionNode staticExtension: From bc39305fd0a088a306e8c13358fa8fc426fe9fc0 Mon Sep 17 00:00:00 2001 From: Andrey Kunchev Date: Sun, 15 Nov 2020 18:16:58 +0200 Subject: [PATCH 052/689] clean up --- .../AvaloniaXamlIlBindingPathParser.cs | 23 ++++++------------- ...ransformSyntheticCompiledBindingMembers.cs | 8 +------ 2 files changed, 8 insertions(+), 23 deletions(-) diff --git a/src/Markup/Avalonia.Markup.Xaml.Loader/CompilerExtensions/Transformers/AvaloniaXamlIlBindingPathParser.cs b/src/Markup/Avalonia.Markup.Xaml.Loader/CompilerExtensions/Transformers/AvaloniaXamlIlBindingPathParser.cs index 7944d8b569..24cded1d22 100644 --- a/src/Markup/Avalonia.Markup.Xaml.Loader/CompilerExtensions/Transformers/AvaloniaXamlIlBindingPathParser.cs +++ b/src/Markup/Avalonia.Markup.Xaml.Loader/CompilerExtensions/Transformers/AvaloniaXamlIlBindingPathParser.cs @@ -72,16 +72,16 @@ namespace Avalonia.Markup.Xaml.XamlIl.CompilerExtensions.Transformers v.Property is AvaloniaSyntheticCompiledBindingProperty prop && prop.Name == SyntheticCompiledBindingPropertyName.ElementName); - var sourceProperty = syntheticCompiledBindingProperties - .FirstOrDefault(v => - v.Property is AvaloniaSyntheticCompiledBindingProperty prop - && prop.Name == SyntheticCompiledBindingPropertyName.Source); - var relativeSourceProperty = syntheticCompiledBindingProperties .FirstOrDefault(v => v.Property is AvaloniaSyntheticCompiledBindingProperty prop && prop.Name == SyntheticCompiledBindingPropertyName.RelativeSource); + var sourceProperty = binding.Children.OfType() + .FirstOrDefault(v => + v.Property is XamlAstClrProperty prop + && prop.Name == "Source"); + if (elementNameProperty?.Values[0] is XamlAstTextNode elementName) { convertedNode = new BindingExpressionGrammar.NameNode { Name = elementName.Text }; @@ -91,14 +91,9 @@ namespace Avalonia.Markup.Xaml.XamlIl.CompilerExtensions.Transformers throw new XamlParseException($"Invalid ElementName '{elementNameProperty.Values[0]}'.", elementNameProperty.Values[0]); } - if (sourceProperty?.Values[0] != null) + if (sourceProperty != null && convertedNode != null) { - if (convertedNode != null) - { - throw new XamlParseException("Only one of ElementName, Source, or RelativeSource specified as a binding source. Only one property is allowed.", binding); - } - - convertedNode = new RawSourceBindingExpressionNode(sourceProperty?.Values[0]); + throw new XamlParseException("Only one of ElementName, Source, or RelativeSource specified as a binding source. Only one property is allowed.", binding); } if (GetRelativeSourceObjectFromAssignment( @@ -223,10 +218,6 @@ namespace Avalonia.Markup.Xaml.XamlIl.CompilerExtensions.Transformers { binding.Children.Remove(elementNameProperty); } - if (sourceProperty != null) - { - binding.Children.Remove(sourceProperty); - } if (relativeSourceProperty != null) { binding.Children.Remove(relativeSourceProperty); diff --git a/src/Markup/Avalonia.Markup.Xaml.Loader/CompilerExtensions/Transformers/AvaloniaXamlIlTransformSyntheticCompiledBindingMembers.cs b/src/Markup/Avalonia.Markup.Xaml.Loader/CompilerExtensions/Transformers/AvaloniaXamlIlTransformSyntheticCompiledBindingMembers.cs index 6cb6e4e2d1..ba05347a52 100644 --- a/src/Markup/Avalonia.Markup.Xaml.Loader/CompilerExtensions/Transformers/AvaloniaXamlIlTransformSyntheticCompiledBindingMembers.cs +++ b/src/Markup/Avalonia.Markup.Xaml.Loader/CompilerExtensions/Transformers/AvaloniaXamlIlTransformSyntheticCompiledBindingMembers.cs @@ -25,11 +25,6 @@ namespace Avalonia.Markup.Xaml.XamlIl.CompilerExtensions.Transformers return new AvaloniaSyntheticCompiledBindingProperty(node, SyntheticCompiledBindingPropertyName.RelativeSource); } - else if (prop.Name == "Source") - { - //return new AvaloniaSyntheticCompiledBindingProperty(node, - // SyntheticCompiledBindingPropertyName.Source); - } } return node; @@ -39,8 +34,7 @@ namespace Avalonia.Markup.Xaml.XamlIl.CompilerExtensions.Transformers enum SyntheticCompiledBindingPropertyName { ElementName, - RelativeSource, - Source + RelativeSource } class AvaloniaSyntheticCompiledBindingProperty : XamlAstNode, IXamlAstPropertyReference From b229acf8dca90955d44eb255f5d11c4991b42427 Mon Sep 17 00:00:00 2001 From: Nikita Tsukanov Date: Sun, 15 Nov 2020 20:19:32 +0300 Subject: [PATCH 053/689] Don't use the concrete type in tests --- .../CompiledBindingExtensionTests.cs | 29 +++++++++++++++---- 1 file changed, 23 insertions(+), 6 deletions(-) diff --git a/tests/Avalonia.Markup.Xaml.UnitTests/MarkupExtensions/CompiledBindingExtensionTests.cs b/tests/Avalonia.Markup.Xaml.UnitTests/MarkupExtensions/CompiledBindingExtensionTests.cs index 50dfa2c7b0..1cf9e0877d 100644 --- a/tests/Avalonia.Markup.Xaml.UnitTests/MarkupExtensions/CompiledBindingExtensionTests.cs +++ b/tests/Avalonia.Markup.Xaml.UnitTests/MarkupExtensions/CompiledBindingExtensionTests.cs @@ -374,7 +374,7 @@ namespace Avalonia.Markup.Xaml.UnitTests.MarkupExtensions "; - Assert.Throws(() => AvaloniaRuntimeXamlLoader.Load(xaml)); + ThrowsXamlTransformException(() => AvaloniaRuntimeXamlLoader.Load(xaml)); } } @@ -392,7 +392,7 @@ namespace Avalonia.Markup.Xaml.UnitTests.MarkupExtensions "; - Assert.Throws(() => AvaloniaRuntimeXamlLoader.Load(xaml)); + ThrowsXamlTransformException(() => AvaloniaRuntimeXamlLoader.Load(xaml)); } } @@ -449,7 +449,7 @@ namespace Avalonia.Markup.Xaml.UnitTests.MarkupExtensions "; - Assert.Throws(() => AvaloniaRuntimeXamlLoader.Load(xaml)); + ThrowsXamlTransformException(() => AvaloniaRuntimeXamlLoader.Load(xaml)); } } @@ -599,7 +599,7 @@ namespace Avalonia.Markup.Xaml.UnitTests.MarkupExtensions x:CompileBindings='true'> "; - Assert.Throws(() => AvaloniaRuntimeXamlLoader.Load(xaml)); + ThrowsXamlParseException(() => AvaloniaRuntimeXamlLoader.Load(xaml)); } } @@ -657,7 +657,7 @@ namespace Avalonia.Markup.Xaml.UnitTests.MarkupExtensions x:DataType='local:TestDataContext' x:CompileBindings='notabool'> "; - Assert.Throws(() => AvaloniaRuntimeXamlLoader.Load(xaml)); + ThrowsXamlParseException(() => AvaloniaRuntimeXamlLoader.Load(xaml)); } } @@ -818,8 +818,25 @@ namespace Avalonia.Markup.Xaml.UnitTests.MarkupExtensions Assert.Equal(null, contentControl.Content); } } - } + void Throws(string type, Action cb) + { + try + { + cb(); + } + catch (Exception e) when (e.GetType().Name == type) + { + return; + } + + throw new Exception("Expected " + type); + } + + void ThrowsXamlParseException(Action cb) => Throws("XamlParseException", cb); + void ThrowsXamlTransformException(Action cb) => Throws("XamlTransformException", cb); + } + public interface INonIntegerIndexer { string this[string key] { get; set; } From da1f3968ef5e1180527c9f8fc71ea0545074a1a5 Mon Sep 17 00:00:00 2001 From: Dariusz Komosinski Date: Sun, 15 Nov 2020 18:48:40 +0100 Subject: [PATCH 054/689] Parse most of the vector-like types during XAML compilation. --- src/Avalonia.Base/Utilities/MathUtilities.cs | 5 +- .../Utilities/StringTokenizer.cs | 5 +- .../Avalonia.Build.Tasks.csproj | 24 ++++++++ src/Avalonia.Visuals/CornerRadius.cs | 9 ++- src/Avalonia.Visuals/Matrix.cs | 5 +- src/Avalonia.Visuals/Point.cs | 9 ++- src/Avalonia.Visuals/Size.cs | 9 ++- src/Avalonia.Visuals/Thickness.cs | 9 ++- src/Avalonia.Visuals/Vector.cs | 9 ++- ...AvaloniaXamlIlVectorLikeConstantAstNode.cs | 35 +++++++++++ .../AvaloniaXamlIlLanguage.cs | 60 +++++++++++++++++++ .../AvaloniaXamlIlWellKnownTypes.cs | 31 +++++++++- .../Avalonia.Markup.Xaml.Loader/xamlil.github | 2 +- 13 files changed, 201 insertions(+), 11 deletions(-) create mode 100644 src/Markup/Avalonia.Markup.Xaml.Loader/CompilerExtensions/AstNodes/AvaloniaXamlIlVectorLikeConstantAstNode.cs diff --git a/src/Avalonia.Base/Utilities/MathUtilities.cs b/src/Avalonia.Base/Utilities/MathUtilities.cs index 2a92e75f58..446b366dc8 100644 --- a/src/Avalonia.Base/Utilities/MathUtilities.cs +++ b/src/Avalonia.Base/Utilities/MathUtilities.cs @@ -5,7 +5,10 @@ namespace Avalonia.Utilities /// /// Provides math utilities not provided in System.Math. /// - public static class MathUtilities +#if !BUILDTASK + public +#endif + static class MathUtilities { // smallest such that 1.0+DoubleEpsilon != 1.0 internal static readonly double DoubleEpsilon = 2.2204460492503131e-016; diff --git a/src/Avalonia.Base/Utilities/StringTokenizer.cs b/src/Avalonia.Base/Utilities/StringTokenizer.cs index a159bfb72e..24e99febb9 100644 --- a/src/Avalonia.Base/Utilities/StringTokenizer.cs +++ b/src/Avalonia.Base/Utilities/StringTokenizer.cs @@ -4,7 +4,10 @@ using static System.Char; namespace Avalonia.Utilities { - public struct StringTokenizer : IDisposable +#if !BUILDTASK + public +#endif + struct StringTokenizer : IDisposable { private const char DefaultSeparatorChar = ','; diff --git a/src/Avalonia.Build.Tasks/Avalonia.Build.Tasks.csproj b/src/Avalonia.Build.Tasks/Avalonia.Build.Tasks.csproj index 94ad4adb7d..bfac1ac1e1 100644 --- a/src/Avalonia.Build.Tasks/Avalonia.Build.Tasks.csproj +++ b/src/Avalonia.Build.Tasks/Avalonia.Build.Tasks.csproj @@ -45,6 +45,12 @@ Markup/%(RecursiveDir)%(FileName)%(Extension) + + Markup/%(RecursiveDir)%(FileName)%(Extension) + + + Markup/%(RecursiveDir)%(FileName)%(Extension) + Markup/%(RecursiveDir)%(FileName)%(Extension) @@ -57,6 +63,24 @@ Markup/%(RecursiveDir)%(FileName)%(Extension) + + Markup/%(RecursiveDir)%(FileName)%(Extension) + + + Markup/%(RecursiveDir)%(FileName)%(Extension) + + + Markup/%(RecursiveDir)%(FileName)%(Extension) + + + Markup/%(RecursiveDir)%(FileName)%(Extension) + + + Markup/%(RecursiveDir)%(FileName)%(Extension) + + + Markup/%(RecursiveDir)%(FileName)%(Extension) + diff --git a/src/Avalonia.Visuals/CornerRadius.cs b/src/Avalonia.Visuals/CornerRadius.cs index c02aacfb4d..037bb16e31 100644 --- a/src/Avalonia.Visuals/CornerRadius.cs +++ b/src/Avalonia.Visuals/CornerRadius.cs @@ -1,6 +1,8 @@ using System; using System.Globalization; +#if !BUILDTASK using Avalonia.Animation.Animators; +#endif using Avalonia.Utilities; namespace Avalonia @@ -8,11 +10,16 @@ namespace Avalonia /// /// Represents the radii of a rectangle's corners. /// - public readonly struct CornerRadius : IEquatable +#if !BUILDTASK + public +#endif + readonly struct CornerRadius : IEquatable { static CornerRadius() { +#if !BUILDTASK Animation.Animation.RegisterAnimator(prop => typeof(CornerRadius).IsAssignableFrom(prop.PropertyType)); +#endif } public CornerRadius(double uniformRadius) diff --git a/src/Avalonia.Visuals/Matrix.cs b/src/Avalonia.Visuals/Matrix.cs index 206b842220..2ccfd43f03 100644 --- a/src/Avalonia.Visuals/Matrix.cs +++ b/src/Avalonia.Visuals/Matrix.cs @@ -7,7 +7,10 @@ namespace Avalonia /// /// A 2x3 matrix. /// - public readonly struct Matrix : IEquatable +#if !BUILDTASK + public +#endif + readonly struct Matrix : IEquatable { private readonly double _m11; private readonly double _m12; diff --git a/src/Avalonia.Visuals/Point.cs b/src/Avalonia.Visuals/Point.cs index 7324f5fbd0..6febe9c802 100644 --- a/src/Avalonia.Visuals/Point.cs +++ b/src/Avalonia.Visuals/Point.cs @@ -1,6 +1,8 @@ using System; using System.Globalization; +#if !BUILDTASK using Avalonia.Animation.Animators; +#endif using Avalonia.Utilities; namespace Avalonia @@ -8,11 +10,16 @@ namespace Avalonia /// /// Defines a point. /// - public readonly struct Point : IEquatable +#if !BUILDTASK + public +#endif + readonly struct Point : IEquatable { static Point() { +#if !BUILDTASK Animation.Animation.RegisterAnimator(prop => typeof(Point).IsAssignableFrom(prop.PropertyType)); +#endif } /// diff --git a/src/Avalonia.Visuals/Size.cs b/src/Avalonia.Visuals/Size.cs index d87d2c5fc2..8a805dc6c5 100644 --- a/src/Avalonia.Visuals/Size.cs +++ b/src/Avalonia.Visuals/Size.cs @@ -1,6 +1,8 @@ using System; using System.Globalization; +#if !BUILDTASK using Avalonia.Animation.Animators; +#endif using Avalonia.Utilities; namespace Avalonia @@ -8,11 +10,16 @@ namespace Avalonia /// /// Defines a size. /// - public readonly struct Size : IEquatable +#if !BUILDTASK + public +#endif + readonly struct Size : IEquatable { static Size() { +#if !BUILDTASK Animation.Animation.RegisterAnimator(prop => typeof(Size).IsAssignableFrom(prop.PropertyType)); +#endif } /// diff --git a/src/Avalonia.Visuals/Thickness.cs b/src/Avalonia.Visuals/Thickness.cs index 6d69c4d9a9..06ebc9bfe7 100644 --- a/src/Avalonia.Visuals/Thickness.cs +++ b/src/Avalonia.Visuals/Thickness.cs @@ -1,6 +1,8 @@ using System; using System.Globalization; +#if !BUILDTASK using Avalonia.Animation.Animators; +#endif using Avalonia.Utilities; namespace Avalonia @@ -8,11 +10,16 @@ namespace Avalonia /// /// Describes the thickness of a frame around a rectangle. /// - public readonly struct Thickness : IEquatable +#if !BUILDTASK + public +#endif + readonly struct Thickness : IEquatable { static Thickness() { +#if !BUILDTASK Animation.Animation.RegisterAnimator(prop => typeof(Thickness).IsAssignableFrom(prop.PropertyType)); +#endif } /// diff --git a/src/Avalonia.Visuals/Vector.cs b/src/Avalonia.Visuals/Vector.cs index 2fcf804f14..1b9f5c67d5 100644 --- a/src/Avalonia.Visuals/Vector.cs +++ b/src/Avalonia.Visuals/Vector.cs @@ -1,6 +1,8 @@ using System; using System.Globalization; +#if !BUILDTASK using Avalonia.Animation.Animators; +#endif using Avalonia.Utilities; #nullable enable @@ -10,11 +12,16 @@ namespace Avalonia /// /// Defines a vector. /// - public readonly struct Vector : IEquatable +#if !BUILDTASK + public +#endif + readonly struct Vector : IEquatable { static Vector() { +#if !BUILDTASK Animation.Animation.RegisterAnimator(prop => typeof(Vector).IsAssignableFrom(prop.PropertyType)); +#endif } /// diff --git a/src/Markup/Avalonia.Markup.Xaml.Loader/CompilerExtensions/AstNodes/AvaloniaXamlIlVectorLikeConstantAstNode.cs b/src/Markup/Avalonia.Markup.Xaml.Loader/CompilerExtensions/AstNodes/AvaloniaXamlIlVectorLikeConstantAstNode.cs new file mode 100644 index 0000000000..db23856900 --- /dev/null +++ b/src/Markup/Avalonia.Markup.Xaml.Loader/CompilerExtensions/AstNodes/AvaloniaXamlIlVectorLikeConstantAstNode.cs @@ -0,0 +1,35 @@ +using XamlX.Ast; +using XamlX.Emit; +using XamlX.IL; +using XamlX.TypeSystem; + +namespace Avalonia.Markup.Xaml.XamlIl.CompilerExtensions.AstNodes +{ + class AvaloniaXamlIlVectorLikeConstantAstNode : XamlAstNode, IXamlAstValueNode, IXamlAstILEmitableNode + { + private readonly IXamlConstructor _constructor; + private readonly double[] _values; + + public AvaloniaXamlIlVectorLikeConstantAstNode(IXamlLineInfo lineInfo, IXamlType type, IXamlConstructor constructor, double[] values) : base(lineInfo) + { + _constructor = constructor; + _values = values; + + Type = new XamlAstClrTypeReference(lineInfo, type, false); + } + + public IXamlAstTypeReference Type { get; } + + public XamlILNodeEmitResult Emit(XamlEmitContext context, IXamlILEmitter codeGen) + { + foreach (var value in _values) + { + codeGen.Ldc_R8(value); + } + + codeGen.Newobj(_constructor); + + return XamlILNodeEmitResult.Type(0, Type.GetClrType()); + } + } +} diff --git a/src/Markup/Avalonia.Markup.Xaml.Loader/CompilerExtensions/AvaloniaXamlIlLanguage.cs b/src/Markup/Avalonia.Markup.Xaml.Loader/CompilerExtensions/AvaloniaXamlIlLanguage.cs index 15413689f8..5dc6682129 100644 --- a/src/Markup/Avalonia.Markup.Xaml.Loader/CompilerExtensions/AvaloniaXamlIlLanguage.cs +++ b/src/Markup/Avalonia.Markup.Xaml.Loader/CompilerExtensions/AvaloniaXamlIlLanguage.cs @@ -205,6 +205,66 @@ namespace Avalonia.Markup.Xaml.XamlIl.CompilerExtensions result = new AvaloniaXamlIlFontFamilyAstNode(types, text, node); return true; } + + if (type.Equals(types.Thickness)) + { + var thickness = Thickness.Parse(text); + + result = new AvaloniaXamlIlVectorLikeConstantAstNode(node, types.Thickness, types.ThicknessFullConstructorName, + new[] { thickness.Left, thickness.Top, thickness.Right, thickness.Bottom }); + + return true; + } + + if (type.Equals(types.Point)) + { + var point = Point.Parse(text); + + result = new AvaloniaXamlIlVectorLikeConstantAstNode(node, types.Point, types.PointFullConstructorName, + new[] { point.X, point.Y }); + + return true; + } + + if (type.Equals(types.Vector)) + { + var vector = Vector.Parse(text); + + result = new AvaloniaXamlIlVectorLikeConstantAstNode(node, types.Vector, types.VectorFullConstructorName, + new[] { vector.X, vector.Y }); + + return true; + } + + if (type.Equals(types.Size)) + { + var size = Size.Parse(text); + + result = new AvaloniaXamlIlVectorLikeConstantAstNode(node, types.Size, types.SizeFullConstructorName, + new[] { size.Width, size.Height }); + + return true; + } + + if (type.Equals(types.Matrix)) + { + var matrix = Matrix.Parse(text); + + result = new AvaloniaXamlIlVectorLikeConstantAstNode(node, types.Matrix, types.MatrixFullConstructorName, + new[] { matrix.M11, matrix.M12, matrix.M21, matrix.M22, matrix.M31, matrix.M32 }); + + return true; + } + + if (type.Equals(types.CornerRadius)) + { + var cornerRadius = CornerRadius.Parse(text); + + result = new AvaloniaXamlIlVectorLikeConstantAstNode(node, types.CornerRadius, types.CornerRadiusFullConstructorName, + new[] { cornerRadius.TopLeft, cornerRadius.TopRight, cornerRadius.BottomRight, cornerRadius.BottomLeft }); + + return true; + } if (type.FullName == "Avalonia.AvaloniaProperty") { diff --git a/src/Markup/Avalonia.Markup.Xaml.Loader/CompilerExtensions/Transformers/AvaloniaXamlIlWellKnownTypes.cs b/src/Markup/Avalonia.Markup.Xaml.Loader/CompilerExtensions/Transformers/AvaloniaXamlIlWellKnownTypes.cs index 58f4ddfe31..8ac2daa707 100644 --- a/src/Markup/Avalonia.Markup.Xaml.Loader/CompilerExtensions/Transformers/AvaloniaXamlIlWellKnownTypes.cs +++ b/src/Markup/Avalonia.Markup.Xaml.Loader/CompilerExtensions/Transformers/AvaloniaXamlIlWellKnownTypes.cs @@ -1,4 +1,5 @@ using System.Collections.Generic; +using System.Linq; using XamlX.Emit; using XamlX.IL; using XamlX.Transform; @@ -52,7 +53,18 @@ namespace Avalonia.Markup.Xaml.XamlIl.CompilerExtensions.Transformers public IXamlType Uri { get; } public IXamlType FontFamily { get; } public IXamlConstructor FontFamilyConstructorUriName { get; } - + public IXamlType Thickness { get; } + public IXamlConstructor ThicknessFullConstructorName { get; } + public IXamlType Point { get; } + public IXamlConstructor PointFullConstructorName { get; } + public IXamlType Vector { get; } + public IXamlConstructor VectorFullConstructorName { get; } + public IXamlType Size { get; } + public IXamlConstructor SizeFullConstructorName { get; } + public IXamlType Matrix { get; } + public IXamlConstructor MatrixFullConstructorName { get; } + public IXamlType CornerRadius { get; } + public IXamlConstructor CornerRadiusFullConstructorName { get; } public AvaloniaXamlIlWellKnownTypes(TransformerConfiguration cfg) { @@ -113,7 +125,22 @@ namespace Avalonia.Markup.Xaml.XamlIl.CompilerExtensions.Transformers Long = cfg.TypeSystem.GetType("System.Int64"); Uri = cfg.TypeSystem.GetType("System.Uri"); FontFamily = cfg.TypeSystem.GetType("Avalonia.Media.FontFamily"); - FontFamilyConstructorUriName = FontFamily.FindConstructor(new List { Uri, XamlIlTypes.String }); + FontFamilyConstructorUriName = FontFamily.GetConstructor(new List { Uri, XamlIlTypes.String }); + + (IXamlType, IXamlConstructor) GetNumericTypeInfo(string name, IXamlType componentType, int componentCount) + { + var type = cfg.TypeSystem.GetType(name); + var ctor = type.GetConstructor(Enumerable.Range(0, componentCount).Select(_ => componentType).ToList()); + + return (type, ctor); + } + + (Thickness, ThicknessFullConstructorName) = GetNumericTypeInfo("Avalonia.Thickness", XamlIlTypes.Double, 4); + (Point, PointFullConstructorName) = GetNumericTypeInfo("Avalonia.Point", XamlIlTypes.Double, 2); + (Vector, VectorFullConstructorName) = GetNumericTypeInfo("Avalonia.Vector", XamlIlTypes.Double, 2); + (Size, SizeFullConstructorName) = GetNumericTypeInfo("Avalonia.Size", XamlIlTypes.Double, 2); + (Matrix, MatrixFullConstructorName) = GetNumericTypeInfo("Avalonia.Matrix", XamlIlTypes.Double, 6); + (CornerRadius, CornerRadiusFullConstructorName) = GetNumericTypeInfo("Avalonia.CornerRadius", XamlIlTypes.Double, 4); } } diff --git a/src/Markup/Avalonia.Markup.Xaml.Loader/xamlil.github b/src/Markup/Avalonia.Markup.Xaml.Loader/xamlil.github index 5420df861c..8d2b6e6ee5 160000 --- a/src/Markup/Avalonia.Markup.Xaml.Loader/xamlil.github +++ b/src/Markup/Avalonia.Markup.Xaml.Loader/xamlil.github @@ -1 +1 @@ -Subproject commit 5420df861ce6f2be5ead9efa078fe7242ce88f18 +Subproject commit 8d2b6e6ee5099d6a0271e743d2808f44e3241945 From 346687423c7e7be1dc56aad5d99971842789fe59 Mon Sep 17 00:00:00 2001 From: Dariusz Komosinski Date: Sun, 15 Nov 2020 19:12:45 +0100 Subject: [PATCH 055/689] Bump compiler version. --- src/Markup/Avalonia.Markup.Xaml.Loader/xamlil.github | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Markup/Avalonia.Markup.Xaml.Loader/xamlil.github b/src/Markup/Avalonia.Markup.Xaml.Loader/xamlil.github index 8d2b6e6ee5..ea80a607c5 160000 --- a/src/Markup/Avalonia.Markup.Xaml.Loader/xamlil.github +++ b/src/Markup/Avalonia.Markup.Xaml.Loader/xamlil.github @@ -1 +1 @@ -Subproject commit 8d2b6e6ee5099d6a0271e743d2808f44e3241945 +Subproject commit ea80a607c5e9d8f000160dbbb48c27ed4cfafbc9 From 78dde1f2dacfa1eb12d0811bbc818f4555da3863 Mon Sep 17 00:00:00 2001 From: Dariusz Komosinski Date: Sun, 15 Nov 2020 19:36:46 +0100 Subject: [PATCH 056/689] Review fixes. --- ...AvaloniaXamlIlVectorLikeConstantAstNode.cs | 23 ++++++++++++++++-- .../AvaloniaXamlIlLanguage.cs | 12 +++++----- .../AvaloniaXamlIlWellKnownTypes.cs | 24 +++++++++---------- 3 files changed, 39 insertions(+), 20 deletions(-) diff --git a/src/Markup/Avalonia.Markup.Xaml.Loader/CompilerExtensions/AstNodes/AvaloniaXamlIlVectorLikeConstantAstNode.cs b/src/Markup/Avalonia.Markup.Xaml.Loader/CompilerExtensions/AstNodes/AvaloniaXamlIlVectorLikeConstantAstNode.cs index db23856900..35cc9b3cf2 100644 --- a/src/Markup/Avalonia.Markup.Xaml.Loader/CompilerExtensions/AstNodes/AvaloniaXamlIlVectorLikeConstantAstNode.cs +++ b/src/Markup/Avalonia.Markup.Xaml.Loader/CompilerExtensions/AstNodes/AvaloniaXamlIlVectorLikeConstantAstNode.cs @@ -1,4 +1,6 @@ -using XamlX.Ast; +using Avalonia.Markup.Xaml.XamlIl.CompilerExtensions.Transformers; +using XamlX; +using XamlX.Ast; using XamlX.Emit; using XamlX.IL; using XamlX.TypeSystem; @@ -10,8 +12,25 @@ namespace Avalonia.Markup.Xaml.XamlIl.CompilerExtensions.AstNodes private readonly IXamlConstructor _constructor; private readonly double[] _values; - public AvaloniaXamlIlVectorLikeConstantAstNode(IXamlLineInfo lineInfo, IXamlType type, IXamlConstructor constructor, double[] values) : base(lineInfo) + public AvaloniaXamlIlVectorLikeConstantAstNode(IXamlLineInfo lineInfo, AvaloniaXamlIlWellKnownTypes types, IXamlType type, IXamlConstructor constructor, double[] values) : base(lineInfo) { + var parameters = constructor.Parameters; + + if (parameters.Count != values.Length) + { + throw new XamlTypeSystemException($"Constructor that takes {values.Length} parameters is expected, got {parameters.Count} instead."); + } + + var elementType = types.XamlIlTypes.Double; + + foreach (var parameter in parameters) + { + if (parameter != elementType) + { + throw new XamlTypeSystemException($"Expected parameter of type {elementType}, got {parameter} instead."); + } + } + _constructor = constructor; _values = values; diff --git a/src/Markup/Avalonia.Markup.Xaml.Loader/CompilerExtensions/AvaloniaXamlIlLanguage.cs b/src/Markup/Avalonia.Markup.Xaml.Loader/CompilerExtensions/AvaloniaXamlIlLanguage.cs index 5dc6682129..c3d9534828 100644 --- a/src/Markup/Avalonia.Markup.Xaml.Loader/CompilerExtensions/AvaloniaXamlIlLanguage.cs +++ b/src/Markup/Avalonia.Markup.Xaml.Loader/CompilerExtensions/AvaloniaXamlIlLanguage.cs @@ -210,7 +210,7 @@ namespace Avalonia.Markup.Xaml.XamlIl.CompilerExtensions { var thickness = Thickness.Parse(text); - result = new AvaloniaXamlIlVectorLikeConstantAstNode(node, types.Thickness, types.ThicknessFullConstructorName, + result = new AvaloniaXamlIlVectorLikeConstantAstNode(node, types, types.Thickness, types.ThicknessFullConstructor, new[] { thickness.Left, thickness.Top, thickness.Right, thickness.Bottom }); return true; @@ -220,7 +220,7 @@ namespace Avalonia.Markup.Xaml.XamlIl.CompilerExtensions { var point = Point.Parse(text); - result = new AvaloniaXamlIlVectorLikeConstantAstNode(node, types.Point, types.PointFullConstructorName, + result = new AvaloniaXamlIlVectorLikeConstantAstNode(node, types, types.Point, types.PointFullConstructor, new[] { point.X, point.Y }); return true; @@ -230,7 +230,7 @@ namespace Avalonia.Markup.Xaml.XamlIl.CompilerExtensions { var vector = Vector.Parse(text); - result = new AvaloniaXamlIlVectorLikeConstantAstNode(node, types.Vector, types.VectorFullConstructorName, + result = new AvaloniaXamlIlVectorLikeConstantAstNode(node, types, types.Vector, types.VectorFullConstructor, new[] { vector.X, vector.Y }); return true; @@ -240,7 +240,7 @@ namespace Avalonia.Markup.Xaml.XamlIl.CompilerExtensions { var size = Size.Parse(text); - result = new AvaloniaXamlIlVectorLikeConstantAstNode(node, types.Size, types.SizeFullConstructorName, + result = new AvaloniaXamlIlVectorLikeConstantAstNode(node, types, types.Size, types.SizeFullConstructor, new[] { size.Width, size.Height }); return true; @@ -250,7 +250,7 @@ namespace Avalonia.Markup.Xaml.XamlIl.CompilerExtensions { var matrix = Matrix.Parse(text); - result = new AvaloniaXamlIlVectorLikeConstantAstNode(node, types.Matrix, types.MatrixFullConstructorName, + result = new AvaloniaXamlIlVectorLikeConstantAstNode(node, types, types.Matrix, types.MatrixFullConstructor, new[] { matrix.M11, matrix.M12, matrix.M21, matrix.M22, matrix.M31, matrix.M32 }); return true; @@ -260,7 +260,7 @@ namespace Avalonia.Markup.Xaml.XamlIl.CompilerExtensions { var cornerRadius = CornerRadius.Parse(text); - result = new AvaloniaXamlIlVectorLikeConstantAstNode(node, types.CornerRadius, types.CornerRadiusFullConstructorName, + result = new AvaloniaXamlIlVectorLikeConstantAstNode(node, types, types.CornerRadius, types.CornerRadiusFullConstructor, new[] { cornerRadius.TopLeft, cornerRadius.TopRight, cornerRadius.BottomRight, cornerRadius.BottomLeft }); return true; diff --git a/src/Markup/Avalonia.Markup.Xaml.Loader/CompilerExtensions/Transformers/AvaloniaXamlIlWellKnownTypes.cs b/src/Markup/Avalonia.Markup.Xaml.Loader/CompilerExtensions/Transformers/AvaloniaXamlIlWellKnownTypes.cs index 8ac2daa707..05b13b61d3 100644 --- a/src/Markup/Avalonia.Markup.Xaml.Loader/CompilerExtensions/Transformers/AvaloniaXamlIlWellKnownTypes.cs +++ b/src/Markup/Avalonia.Markup.Xaml.Loader/CompilerExtensions/Transformers/AvaloniaXamlIlWellKnownTypes.cs @@ -54,17 +54,17 @@ namespace Avalonia.Markup.Xaml.XamlIl.CompilerExtensions.Transformers public IXamlType FontFamily { get; } public IXamlConstructor FontFamilyConstructorUriName { get; } public IXamlType Thickness { get; } - public IXamlConstructor ThicknessFullConstructorName { get; } + public IXamlConstructor ThicknessFullConstructor { get; } public IXamlType Point { get; } - public IXamlConstructor PointFullConstructorName { get; } + public IXamlConstructor PointFullConstructor { get; } public IXamlType Vector { get; } - public IXamlConstructor VectorFullConstructorName { get; } + public IXamlConstructor VectorFullConstructor { get; } public IXamlType Size { get; } - public IXamlConstructor SizeFullConstructorName { get; } + public IXamlConstructor SizeFullConstructor { get; } public IXamlType Matrix { get; } - public IXamlConstructor MatrixFullConstructorName { get; } + public IXamlConstructor MatrixFullConstructor { get; } public IXamlType CornerRadius { get; } - public IXamlConstructor CornerRadiusFullConstructorName { get; } + public IXamlConstructor CornerRadiusFullConstructor { get; } public AvaloniaXamlIlWellKnownTypes(TransformerConfiguration cfg) { @@ -135,12 +135,12 @@ namespace Avalonia.Markup.Xaml.XamlIl.CompilerExtensions.Transformers return (type, ctor); } - (Thickness, ThicknessFullConstructorName) = GetNumericTypeInfo("Avalonia.Thickness", XamlIlTypes.Double, 4); - (Point, PointFullConstructorName) = GetNumericTypeInfo("Avalonia.Point", XamlIlTypes.Double, 2); - (Vector, VectorFullConstructorName) = GetNumericTypeInfo("Avalonia.Vector", XamlIlTypes.Double, 2); - (Size, SizeFullConstructorName) = GetNumericTypeInfo("Avalonia.Size", XamlIlTypes.Double, 2); - (Matrix, MatrixFullConstructorName) = GetNumericTypeInfo("Avalonia.Matrix", XamlIlTypes.Double, 6); - (CornerRadius, CornerRadiusFullConstructorName) = GetNumericTypeInfo("Avalonia.CornerRadius", XamlIlTypes.Double, 4); + (Thickness, ThicknessFullConstructor) = GetNumericTypeInfo("Avalonia.Thickness", XamlIlTypes.Double, 4); + (Point, PointFullConstructor) = GetNumericTypeInfo("Avalonia.Point", XamlIlTypes.Double, 2); + (Vector, VectorFullConstructor) = GetNumericTypeInfo("Avalonia.Vector", XamlIlTypes.Double, 2); + (Size, SizeFullConstructor) = GetNumericTypeInfo("Avalonia.Size", XamlIlTypes.Double, 2); + (Matrix, MatrixFullConstructor) = GetNumericTypeInfo("Avalonia.Matrix", XamlIlTypes.Double, 6); + (CornerRadius, CornerRadiusFullConstructor) = GetNumericTypeInfo("Avalonia.CornerRadius", XamlIlTypes.Double, 4); } } From 32be146090772f6bcc4978d51074ba730769fd32 Mon Sep 17 00:00:00 2001 From: Dan Walmsley Date: Sun, 15 Nov 2020 12:42:36 +0000 Subject: [PATCH 057/689] lock api diff to preview6. --- build/ApiDiff.props | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build/ApiDiff.props b/build/ApiDiff.props index 3d322f56d5..fb65ef6e87 100644 --- a/build/ApiDiff.props +++ b/build/ApiDiff.props @@ -1,6 +1,6 @@  - 0.10.0-preview3 + 0.10.0-preview6 $(PackageId) Avalonia From 8c7540ddf15137d96f77cf386dde5eebd49c44df Mon Sep 17 00:00:00 2001 From: Dan Walmsley Date: Sun, 15 Nov 2020 12:42:50 +0000 Subject: [PATCH 058/689] update System.Reactive to .net5 --- build/Rx.props | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build/Rx.props b/build/Rx.props index 8a15ccd6a9..fde1f80ea1 100644 --- a/build/Rx.props +++ b/build/Rx.props @@ -1,5 +1,5 @@  - + From ae982fcfa15041409645c52156041d51151fdaf3 Mon Sep 17 00:00:00 2001 From: Dan Walmsley Date: Sun, 15 Nov 2020 18:32:03 +0000 Subject: [PATCH 059/689] try updating nuke. --- nukebuild/_build.csproj | 2 +- samples/ControlCatalog.NetCore/ControlCatalog.NetCore.csproj | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/nukebuild/_build.csproj b/nukebuild/_build.csproj index 745c727be2..b0380cc92b 100644 --- a/nukebuild/_build.csproj +++ b/nukebuild/_build.csproj @@ -10,7 +10,7 @@ - + diff --git a/samples/ControlCatalog.NetCore/ControlCatalog.NetCore.csproj b/samples/ControlCatalog.NetCore/ControlCatalog.NetCore.csproj index d5aedf7783..11e340e647 100644 --- a/samples/ControlCatalog.NetCore/ControlCatalog.NetCore.csproj +++ b/samples/ControlCatalog.NetCore/ControlCatalog.NetCore.csproj @@ -2,7 +2,7 @@ Exe - netcoreapp3.1 + net5 true From 3d98acbed9624109baa60e66fb06c4c55d8b0a9c Mon Sep 17 00:00:00 2001 From: Dan Walmsley Date: Sun, 15 Nov 2020 18:54:13 +0000 Subject: [PATCH 060/689] fix nuke --- nukebuild/Build.cs | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/nukebuild/Build.cs b/nukebuild/Build.cs index 97647a1c59..8e331edab4 100644 --- a/nukebuild/Build.cs +++ b/nukebuild/Build.cs @@ -107,7 +107,7 @@ partial class Build : NukeBuild .AddProperty("JavaSdkDirectory", GetVariable("JAVA_HOME_8_X64"))) .AddProperty("PackageVersion", Parameters.Version) .AddProperty("iOSRoslynPathHackRequired", true) - .SetToolPath(MsBuildExe.Value) + .SetProcessToolPath(MsBuildExe.Value) .SetConfiguration(Parameters.Configuration) .SetVerbosity(MSBuildVerbosity.Minimal) .Apply(configurator)); @@ -132,10 +132,10 @@ partial class Build : NukeBuild var webappDir = RootDirectory / "src" / "Avalonia.DesignerSupport" / "Remote" / "HtmlTransport" / "webapp"; NpmTasks.NpmInstall(c => c - .SetWorkingDirectory(webappDir) - .SetArgumentConfigurator(a => a.Add("--silent"))); + .SetProcessWorkingDirectory(webappDir) + .SetProcessArgumentConfigurator(a => a.Add("--silent"))); NpmTasks.NpmRun(c => c - .SetWorkingDirectory(webappDir) + .SetProcessWorkingDirectory(webappDir) .SetCommand("dist")); }); @@ -157,7 +157,7 @@ partial class Build : NukeBuild { if (Parameters.IsRunningOnWindows) MsBuildCommon(Parameters.MSBuildSolution, c => c - .SetArgumentConfigurator(a => a.Add("/r")) + .SetProcessArgumentConfigurator(a => a.Add("/r")) .AddTargets("Build") ); @@ -194,7 +194,7 @@ partial class Build : NukeBuild var eventsProject = Path.Combine(eventsDirectory, "Avalonia.ReactiveUI.Events.csproj"); if (Parameters.IsRunningOnWindows) MsBuildCommon(eventsProject, c => c - .SetArgumentConfigurator(a => a.Add("/r")) + .SetProcessArgumentConfigurator(a => a.Add("/r")) .AddTargets("Build") ); else @@ -242,10 +242,10 @@ partial class Build : NukeBuild var webappTestDir = RootDirectory / "tests" / "Avalonia.DesignerSupport.Tests" / "Remote" / "HtmlTransport" / "webapp"; NpmTasks.NpmInstall(c => c - .SetWorkingDirectory(webappTestDir) - .SetArgumentConfigurator(a => a.Add("--silent"))); + .SetProcessWorkingDirectory(webappTestDir) + .SetProcessArgumentConfigurator(a => a.Add("--silent"))); NpmTasks.NpmRun(c => c - .SetWorkingDirectory(webappTestDir) + .SetProcessWorkingDirectory(webappTestDir) .SetCommand("test")); }); From d3e304048c955149285864da6a0032cd24a57b84 Mon Sep 17 00:00:00 2001 From: Dan Walmsley Date: Sun, 15 Nov 2020 19:06:13 +0000 Subject: [PATCH 061/689] revert controlcatalog target. --- samples/ControlCatalog.NetCore/ControlCatalog.NetCore.csproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/ControlCatalog.NetCore/ControlCatalog.NetCore.csproj b/samples/ControlCatalog.NetCore/ControlCatalog.NetCore.csproj index 11e340e647..d5aedf7783 100644 --- a/samples/ControlCatalog.NetCore/ControlCatalog.NetCore.csproj +++ b/samples/ControlCatalog.NetCore/ControlCatalog.NetCore.csproj @@ -2,7 +2,7 @@ Exe - net5 + netcoreapp3.1 true From 3518f19b2aa5d688781a06217e7090bb2efb575c Mon Sep 17 00:00:00 2001 From: Steven Kirk Date: Mon, 16 Nov 2020 11:22:05 +0100 Subject: [PATCH 062/689] Revert "ItemsControl+ItemVirtualizerSimple don not recreate containers when Items or ItemTemplate are replaced" --- src/Avalonia.Controls/ItemsControl.cs | 6 +- .../Presenters/ItemVirtualizerSimple.cs | 4 - .../Presenters/ItemsPresenterBase.cs | 4 +- .../ItemsControlTests.cs | 92 -------------- .../ListBoxTests.cs | 112 ------------------ 5 files changed, 2 insertions(+), 216 deletions(-) diff --git a/src/Avalonia.Controls/ItemsControl.cs b/src/Avalonia.Controls/ItemsControl.cs index f955df5f21..4dc8aec6f3 100644 --- a/src/Avalonia.Controls/ItemsControl.cs +++ b/src/Avalonia.Controls/ItemsControl.cs @@ -449,11 +449,7 @@ namespace Avalonia.Controls if (_itemContainerGenerator != null) { _itemContainerGenerator.ItemTemplate = (IDataTemplate)e.NewValue; - - if (e.OldValue != null && Presenter != null) - { - Presenter.ItemsChanged(new NotifyCollectionChangedEventArgs(NotifyCollectionChangedAction.Reset)); - } + // TODO: Rebuild the item containers. } } diff --git a/src/Avalonia.Controls/Presenters/ItemVirtualizerSimple.cs b/src/Avalonia.Controls/Presenters/ItemVirtualizerSimple.cs index 51dbc969a8..7d50ef7d33 100644 --- a/src/Avalonia.Controls/Presenters/ItemVirtualizerSimple.cs +++ b/src/Avalonia.Controls/Presenters/ItemVirtualizerSimple.cs @@ -200,10 +200,6 @@ namespace Avalonia.Controls.Presenters break; case NotifyCollectionChangedAction.Reset: - Owner.ItemContainerGenerator.Clear(); - VirtualizingPanel.Children.Clear(); - FirstIndex = NextIndex = 0; - RecycleContainersOnRemove(); CreateAndRemoveContainers(); panel.ForceInvalidateMeasure(); diff --git a/src/Avalonia.Controls/Presenters/ItemsPresenterBase.cs b/src/Avalonia.Controls/Presenters/ItemsPresenterBase.cs index 6c408bbed9..52f173fc71 100644 --- a/src/Avalonia.Controls/Presenters/ItemsPresenterBase.cs +++ b/src/Avalonia.Controls/Presenters/ItemsPresenterBase.cs @@ -57,8 +57,6 @@ namespace Avalonia.Controls.Presenters set { - var itemsReplaced = (_items != value); - _itemsSubscription?.Dispose(); _itemsSubscription = null; @@ -69,7 +67,7 @@ namespace Avalonia.Controls.Presenters SetAndRaise(ItemsProperty, ref _items, value); - if (_createdPanel && itemsReplaced) + if (_createdPanel) { ItemsChanged(new NotifyCollectionChangedEventArgs(NotifyCollectionChangedAction.Reset)); } diff --git a/tests/Avalonia.Controls.UnitTests/ItemsControlTests.cs b/tests/Avalonia.Controls.UnitTests/ItemsControlTests.cs index 157eefb84a..684486cbae 100644 --- a/tests/Avalonia.Controls.UnitTests/ItemsControlTests.cs +++ b/tests/Avalonia.Controls.UnitTests/ItemsControlTests.cs @@ -596,98 +596,6 @@ namespace Avalonia.Controls.UnitTests root.Child = target; } - [Fact] - public void Presenter_Items_Should_Be_In_Sync_When_Replacing_Items() - { - var target = new ItemsControl - { - Template = GetTemplate(), - Items = new[] - { - new Item("Item1") - } - }; - - var root = new TestRoot { Child = target }; - var otherPanel = new StackPanel(); - - target.ApplyTemplate(); - target.Presenter.ApplyTemplate(); - - int dematerializedEventCallCount = 0; - target.ItemContainerGenerator.Dematerialized += (s, e) => - { - Assert.IsType(e.Containers[0].Item); - Assert.Equal("Item1", ((Item)e.Containers[0].Item).Value); - dematerializedEventCallCount++; - }; - - int materializedEventCallCount = 0; - target.ItemContainerGenerator.Materialized += (s, e) => - { - Assert.IsType(e.Containers[0].Item); - Assert.Equal("Item2", ((Item)e.Containers[0].Item).Value); - materializedEventCallCount++; - }; - - target.Items = new[] - { - new Item("Item2") - }; - - //Ensure that events are called one time only - Assert.Equal(1, dematerializedEventCallCount); - Assert.Equal(1, materializedEventCallCount); - } - - [Fact] - public void Presenter_Items_Should_Be_In_Sync_When_Replacing_ItemTemplate() - { - var target = new ItemsControl - { - Template = GetTemplate(), - Items = new[] - { - new Item("Item1") - }, - ItemTemplate = new FuncDataTemplate((x, ns) => new TextBlock()) - }; - - var root = new TestRoot { Child = target }; - var otherPanel = new StackPanel(); - - target.ApplyTemplate(); - target.Presenter.ApplyTemplate(); - - int dematerializedEventCallCount = 0; - target.ItemContainerGenerator.Dematerialized += (s, e) => - { - Assert.IsType(e.Containers[0].Item); - Assert.Equal("Item1", ((Item)e.Containers[0].Item).Value); - var contentPresenter = ((ContentPresenter)e.Containers[0].ContainerControl); - contentPresenter.UpdateChild(); - Assert.IsType(contentPresenter.Child); - dematerializedEventCallCount++; - }; - - int materializedEventCallCount = 0; - target.ItemContainerGenerator.Materialized += (s, e) => - { - Assert.IsType(e.Containers[0].Item); - Assert.Equal("Item1", ((Item)e.Containers[0].Item).Value); - var contentPresenter = ((ContentPresenter)e.Containers[0].ContainerControl); - contentPresenter.UpdateChild(); - Assert.IsType(contentPresenter.Child); - materializedEventCallCount++; - }; - - target.ItemTemplate = - new FuncDataTemplate((x, ns) => new Canvas()); - - Assert.Equal(1, dematerializedEventCallCount); - Assert.Equal(1, materializedEventCallCount); - } - private class Item { public Item(string value) diff --git a/tests/Avalonia.Controls.UnitTests/ListBoxTests.cs b/tests/Avalonia.Controls.UnitTests/ListBoxTests.cs index 364cb01c65..145fce4fed 100644 --- a/tests/Avalonia.Controls.UnitTests/ListBoxTests.cs +++ b/tests/Avalonia.Controls.UnitTests/ListBoxTests.cs @@ -454,118 +454,6 @@ namespace Avalonia.Controls.UnitTests } } - - [Fact] - public void ListBox_Presenter_Items_Should_Be_In_Sync_When_Replacing_Items() - { - using (UnitTestApplication.Start(TestServices.StyledWindow)) - { - var wnd = new Window() { Width = 100, Height = 100, IsVisible = true }; - - var target = new ListBox() - { - VerticalAlignment = Layout.VerticalAlignment.Top, - AutoScrollToSelectedItem = true, - Width = 50, - VirtualizationMode = ItemVirtualizationMode.Simple, - Items = new[] - { - new Item("Item1") - }, - }; - wnd.Content = target; - - var lm = wnd.LayoutManager; - - lm.ExecuteInitialLayoutPass(); - - int dematerializedEventCallCount = 0; - target.ItemContainerGenerator.Dematerialized += (s, e) => - { - Assert.IsType(e.Containers[0].Item); - Assert.Equal("Item1", ((Item)e.Containers[0].Item).Value); - dematerializedEventCallCount++; - }; - - int materializedEventCallCount = 0; - target.ItemContainerGenerator.Materialized += (s, e) => - { - Assert.IsType(e.Containers[0].Item); - Assert.Equal("Item2", ((Item)e.Containers[0].Item).Value); - materializedEventCallCount++; - }; - - target.Items = new[] - { - new Item("Item2") - }; - - //assert that materialize/dematerialize events are called exactly one time - Assert.Equal(1, dematerializedEventCallCount); - Assert.Equal(1, materializedEventCallCount); - } - } - - [Fact] - public void ListBox_Items_Should_Be_In_Sync_When_Replacing_ItemTemplate() - { - using (UnitTestApplication.Start(TestServices.StyledWindow)) - { - var wnd = new Window() { Width = 100, Height = 100, IsVisible = true }; - - var target = new ListBox() - { - VerticalAlignment = Layout.VerticalAlignment.Top, - AutoScrollToSelectedItem = true, - Width = 50, - VirtualizationMode = ItemVirtualizationMode.Simple, - Items = new[] - { - new Item("Item1") - }, - ItemTemplate = - new FuncDataTemplate((x, ns) => new Canvas()) - }; - - wnd.Content = target; - - var lm = wnd.LayoutManager; - - lm.ExecuteInitialLayoutPass(); - - int dematerializedEventCallCount = 0; - target.ItemContainerGenerator.Dematerialized += (s, e) => - { - Assert.IsType(e.Containers[0].Item); - Assert.Equal("Item1", ((Item)e.Containers[0].Item).Value); - Assert.IsType(((ListBoxItem)e.Containers[0].ContainerControl).Presenter.Child); - dematerializedEventCallCount++; - }; - - int materializedEventCallCount = 0; - ListBoxItem materializedListBoxItem = null; - target.ItemContainerGenerator.Materialized += (s, e) => - { - Assert.IsType(e.Containers[0].Item); - Assert.Equal("Item1", ((Item)e.Containers[0].Item).Value); - materializedListBoxItem = ((ListBoxItem)e.Containers[0].ContainerControl); - materializedEventCallCount++; - }; - - target.ItemTemplate = - new FuncDataTemplate((x, ns) => new TextBlock()); - - //ensure events are called only one time - Assert.Equal(1, dematerializedEventCallCount); - Assert.Equal(1, materializedEventCallCount); - - wnd.LayoutManager.ExecuteLayoutPass(); - - //ensure that new template has been applied - Assert.IsType(materializedListBoxItem.Presenter.Child); - } - } - private FuncControlTemplate ListBoxTemplate() { return new FuncControlTemplate((parent, scope) => From cc1051efa35342ba4ef095b987b3f583cfe550d8 Mon Sep 17 00:00:00 2001 From: Andrey Kunchev Date: Mon, 16 Nov 2020 14:03:13 +0200 Subject: [PATCH 063/689] add failing test for set of base class property --- .../Xaml/XamlIlTests.cs | 21 ++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/tests/Avalonia.Markup.Xaml.UnitTests/Xaml/XamlIlTests.cs b/tests/Avalonia.Markup.Xaml.UnitTests/Xaml/XamlIlTests.cs index 67e46d25c3..77a4932ccc 100644 --- a/tests/Avalonia.Markup.Xaml.UnitTests/Xaml/XamlIlTests.cs +++ b/tests/Avalonia.Markup.Xaml.UnitTests/Xaml/XamlIlTests.cs @@ -295,8 +295,27 @@ namespace Avalonia.Markup.Xaml.UnitTests Assert.Equal("Test", templated.Text); } } + + [Fact] + public void Should_Work_With_Base_Property() + { + var parsed = (ListBox)AvaloniaRuntimeXamlLoader.Load(@" + + + + + + +"); + + Assert.NotNull(parsed.ItemTemplate); + } } - + public class XamlIlBugTestsEventHandlerCodeBehind : Window { public object SavedContext; From db96b4d39ee3733dcd55ead409c6df9a7314342f Mon Sep 17 00:00:00 2001 From: Andrey Kunchev Date: Mon, 16 Nov 2020 14:04:09 +0200 Subject: [PATCH 064/689] fix set of base class property in xaml fixes #1926 --- .../AvaloniaXamlIlTransformInstanceAttachedProperties.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Markup/Avalonia.Markup.Xaml.Loader/CompilerExtensions/Transformers/AvaloniaXamlIlTransformInstanceAttachedProperties.cs b/src/Markup/Avalonia.Markup.Xaml.Loader/CompilerExtensions/Transformers/AvaloniaXamlIlTransformInstanceAttachedProperties.cs index d78ceeb918..f87e73a783 100644 --- a/src/Markup/Avalonia.Markup.Xaml.Loader/CompilerExtensions/Transformers/AvaloniaXamlIlTransformInstanceAttachedProperties.cs +++ b/src/Markup/Avalonia.Markup.Xaml.Loader/CompilerExtensions/Transformers/AvaloniaXamlIlTransformInstanceAttachedProperties.cs @@ -22,7 +22,7 @@ namespace Avalonia.Markup.Xaml.XamlIl.CompilerExtensions.Transformers var avaloniaObject = context.Configuration.TypeSystem.FindType("Avalonia.AvaloniaObject"); if (avaloniaObject.IsAssignableFrom(targetRef.Type) && avaloniaObject.IsAssignableFrom(declaringRef.Type) - && !targetRef.Type.IsAssignableFrom(declaringRef.Type)) + && !declaringRef.Type.IsAssignableFrom(targetRef.Type)) { // Instance property var clrProp = declaringRef.Type.GetAllProperties().FirstOrDefault(p => p.Name == prop.Name); From 1dfb76d993fed57ac3ac64da4bcc1af475639983 Mon Sep 17 00:00:00 2001 From: Nikita Tsukanov Date: Mon, 16 Nov 2020 19:43:24 +0300 Subject: [PATCH 065/689] Fixed COM calling convention for 32 bit windows --- src/Avalonia.MicroCom/MicroComVtblBase.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Avalonia.MicroCom/MicroComVtblBase.cs b/src/Avalonia.MicroCom/MicroComVtblBase.cs index e06e2d4934..2f0607c0a8 100644 --- a/src/Avalonia.MicroCom/MicroComVtblBase.cs +++ b/src/Avalonia.MicroCom/MicroComVtblBase.cs @@ -7,10 +7,10 @@ namespace Avalonia.MicroCom public unsafe class MicroComVtblBase { private List _methods = new List(); - [UnmanagedFunctionPointerAttribute(CallingConvention.ThisCall)] + [UnmanagedFunctionPointerAttribute(CallingConvention.StdCall)] private delegate int AddRefDelegate(Ccw* ccw); - [UnmanagedFunctionPointerAttribute(CallingConvention.ThisCall)] + [UnmanagedFunctionPointerAttribute(CallingConvention.StdCall)] private delegate int QueryInterfaceDelegate(Ccw* ccw, Guid* guid, void** ppv); public static IntPtr Vtable { get; } = new MicroComVtblBase().CreateVTable(); From 303b6c15866fb61ae2e17093ddf5e85acc670ffb Mon Sep 17 00:00:00 2001 From: Nikita Tsukanov Date: Mon, 16 Nov 2020 23:25:13 +0300 Subject: [PATCH 066/689] Remove ReactiveUI usage from sample apps --- Avalonia.sln | 27 +++++ samples/BindingDemo/App.xaml.cs | 2 - samples/BindingDemo/BindingDemo.csproj | 3 +- .../ViewModels/ExceptionErrorViewModel.cs | 4 +- .../ViewModels/IndeiErrorViewModel.cs | 4 +- .../ViewModels/MainWindowViewModel.cs | 12 +- .../ViewModels/NestedCommandViewModel.cs | 8 +- samples/BindingDemo/ViewModels/TestItem.cs | 4 +- samples/ControlCatalog.Desktop/Program.cs | 4 +- samples/ControlCatalog.NetCore/Program.cs | 2 - samples/ControlCatalog/ControlCatalog.csproj | 2 +- .../ControlCatalog/Pages/LabelsPage.axaml.cs | 1 - samples/ControlCatalog/Pages/ListBoxPage.xaml | 2 +- samples/ControlCatalog/Pages/MenuPage.xaml.cs | 1 - .../Pages/NumericUpDownPage.xaml.cs | 4 +- .../Pages/ScrollViewerPage.xaml.cs | 4 +- .../Pages/TabControlPage.xaml.cs | 4 +- .../ViewModels/ContextMenuPageViewModel.cs | 14 +-- .../ViewModels/ItemsRepeaterPageViewModel.cs | 6 +- .../ViewModels/ListBoxPageViewModel.cs | 27 +++-- .../ViewModels/MainWindowViewModel.cs | 28 ++--- .../ViewModels/MenuPageViewModel.cs | 14 +-- .../ViewModels/NotificationViewModel.cs | 10 +- .../ViewModels/SplitViewPageViewModel.cs | 4 +- .../ViewModels/TreeViewPageViewModel.cs | 16 +-- samples/MiniMvvm/MiniCommand.cs | 66 +++++++++++ samples/MiniMvvm/MiniMvvm.csproj | 6 + samples/MiniMvvm/PropertyChangedExtensions.cs | 108 ++++++++++++++++++ samples/MiniMvvm/ViewModelBase.cs | 26 +++++ samples/Previewer/Previewer.csproj | 1 - samples/RenderDemo/App.xaml.cs | 2 - samples/RenderDemo/MainWindow.xaml.cs | 2 +- samples/RenderDemo/RenderDemo.csproj | 3 +- .../ViewModels/AnimationsPageViewModel.cs | 4 +- .../ViewModels/MainWindowViewModel.cs | 17 ++- samples/Sandbox/Program.cs | 2 - samples/Sandbox/Sandbox.csproj | 1 - samples/VirtualizationDemo/Program.cs | 2 - .../ViewModels/ItemViewModel.cs | 4 +- .../ViewModels/MainWindowViewModel.cs | 24 ++-- .../VirtualizationDemo.csproj | 3 +- .../Direct3DInteropSample.csproj | 2 +- .../MainWindowViewModel.cs | 4 +- .../WindowsInteropTest.csproj | 6 +- .../Avalonia.AndroidTestApplication.csproj | 4 - 45 files changed, 349 insertions(+), 145 deletions(-) create mode 100644 samples/MiniMvvm/MiniCommand.cs create mode 100644 samples/MiniMvvm/MiniMvvm.csproj create mode 100644 samples/MiniMvvm/PropertyChangedExtensions.cs create mode 100644 samples/MiniMvvm/ViewModelBase.cs diff --git a/Avalonia.sln b/Avalonia.sln index 74a2dbb94b..75f1dd8407 100644 --- a/Avalonia.sln +++ b/Avalonia.sln @@ -230,6 +230,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MicroComGenerator", "src\to EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Avalonia.MicroCom", "src\Avalonia.MicroCom\Avalonia.MicroCom.csproj", "{FE2F3E5E-1E34-4972-8DC1-5C2C588E5ECE}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MiniMvvm", "samples\MiniMvvm\MiniMvvm.csproj", "{BC594FD5-4AF2-409E-A1E6-04123F54D7C5}" +EndProject Global GlobalSection(SharedMSBuildProjectFiles) = preSolution src\Shared\RenderHelpers\RenderHelpers.projitems*{3c4c0cb4-0c0f-4450-a37b-148c84ff905f}*SharedItemsImports = 13 @@ -2116,6 +2118,30 @@ Global {FE2F3E5E-1E34-4972-8DC1-5C2C588E5ECE}.Release|iPhone.Build.0 = Release|Any CPU {FE2F3E5E-1E34-4972-8DC1-5C2C588E5ECE}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU {FE2F3E5E-1E34-4972-8DC1-5C2C588E5ECE}.Release|iPhoneSimulator.Build.0 = Release|Any CPU + {BC594FD5-4AF2-409E-A1E6-04123F54D7C5}.Ad-Hoc|Any CPU.ActiveCfg = Debug|Any CPU + {BC594FD5-4AF2-409E-A1E6-04123F54D7C5}.Ad-Hoc|Any CPU.Build.0 = Debug|Any CPU + {BC594FD5-4AF2-409E-A1E6-04123F54D7C5}.Ad-Hoc|iPhone.ActiveCfg = Debug|Any CPU + {BC594FD5-4AF2-409E-A1E6-04123F54D7C5}.Ad-Hoc|iPhone.Build.0 = Debug|Any CPU + {BC594FD5-4AF2-409E-A1E6-04123F54D7C5}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Debug|Any CPU + {BC594FD5-4AF2-409E-A1E6-04123F54D7C5}.Ad-Hoc|iPhoneSimulator.Build.0 = Debug|Any CPU + {BC594FD5-4AF2-409E-A1E6-04123F54D7C5}.AppStore|Any CPU.ActiveCfg = Debug|Any CPU + {BC594FD5-4AF2-409E-A1E6-04123F54D7C5}.AppStore|Any CPU.Build.0 = Debug|Any CPU + {BC594FD5-4AF2-409E-A1E6-04123F54D7C5}.AppStore|iPhone.ActiveCfg = Debug|Any CPU + {BC594FD5-4AF2-409E-A1E6-04123F54D7C5}.AppStore|iPhone.Build.0 = Debug|Any CPU + {BC594FD5-4AF2-409E-A1E6-04123F54D7C5}.AppStore|iPhoneSimulator.ActiveCfg = Debug|Any CPU + {BC594FD5-4AF2-409E-A1E6-04123F54D7C5}.AppStore|iPhoneSimulator.Build.0 = Debug|Any CPU + {BC594FD5-4AF2-409E-A1E6-04123F54D7C5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {BC594FD5-4AF2-409E-A1E6-04123F54D7C5}.Debug|Any CPU.Build.0 = Debug|Any CPU + {BC594FD5-4AF2-409E-A1E6-04123F54D7C5}.Debug|iPhone.ActiveCfg = Debug|Any CPU + {BC594FD5-4AF2-409E-A1E6-04123F54D7C5}.Debug|iPhone.Build.0 = Debug|Any CPU + {BC594FD5-4AF2-409E-A1E6-04123F54D7C5}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU + {BC594FD5-4AF2-409E-A1E6-04123F54D7C5}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU + {BC594FD5-4AF2-409E-A1E6-04123F54D7C5}.Release|Any CPU.ActiveCfg = Release|Any CPU + {BC594FD5-4AF2-409E-A1E6-04123F54D7C5}.Release|Any CPU.Build.0 = Release|Any CPU + {BC594FD5-4AF2-409E-A1E6-04123F54D7C5}.Release|iPhone.ActiveCfg = Release|Any CPU + {BC594FD5-4AF2-409E-A1E6-04123F54D7C5}.Release|iPhone.Build.0 = Release|Any CPU + {BC594FD5-4AF2-409E-A1E6-04123F54D7C5}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU + {BC594FD5-4AF2-409E-A1E6-04123F54D7C5}.Release|iPhoneSimulator.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -2176,6 +2202,7 @@ Global {909A8CBD-7D0E-42FD-B841-022AD8925820} = {8B6A8209-894F-4BA1-B880-965FD453982C} {11BE52AF-E2DD-4CF0-B19A-05285ACAF571} = {9B9E3891-2366-4253-A952-D08BCEB71098} {AEC9031E-06EA-4A9E-9E7F-7D7C719404DD} = {4ED8B739-6F4E-4CD4-B993-545E6B5CE637} + {BC594FD5-4AF2-409E-A1E6-04123F54D7C5} = {9B9E3891-2366-4253-A952-D08BCEB71098} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {87366D66-1391-4D90-8999-95A620AD786A} diff --git a/samples/BindingDemo/App.xaml.cs b/samples/BindingDemo/App.xaml.cs index eb2da03a7e..8a5364c70b 100644 --- a/samples/BindingDemo/App.xaml.cs +++ b/samples/BindingDemo/App.xaml.cs @@ -1,7 +1,6 @@ using Avalonia; using Avalonia.Controls.ApplicationLifetimes; using Avalonia.Markup.Xaml; -using Avalonia.ReactiveUI; namespace BindingDemo { @@ -25,7 +24,6 @@ namespace BindingDemo public static AppBuilder BuildAvaloniaApp() => AppBuilder.Configure() .UsePlatformDetect() - .UseReactiveUI() .LogToTrace(); } } diff --git a/samples/BindingDemo/BindingDemo.csproj b/samples/BindingDemo/BindingDemo.csproj index 817023fd71..d898b737a9 100644 --- a/samples/BindingDemo/BindingDemo.csproj +++ b/samples/BindingDemo/BindingDemo.csproj @@ -6,12 +6,11 @@ - + - diff --git a/samples/BindingDemo/ViewModels/ExceptionErrorViewModel.cs b/samples/BindingDemo/ViewModels/ExceptionErrorViewModel.cs index 0fe12a8ef7..7de083351e 100644 --- a/samples/BindingDemo/ViewModels/ExceptionErrorViewModel.cs +++ b/samples/BindingDemo/ViewModels/ExceptionErrorViewModel.cs @@ -1,9 +1,9 @@ -using ReactiveUI; +using MiniMvvm; using System; namespace BindingDemo.ViewModels { - public class ExceptionErrorViewModel : ReactiveObject + public class ExceptionErrorViewModel : ViewModelBase { private int _lessThan10; diff --git a/samples/BindingDemo/ViewModels/IndeiErrorViewModel.cs b/samples/BindingDemo/ViewModels/IndeiErrorViewModel.cs index caf75c846c..9ae8d9558f 100644 --- a/samples/BindingDemo/ViewModels/IndeiErrorViewModel.cs +++ b/samples/BindingDemo/ViewModels/IndeiErrorViewModel.cs @@ -1,11 +1,11 @@ -using ReactiveUI; +using MiniMvvm; using System; using System.ComponentModel; using System.Collections; namespace BindingDemo.ViewModels { - public class IndeiErrorViewModel : ReactiveObject, INotifyDataErrorInfo + public class IndeiErrorViewModel : ViewModelBase, INotifyDataErrorInfo { private int _maximum = 10; private int _value; diff --git a/samples/BindingDemo/ViewModels/MainWindowViewModel.cs b/samples/BindingDemo/ViewModels/MainWindowViewModel.cs index f0241cad48..18a7a01a69 100644 --- a/samples/BindingDemo/ViewModels/MainWindowViewModel.cs +++ b/samples/BindingDemo/ViewModels/MainWindowViewModel.cs @@ -5,14 +5,14 @@ using System.Reactive; using System.Reactive.Linq; using System.Threading.Tasks; using System.Threading; -using ReactiveUI; +using MiniMvvm; using Avalonia.Controls; using Avalonia.Metadata; using Avalonia.Controls.Selection; namespace BindingDemo.ViewModels { - public class MainWindowViewModel : ReactiveObject + public class MainWindowViewModel : ViewModelBase { private string _booleanString = "True"; private double _doubleValue = 5.0; @@ -32,13 +32,13 @@ namespace BindingDemo.ViewModels Selection = new SelectionModel { SingleSelect = false }; - ShuffleItems = ReactiveCommand.Create(() => + ShuffleItems = MiniCommand.Create(() => { var r = new Random(); Items.Move(r.Next(Items.Count), 1); }); - StringValueCommand = ReactiveCommand.Create(param => + StringValueCommand = MiniCommand.Create(param => { BooleanFlag = !BooleanFlag; StringValue = param.ToString(); @@ -60,7 +60,7 @@ namespace BindingDemo.ViewModels public ObservableCollection Items { get; } public SelectionModel Selection { get; } - public ReactiveCommand ShuffleItems { get; } + public MiniCommand ShuffleItems { get; } public string BooleanString { @@ -93,7 +93,7 @@ namespace BindingDemo.ViewModels } public IObservable CurrentTimeObservable { get; } - public ReactiveCommand StringValueCommand { get; } + public MiniCommand StringValueCommand { get; } public DataAnnotationsErrorViewModel DataAnnotationsValidation { get; } = new DataAnnotationsErrorViewModel(); public ExceptionErrorViewModel ExceptionDataValidation { get; } = new ExceptionErrorViewModel(); diff --git a/samples/BindingDemo/ViewModels/NestedCommandViewModel.cs b/samples/BindingDemo/ViewModels/NestedCommandViewModel.cs index 0e9139ab98..1c2222b0b0 100644 --- a/samples/BindingDemo/ViewModels/NestedCommandViewModel.cs +++ b/samples/BindingDemo/ViewModels/NestedCommandViewModel.cs @@ -1,18 +1,18 @@ -using ReactiveUI; -using System; +using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Input; +using MiniMvvm; namespace BindingDemo.ViewModels { - public class NestedCommandViewModel : ReactiveObject + public class NestedCommandViewModel : ViewModelBase { public NestedCommandViewModel() { - Command = ReactiveCommand.Create(() => { }); + Command = MiniCommand.Create(() => { }); } public ICommand Command { get; } diff --git a/samples/BindingDemo/ViewModels/TestItem.cs b/samples/BindingDemo/ViewModels/TestItem.cs index 5a9f192f58..2f49a3c99f 100644 --- a/samples/BindingDemo/ViewModels/TestItem.cs +++ b/samples/BindingDemo/ViewModels/TestItem.cs @@ -1,8 +1,8 @@ -using ReactiveUI; +using MiniMvvm; namespace BindingDemo.ViewModels { - public class TestItem : ReactiveObject + public class TestItem : ViewModelBase { private string _stringValue = "String Value"; private string _detail; diff --git a/samples/ControlCatalog.Desktop/Program.cs b/samples/ControlCatalog.Desktop/Program.cs index 5af646b180..7b8b27fff7 100644 --- a/samples/ControlCatalog.Desktop/Program.cs +++ b/samples/ControlCatalog.Desktop/Program.cs @@ -3,7 +3,6 @@ using System.Linq; using Avalonia; using Avalonia.Controls; using Avalonia.Platform; -using Avalonia.ReactiveUI; namespace ControlCatalog { @@ -19,8 +18,7 @@ namespace ControlCatalog public static AppBuilder BuildAvaloniaApp() => AppBuilder.Configure() .LogToTrace() - .UsePlatformDetect() - .UseReactiveUI(); + .UsePlatformDetect(); private static void ConfigureAssetAssembly(AppBuilder builder) { diff --git a/samples/ControlCatalog.NetCore/Program.cs b/samples/ControlCatalog.NetCore/Program.cs index 675ea2e10f..1dc8c09c0e 100644 --- a/samples/ControlCatalog.NetCore/Program.cs +++ b/samples/ControlCatalog.NetCore/Program.cs @@ -10,7 +10,6 @@ using Avalonia.Controls.ApplicationLifetimes; using Avalonia.Dialogs; using Avalonia.Headless; using Avalonia.LogicalTree; -using Avalonia.ReactiveUI; using Avalonia.Threading; namespace ControlCatalog.NetCore @@ -118,7 +117,6 @@ namespace ControlCatalog.NetCore AllowEglInitialization = true }) .UseSkia() - .UseReactiveUI() .UseManagedSystemDialogs() .LogToTrace(); diff --git a/samples/ControlCatalog/ControlCatalog.csproj b/samples/ControlCatalog/ControlCatalog.csproj index 8a88b89b48..1aa926a2a6 100644 --- a/samples/ControlCatalog/ControlCatalog.csproj +++ b/samples/ControlCatalog/ControlCatalog.csproj @@ -24,8 +24,8 @@ - + diff --git a/samples/ControlCatalog/Pages/LabelsPage.axaml.cs b/samples/ControlCatalog/Pages/LabelsPage.axaml.cs index b8503d6ae6..a14978fd2c 100644 --- a/samples/ControlCatalog/Pages/LabelsPage.axaml.cs +++ b/samples/ControlCatalog/Pages/LabelsPage.axaml.cs @@ -2,7 +2,6 @@ using Avalonia.Controls; using Avalonia.Markup.Xaml; using ControlCatalog.Models; -using ReactiveUI; namespace ControlCatalog.Pages { diff --git a/samples/ControlCatalog/Pages/ListBoxPage.xaml b/samples/ControlCatalog/Pages/ListBoxPage.xaml index 3521ad71a9..f515db84d4 100644 --- a/samples/ControlCatalog/Pages/ListBoxPage.xaml +++ b/samples/ControlCatalog/Pages/ListBoxPage.xaml @@ -20,6 +20,6 @@ + SelectionMode="{Binding SelectionMode^}"/> diff --git a/samples/ControlCatalog/Pages/MenuPage.xaml.cs b/samples/ControlCatalog/Pages/MenuPage.xaml.cs index 46dbe3dcad..5999510b6c 100644 --- a/samples/ControlCatalog/Pages/MenuPage.xaml.cs +++ b/samples/ControlCatalog/Pages/MenuPage.xaml.cs @@ -6,7 +6,6 @@ using System.Windows.Input; using Avalonia.Controls; using Avalonia.Markup.Xaml; using ControlCatalog.ViewModels; -using ReactiveUI; namespace ControlCatalog.Pages { diff --git a/samples/ControlCatalog/Pages/NumericUpDownPage.xaml.cs b/samples/ControlCatalog/Pages/NumericUpDownPage.xaml.cs index 92da64d87e..31749edf08 100644 --- a/samples/ControlCatalog/Pages/NumericUpDownPage.xaml.cs +++ b/samples/ControlCatalog/Pages/NumericUpDownPage.xaml.cs @@ -6,7 +6,7 @@ using Avalonia; using Avalonia.Controls; using Avalonia.Controls.Primitives; using Avalonia.Markup.Xaml; -using ReactiveUI; +using MiniMvvm; namespace ControlCatalog.Pages { @@ -26,7 +26,7 @@ namespace ControlCatalog.Pages } - public class NumbersPageViewModel : ReactiveObject + public class NumbersPageViewModel : ViewModelBase { private IList _formats; private FormatObject _selectedFormat; diff --git a/samples/ControlCatalog/Pages/ScrollViewerPage.xaml.cs b/samples/ControlCatalog/Pages/ScrollViewerPage.xaml.cs index 36d3768b13..dcd7a88a56 100644 --- a/samples/ControlCatalog/Pages/ScrollViewerPage.xaml.cs +++ b/samples/ControlCatalog/Pages/ScrollViewerPage.xaml.cs @@ -2,11 +2,11 @@ using System.Collections.Generic; using Avalonia.Controls; using Avalonia.Controls.Primitives; using Avalonia.Markup.Xaml; -using ReactiveUI; +using MiniMvvm; namespace ControlCatalog.Pages { - public class ScrollViewerPageViewModel : ReactiveObject + public class ScrollViewerPageViewModel : ViewModelBase { private bool _allowAutoHide; private ScrollBarVisibility _horizontalScrollVisibility; diff --git a/samples/ControlCatalog/Pages/TabControlPage.xaml.cs b/samples/ControlCatalog/Pages/TabControlPage.xaml.cs index a38a3ab4cb..f49b13091b 100644 --- a/samples/ControlCatalog/Pages/TabControlPage.xaml.cs +++ b/samples/ControlCatalog/Pages/TabControlPage.xaml.cs @@ -6,7 +6,7 @@ using Avalonia.Markup.Xaml; using Avalonia.Media.Imaging; using Avalonia.Platform; -using ReactiveUI; +using MiniMvvm; namespace ControlCatalog.Pages { @@ -56,7 +56,7 @@ namespace ControlCatalog.Pages return new Bitmap(assets.Open(new Uri(uri))); } - private class PageViewModel : ReactiveObject + private class PageViewModel : ViewModelBase { private Dock _tabPlacement; diff --git a/samples/ControlCatalog/ViewModels/ContextMenuPageViewModel.cs b/samples/ControlCatalog/ViewModels/ContextMenuPageViewModel.cs index 5c2f74d2d5..3f5d0cd93c 100644 --- a/samples/ControlCatalog/ViewModels/ContextMenuPageViewModel.cs +++ b/samples/ControlCatalog/ViewModels/ContextMenuPageViewModel.cs @@ -3,7 +3,7 @@ using System.Reactive; using System.Threading.Tasks; using Avalonia.Controls; using Avalonia.VisualTree; -using ReactiveUI; +using MiniMvvm; namespace ControlCatalog.ViewModels { @@ -12,9 +12,9 @@ namespace ControlCatalog.ViewModels public Control View { get; set; } public ContextMenuPageViewModel() { - OpenCommand = ReactiveCommand.CreateFromTask(Open); - SaveCommand = ReactiveCommand.Create(Save); - OpenRecentCommand = ReactiveCommand.Create(OpenRecent); + OpenCommand = MiniCommand.CreateFromTask(Open); + SaveCommand = MiniCommand.Create(Save); + OpenRecentCommand = MiniCommand.Create(OpenRecent); MenuItems = new[] { @@ -44,9 +44,9 @@ namespace ControlCatalog.ViewModels } public IReadOnlyList MenuItems { get; set; } - public ReactiveCommand OpenCommand { get; } - public ReactiveCommand SaveCommand { get; } - public ReactiveCommand OpenRecentCommand { get; } + public MiniCommand OpenCommand { get; } + public MiniCommand SaveCommand { get; } + public MiniCommand OpenRecentCommand { get; } public async Task Open() { diff --git a/samples/ControlCatalog/ViewModels/ItemsRepeaterPageViewModel.cs b/samples/ControlCatalog/ViewModels/ItemsRepeaterPageViewModel.cs index f893a6e28e..ee1fa6ae77 100644 --- a/samples/ControlCatalog/ViewModels/ItemsRepeaterPageViewModel.cs +++ b/samples/ControlCatalog/ViewModels/ItemsRepeaterPageViewModel.cs @@ -2,11 +2,11 @@ using System.Collections.ObjectModel; using System.Linq; using Avalonia.Media; -using ReactiveUI; +using MiniMvvm; namespace ControlCatalog.ViewModels { - public class ItemsRepeaterPageViewModel : ReactiveObject + public class ItemsRepeaterPageViewModel : ViewModelBase { private int _newItemIndex = 1; private int _newGenerationIndex = 0; @@ -59,7 +59,7 @@ namespace ControlCatalog.ViewModels })); } - public class Item : ReactiveObject + public class Item : ViewModelBase { private double _height = double.NaN; diff --git a/samples/ControlCatalog/ViewModels/ListBoxPageViewModel.cs b/samples/ControlCatalog/ViewModels/ListBoxPageViewModel.cs index f75bc32105..7f2d6e9572 100644 --- a/samples/ControlCatalog/ViewModels/ListBoxPageViewModel.cs +++ b/samples/ControlCatalog/ViewModels/ListBoxPageViewModel.cs @@ -4,18 +4,18 @@ using System.Linq; using System.Reactive; using Avalonia.Controls; using Avalonia.Controls.Selection; -using ReactiveUI; +using MiniMvvm; namespace ControlCatalog.ViewModels { - public class ListBoxPageViewModel : ReactiveObject + public class ListBoxPageViewModel : ViewModelBase { private bool _multiple; private bool _toggle; private bool _alwaysSelected; private bool _autoScrollToSelectedItem = true; private int _counter; - private ObservableAsPropertyHelper _selectionMode; + private IObservable _selectionMode; public ListBoxPageViewModel() { @@ -29,14 +29,13 @@ namespace ControlCatalog.ViewModels x => x.Toggle, x => x.AlwaysSelected, (m, t, a) => - (m ? SelectionMode.Multiple : 0) | - (t ? SelectionMode.Toggle : 0) | - (a ? SelectionMode.AlwaysSelected : 0)) - .ToProperty(this, x => x.SelectionMode); + (m ? Avalonia.Controls.SelectionMode.Multiple : 0) | + (t ? Avalonia.Controls.SelectionMode.Toggle : 0) | + (a ? Avalonia.Controls.SelectionMode.AlwaysSelected : 0)); - AddItemCommand = ReactiveCommand.Create(() => Items.Add(GenerateItem())); + AddItemCommand = MiniCommand.Create(() => Items.Add(GenerateItem())); - RemoveItemCommand = ReactiveCommand.Create(() => + RemoveItemCommand = MiniCommand.Create(() => { var items = Selection.SelectedItems.ToList(); @@ -46,7 +45,7 @@ namespace ControlCatalog.ViewModels } }); - SelectRandomItemCommand = ReactiveCommand.Create(() => + SelectRandomItemCommand = MiniCommand.Create(() => { var random = new Random(); @@ -60,7 +59,7 @@ namespace ControlCatalog.ViewModels public ObservableCollection Items { get; } public SelectionModel Selection { get; } - public SelectionMode SelectionMode => _selectionMode.Value; + public IObservable SelectionMode => _selectionMode; public bool Multiple { @@ -86,9 +85,9 @@ namespace ControlCatalog.ViewModels set => this.RaiseAndSetIfChanged(ref _autoScrollToSelectedItem, value); } - public ReactiveCommand AddItemCommand { get; } - public ReactiveCommand RemoveItemCommand { get; } - public ReactiveCommand SelectRandomItemCommand { get; } + public MiniCommand AddItemCommand { get; } + public MiniCommand RemoveItemCommand { get; } + public MiniCommand SelectRandomItemCommand { get; } private string GenerateItem() => $"Item {_counter++.ToString()}"; } diff --git a/samples/ControlCatalog/ViewModels/MainWindowViewModel.cs b/samples/ControlCatalog/ViewModels/MainWindowViewModel.cs index 4356a032fa..4b3cfa9c9d 100644 --- a/samples/ControlCatalog/ViewModels/MainWindowViewModel.cs +++ b/samples/ControlCatalog/ViewModels/MainWindowViewModel.cs @@ -5,11 +5,11 @@ using Avalonia.Controls.Notifications; using Avalonia.Dialogs; using Avalonia.Platform; using System; -using ReactiveUI; +using MiniMvvm; namespace ControlCatalog.ViewModels { - class MainWindowViewModel : ReactiveObject + class MainWindowViewModel : ViewModelBase { private IManagedNotificationManager _notificationManager; @@ -27,22 +27,22 @@ namespace ControlCatalog.ViewModels { _notificationManager = notificationManager; - ShowCustomManagedNotificationCommand = ReactiveCommand.Create(() => + ShowCustomManagedNotificationCommand = MiniCommand.Create(() => { NotificationManager.Show(new NotificationViewModel(NotificationManager) { Title = "Hey There!", Message = "Did you know that Avalonia now supports Custom In-Window Notifications?" }); }); - ShowManagedNotificationCommand = ReactiveCommand.Create(() => + ShowManagedNotificationCommand = MiniCommand.Create(() => { NotificationManager.Show(new Avalonia.Controls.Notifications.Notification("Welcome", "Avalonia now supports Notifications.", NotificationType.Information)); }); - ShowNativeNotificationCommand = ReactiveCommand.Create(() => + ShowNativeNotificationCommand = MiniCommand.Create(() => { NotificationManager.Show(new Avalonia.Controls.Notifications.Notification("Error", "Native Notifications are not quite ready. Coming soon.", NotificationType.Error)); }); - AboutCommand = ReactiveCommand.CreateFromTask(async () => + AboutCommand = MiniCommand.CreateFromTask(async () => { var dialog = new AboutAvaloniaDialog(); @@ -51,12 +51,12 @@ namespace ControlCatalog.ViewModels await dialog.ShowDialog(mainWindow); }); - ExitCommand = ReactiveCommand.Create(() => + ExitCommand = MiniCommand.Create(() => { (App.Current.ApplicationLifetime as IClassicDesktopStyleApplicationLifetime).Shutdown(); }); - ToggleMenuItemCheckedCommand = ReactiveCommand.Create(() => + ToggleMenuItemCheckedCommand = MiniCommand.Create(() => { IsMenuItemChecked = !IsMenuItemChecked; }); @@ -153,16 +153,16 @@ namespace ControlCatalog.ViewModels set { this.RaiseAndSetIfChanged(ref _isMenuItemChecked, value); } } - public ReactiveCommand ShowCustomManagedNotificationCommand { get; } + public MiniCommand ShowCustomManagedNotificationCommand { get; } - public ReactiveCommand ShowManagedNotificationCommand { get; } + public MiniCommand ShowManagedNotificationCommand { get; } - public ReactiveCommand ShowNativeNotificationCommand { get; } + public MiniCommand ShowNativeNotificationCommand { get; } - public ReactiveCommand AboutCommand { get; } + public MiniCommand AboutCommand { get; } - public ReactiveCommand ExitCommand { get; } + public MiniCommand ExitCommand { get; } - public ReactiveCommand ToggleMenuItemCheckedCommand { get; } + public MiniCommand ToggleMenuItemCheckedCommand { get; } } } diff --git a/samples/ControlCatalog/ViewModels/MenuPageViewModel.cs b/samples/ControlCatalog/ViewModels/MenuPageViewModel.cs index 9e7ae8b716..ecbd59c5d7 100644 --- a/samples/ControlCatalog/ViewModels/MenuPageViewModel.cs +++ b/samples/ControlCatalog/ViewModels/MenuPageViewModel.cs @@ -4,7 +4,7 @@ using System.Reactive.Linq; using System.Threading.Tasks; using Avalonia.Controls; using Avalonia.VisualTree; -using ReactiveUI; +using MiniMvvm; namespace ControlCatalog.ViewModels { @@ -13,9 +13,9 @@ namespace ControlCatalog.ViewModels public Control View { get; set; } public MenuPageViewModel() { - OpenCommand = ReactiveCommand.CreateFromTask(Open); - SaveCommand = ReactiveCommand.Create(Save, Observable.Return(false)); - OpenRecentCommand = ReactiveCommand.Create(OpenRecent); + OpenCommand = MiniCommand.CreateFromTask(Open); + SaveCommand = MiniCommand.Create(Save); + OpenRecentCommand = MiniCommand.Create(OpenRecent); var recentItems = new[] { @@ -65,9 +65,9 @@ namespace ControlCatalog.ViewModels public IReadOnlyList MenuItems { get; set; } public IReadOnlyList RecentItems { get; set; } - public ReactiveCommand OpenCommand { get; } - public ReactiveCommand SaveCommand { get; } - public ReactiveCommand OpenRecentCommand { get; } + public MiniCommand OpenCommand { get; } + public MiniCommand SaveCommand { get; } + public MiniCommand OpenRecentCommand { get; } public async Task Open() { diff --git a/samples/ControlCatalog/ViewModels/NotificationViewModel.cs b/samples/ControlCatalog/ViewModels/NotificationViewModel.cs index 8724ba344b..2052481015 100644 --- a/samples/ControlCatalog/ViewModels/NotificationViewModel.cs +++ b/samples/ControlCatalog/ViewModels/NotificationViewModel.cs @@ -1,6 +1,6 @@ using System.Reactive; using Avalonia.Controls.Notifications; -using ReactiveUI; +using MiniMvvm; namespace ControlCatalog.ViewModels { @@ -8,12 +8,12 @@ namespace ControlCatalog.ViewModels { public NotificationViewModel(INotificationManager manager) { - YesCommand = ReactiveCommand.Create(() => + YesCommand = MiniCommand.Create(() => { manager.Show(new Avalonia.Controls.Notifications.Notification("Avalonia Notifications", "Start adding notifications to your app today.")); }); - NoCommand = ReactiveCommand.Create(() => + NoCommand = MiniCommand.Create(() => { manager.Show(new Avalonia.Controls.Notifications.Notification("Avalonia Notifications", "Start adding notifications to your app today. To find out more visit...")); }); @@ -22,9 +22,9 @@ namespace ControlCatalog.ViewModels public string Title { get; set; } public string Message { get; set; } - public ReactiveCommand YesCommand { get; } + public MiniCommand YesCommand { get; } - public ReactiveCommand NoCommand { get; } + public MiniCommand NoCommand { get; } } } diff --git a/samples/ControlCatalog/ViewModels/SplitViewPageViewModel.cs b/samples/ControlCatalog/ViewModels/SplitViewPageViewModel.cs index f27f605a8b..9e6932bb76 100644 --- a/samples/ControlCatalog/ViewModels/SplitViewPageViewModel.cs +++ b/samples/ControlCatalog/ViewModels/SplitViewPageViewModel.cs @@ -1,10 +1,10 @@ using System; using Avalonia.Controls; -using ReactiveUI; +using MiniMvvm; namespace ControlCatalog.ViewModels { - public class SplitViewPageViewModel : ReactiveObject + public class SplitViewPageViewModel : ViewModelBase { private bool _isLeft = true; private int _displayMode = 3; //CompactOverlay diff --git a/samples/ControlCatalog/ViewModels/TreeViewPageViewModel.cs b/samples/ControlCatalog/ViewModels/TreeViewPageViewModel.cs index 210e281ed6..c03379330f 100644 --- a/samples/ControlCatalog/ViewModels/TreeViewPageViewModel.cs +++ b/samples/ControlCatalog/ViewModels/TreeViewPageViewModel.cs @@ -3,11 +3,11 @@ using System.Collections.ObjectModel; using System.Linq; using System.Reactive; using Avalonia.Controls; -using ReactiveUI; +using MiniMvvm; namespace ControlCatalog.ViewModels { - public class TreeViewPageViewModel : ReactiveObject + public class TreeViewPageViewModel : ViewModelBase { private readonly Node _root; private SelectionMode _selectionMode; @@ -19,16 +19,16 @@ namespace ControlCatalog.ViewModels Items = _root.Children; SelectedItems = new ObservableCollection(); - AddItemCommand = ReactiveCommand.Create(AddItem); - RemoveItemCommand = ReactiveCommand.Create(RemoveItem); - SelectRandomItemCommand = ReactiveCommand.Create(SelectRandomItem); + AddItemCommand = MiniCommand.Create(AddItem); + RemoveItemCommand = MiniCommand.Create(RemoveItem); + SelectRandomItemCommand = MiniCommand.Create(SelectRandomItem); } public ObservableCollection Items { get; } public ObservableCollection SelectedItems { get; } - public ReactiveCommand AddItemCommand { get; } - public ReactiveCommand RemoveItemCommand { get; } - public ReactiveCommand SelectRandomItemCommand { get; } + public MiniCommand AddItemCommand { get; } + public MiniCommand RemoveItemCommand { get; } + public MiniCommand SelectRandomItemCommand { get; } public SelectionMode SelectionMode { diff --git a/samples/MiniMvvm/MiniCommand.cs b/samples/MiniMvvm/MiniCommand.cs new file mode 100644 index 0000000000..c6a9273c20 --- /dev/null +++ b/samples/MiniMvvm/MiniCommand.cs @@ -0,0 +1,66 @@ +using System; +using System.Threading.Tasks; +using System.Windows.Input; + +namespace MiniMvvm +{ + public sealed class MiniCommand : MiniCommand, ICommand + { + private readonly Action _cb; + private bool _busy; + private Func _acb; + + public MiniCommand(Action cb) + { + _cb = cb; + } + + public MiniCommand(Func cb) + { + _acb = cb; + } + + private bool Busy + { + get => _busy; + set + { + _busy = value; + CanExecuteChanged?.Invoke(this, EventArgs.Empty); + } + } + + + public override event EventHandler CanExecuteChanged; + public override bool CanExecute(object parameter) => !_busy; + + public override async void Execute(object parameter) + { + if(Busy) + return; + try + { + Busy = true; + if (_cb != null) + _cb((T)parameter); + else + await _acb((T)parameter); + } + finally + { + Busy = false; + } + } + } + + public abstract class MiniCommand : ICommand + { + public static MiniCommand Create(Action cb) => new MiniCommand(_ => cb()); + public static MiniCommand Create(Action cb) => new MiniCommand(cb); + public static MiniCommand CreateFromTask(Func cb) => new MiniCommand(_ => cb()); + + public abstract bool CanExecute(object parameter); + public abstract void Execute(object parameter); + public abstract event EventHandler CanExecuteChanged; + } +} diff --git a/samples/MiniMvvm/MiniMvvm.csproj b/samples/MiniMvvm/MiniMvvm.csproj new file mode 100644 index 0000000000..6535b2bdbd --- /dev/null +++ b/samples/MiniMvvm/MiniMvvm.csproj @@ -0,0 +1,6 @@ + + + netstandard2.0 + + + diff --git a/samples/MiniMvvm/PropertyChangedExtensions.cs b/samples/MiniMvvm/PropertyChangedExtensions.cs new file mode 100644 index 0000000000..f1065c7530 --- /dev/null +++ b/samples/MiniMvvm/PropertyChangedExtensions.cs @@ -0,0 +1,108 @@ +using System; +using System.ComponentModel; +using System.Linq.Expressions; +using System.Reactive.Linq; +using System.Reflection; + +namespace MiniMvvm +{ + public static class PropertyChangedExtensions + { + class PropertyObservable : IObservable + { + private readonly INotifyPropertyChanged _target; + private readonly PropertyInfo _info; + + public PropertyObservable(INotifyPropertyChanged target, PropertyInfo info) + { + _target = target; + _info = info; + } + + class Subscription : IDisposable + { + private readonly INotifyPropertyChanged _target; + private readonly PropertyInfo _info; + private readonly IObserver _observer; + + public Subscription(INotifyPropertyChanged target, PropertyInfo info, IObserver observer) + { + _target = target; + _info = info; + _observer = observer; + _target.PropertyChanged += OnPropertyChanged; + _observer.OnNext((T)_info.GetValue(_target)); + } + + private void OnPropertyChanged(object sender, PropertyChangedEventArgs e) + { + if (e.PropertyName == _info.Name) + _observer.OnNext((T)_info.GetValue(_target)); + } + + public void Dispose() + { + _target.PropertyChanged -= OnPropertyChanged; + _observer.OnCompleted(); + } + } + + public IDisposable Subscribe(IObserver observer) + { + return new Subscription(_target, _info, observer); + } + } + + public static IObservable WhenAnyValue(this TModel model, + Expression> expr) where TModel : INotifyPropertyChanged + { + var l = (LambdaExpression)expr; + var ma = (MemberExpression)l.Body; + var prop = (PropertyInfo)ma.Member; + return new PropertyObservable(model, prop); + } + + public static IObservable WhenAnyValue(this TModel model, + Expression> v1, + Func cb + ) where TModel : INotifyPropertyChanged + { + return model.WhenAnyValue(v1).Select(cb); + } + + public static IObservable WhenAnyValue(this TModel model, + Expression> v1, + Expression> v2, + Func cb + ) where TModel : INotifyPropertyChanged => + Observable.CombineLatest( + model.WhenAnyValue(v1), + model.WhenAnyValue(v2), + cb); + + public static IObservable> WhenAnyValue(this TModel model, + Expression> v1, + Expression> v2 + ) where TModel : INotifyPropertyChanged => + model.WhenAnyValue(v1, v2, (a1, a2) => (a1, a2)); + + public static IObservable WhenAnyValue(this TModel model, + Expression> v1, + Expression> v2, + Expression> v3, + Func cb + ) where TModel : INotifyPropertyChanged => + Observable.CombineLatest( + model.WhenAnyValue(v1), + model.WhenAnyValue(v2), + model.WhenAnyValue(v3), + cb); + + public static IObservable> WhenAnyValue(this TModel model, + Expression> v1, + Expression> v2, + Expression> v3 + ) where TModel : INotifyPropertyChanged => + model.WhenAnyValue(v1, v2, v3, (a1, a2, a3) => (a1, a2, a3)); + } +} diff --git a/samples/MiniMvvm/ViewModelBase.cs b/samples/MiniMvvm/ViewModelBase.cs new file mode 100644 index 0000000000..7256b05cef --- /dev/null +++ b/samples/MiniMvvm/ViewModelBase.cs @@ -0,0 +1,26 @@ +using System.Collections.Generic; +using System.ComponentModel; +using System.Reactive.Joins; +using System.Runtime.CompilerServices; + +namespace MiniMvvm +{ + public class ViewModelBase : INotifyPropertyChanged + { + public event PropertyChangedEventHandler PropertyChanged; + protected bool RaiseAndSetIfChanged(ref T field, T value, [CallerMemberName] string propertyName = null) + { + if (!EqualityComparer.Default.Equals(field, value)) + { + field = value; + RaisePropertyChanged(propertyName); + return true; + } + return false; + } + + + protected void RaisePropertyChanged([CallerMemberName] string propertyName = null) + => PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); + } +} diff --git a/samples/Previewer/Previewer.csproj b/samples/Previewer/Previewer.csproj index cd3daf61e1..cfedb7ad9e 100644 --- a/samples/Previewer/Previewer.csproj +++ b/samples/Previewer/Previewer.csproj @@ -8,7 +8,6 @@ %(Filename) - diff --git a/samples/RenderDemo/App.xaml.cs b/samples/RenderDemo/App.xaml.cs index e6ec963d75..8054b06964 100644 --- a/samples/RenderDemo/App.xaml.cs +++ b/samples/RenderDemo/App.xaml.cs @@ -1,7 +1,6 @@ using Avalonia; using Avalonia.Controls.ApplicationLifetimes; using Avalonia.Markup.Xaml; -using Avalonia.ReactiveUI; namespace RenderDemo { @@ -32,7 +31,6 @@ namespace RenderDemo OverlayPopups = true, }) .UsePlatformDetect() - .UseReactiveUI() .LogToTrace(); } } diff --git a/samples/RenderDemo/MainWindow.xaml.cs b/samples/RenderDemo/MainWindow.xaml.cs index b45a605e04..877eb8016a 100644 --- a/samples/RenderDemo/MainWindow.xaml.cs +++ b/samples/RenderDemo/MainWindow.xaml.cs @@ -3,7 +3,7 @@ using Avalonia; using Avalonia.Controls; using Avalonia.Markup.Xaml; using RenderDemo.ViewModels; -using ReactiveUI; +using MiniMvvm; namespace RenderDemo { diff --git a/samples/RenderDemo/RenderDemo.csproj b/samples/RenderDemo/RenderDemo.csproj index d1654f4b54..0d33b4c111 100644 --- a/samples/RenderDemo/RenderDemo.csproj +++ b/samples/RenderDemo/RenderDemo.csproj @@ -9,12 +9,11 @@ - + - diff --git a/samples/RenderDemo/ViewModels/AnimationsPageViewModel.cs b/samples/RenderDemo/ViewModels/AnimationsPageViewModel.cs index 7b89b7944c..f8ba01f3d1 100644 --- a/samples/RenderDemo/ViewModels/AnimationsPageViewModel.cs +++ b/samples/RenderDemo/ViewModels/AnimationsPageViewModel.cs @@ -1,10 +1,10 @@ using System; -using ReactiveUI; +using MiniMvvm; using Avalonia.Animation; namespace RenderDemo.ViewModels { - public class AnimationsPageViewModel : ReactiveObject + public class AnimationsPageViewModel : ViewModelBase { private bool _isPlaying = true; diff --git a/samples/RenderDemo/ViewModels/MainWindowViewModel.cs b/samples/RenderDemo/ViewModels/MainWindowViewModel.cs index eda5e80530..19917c20df 100644 --- a/samples/RenderDemo/ViewModels/MainWindowViewModel.cs +++ b/samples/RenderDemo/ViewModels/MainWindowViewModel.cs @@ -1,11 +1,10 @@ using System.Reactive; using System.Threading.Tasks; - -using ReactiveUI; +using MiniMvvm; namespace RenderDemo.ViewModels { - public class MainWindowViewModel : ReactiveObject + public class MainWindowViewModel : ViewModelBase { private bool drawDirtyRects = false; private bool drawFps = true; @@ -14,9 +13,9 @@ namespace RenderDemo.ViewModels public MainWindowViewModel() { - ToggleDrawDirtyRects = ReactiveCommand.Create(() => DrawDirtyRects = !DrawDirtyRects); - ToggleDrawFps = ReactiveCommand.Create(() => DrawFps = !DrawFps); - ResizeWindow = ReactiveCommand.CreateFromTask(ResizeWindowAsync); + ToggleDrawDirtyRects = MiniCommand.Create(() => DrawDirtyRects = !DrawDirtyRects); + ToggleDrawFps = MiniCommand.Create(() => DrawFps = !DrawFps); + ResizeWindow = MiniCommand.CreateFromTask(ResizeWindowAsync); } public bool DrawDirtyRects @@ -43,9 +42,9 @@ namespace RenderDemo.ViewModels set => this.RaiseAndSetIfChanged(ref height, value); } - public ReactiveCommand ToggleDrawDirtyRects { get; } - public ReactiveCommand ToggleDrawFps { get; } - public ReactiveCommand ResizeWindow { get; } + public MiniCommand ToggleDrawDirtyRects { get; } + public MiniCommand ToggleDrawFps { get; } + public MiniCommand ResizeWindow { get; } private async Task ResizeWindowAsync() { diff --git a/samples/Sandbox/Program.cs b/samples/Sandbox/Program.cs index 7d41a8b8c0..1e74105196 100644 --- a/samples/Sandbox/Program.cs +++ b/samples/Sandbox/Program.cs @@ -1,5 +1,4 @@ using Avalonia; -using Avalonia.ReactiveUI; namespace Sandbox { @@ -9,7 +8,6 @@ namespace Sandbox { AppBuilder.Configure() .UsePlatformDetect() - .UseReactiveUI() .LogToTrace() .StartWithClassicDesktopLifetime(args); } diff --git a/samples/Sandbox/Sandbox.csproj b/samples/Sandbox/Sandbox.csproj index 1a0a8a7ce5..0c19440a1e 100644 --- a/samples/Sandbox/Sandbox.csproj +++ b/samples/Sandbox/Sandbox.csproj @@ -8,7 +8,6 @@ - diff --git a/samples/VirtualizationDemo/Program.cs b/samples/VirtualizationDemo/Program.cs index 46c05f74b2..febda46450 100644 --- a/samples/VirtualizationDemo/Program.cs +++ b/samples/VirtualizationDemo/Program.cs @@ -1,5 +1,4 @@ using Avalonia; -using Avalonia.ReactiveUI; namespace VirtualizationDemo { @@ -8,7 +7,6 @@ namespace VirtualizationDemo public static AppBuilder BuildAvaloniaApp() => AppBuilder.Configure() .UsePlatformDetect() - .UseReactiveUI() .LogToTrace(); public static int Main(string[] args) diff --git a/samples/VirtualizationDemo/ViewModels/ItemViewModel.cs b/samples/VirtualizationDemo/ViewModels/ItemViewModel.cs index cf34980b40..9ba505ffe5 100644 --- a/samples/VirtualizationDemo/ViewModels/ItemViewModel.cs +++ b/samples/VirtualizationDemo/ViewModels/ItemViewModel.cs @@ -1,9 +1,9 @@ using System; -using ReactiveUI; +using MiniMvvm; namespace VirtualizationDemo.ViewModels { - internal class ItemViewModel : ReactiveObject + internal class ItemViewModel : ViewModelBase { private string _prefix; private int _index; diff --git a/samples/VirtualizationDemo/ViewModels/MainWindowViewModel.cs b/samples/VirtualizationDemo/ViewModels/MainWindowViewModel.cs index 852c01399f..514df691ae 100644 --- a/samples/VirtualizationDemo/ViewModels/MainWindowViewModel.cs +++ b/samples/VirtualizationDemo/ViewModels/MainWindowViewModel.cs @@ -5,13 +5,13 @@ using System.Reactive; using Avalonia.Collections; using Avalonia.Controls; using Avalonia.Controls.Primitives; -using ReactiveUI; using Avalonia.Layout; using Avalonia.Controls.Selection; +using MiniMvvm; namespace VirtualizationDemo.ViewModels { - internal class MainWindowViewModel : ReactiveObject + internal class MainWindowViewModel : ViewModelBase { private int _itemCount = 200; private string _newItemString = "New Item"; @@ -26,15 +26,15 @@ namespace VirtualizationDemo.ViewModels public MainWindowViewModel() { this.WhenAnyValue(x => x.ItemCount).Subscribe(ResizeItems); - RecreateCommand = ReactiveCommand.Create(() => Recreate()); + RecreateCommand = MiniCommand.Create(() => Recreate()); - AddItemCommand = ReactiveCommand.Create(() => AddItem()); + AddItemCommand = MiniCommand.Create(() => AddItem()); - RemoveItemCommand = ReactiveCommand.Create(() => Remove()); + RemoveItemCommand = MiniCommand.Create(() => Remove()); - SelectFirstCommand = ReactiveCommand.Create(() => SelectItem(0)); + SelectFirstCommand = MiniCommand.Create(() => SelectItem(0)); - SelectLastCommand = ReactiveCommand.Create(() => SelectItem(Items.Count - 1)); + SelectLastCommand = MiniCommand.Create(() => SelectItem(Items.Count - 1)); } public string NewItemString @@ -90,11 +90,11 @@ namespace VirtualizationDemo.ViewModels public IEnumerable VirtualizationModes => Enum.GetValues(typeof(ItemVirtualizationMode)).Cast(); - public ReactiveCommand AddItemCommand { get; private set; } - public ReactiveCommand RecreateCommand { get; private set; } - public ReactiveCommand RemoveItemCommand { get; private set; } - public ReactiveCommand SelectFirstCommand { get; private set; } - public ReactiveCommand SelectLastCommand { get; private set; } + public MiniCommand AddItemCommand { get; private set; } + public MiniCommand RecreateCommand { get; private set; } + public MiniCommand RemoveItemCommand { get; private set; } + public MiniCommand SelectFirstCommand { get; private set; } + public MiniCommand SelectLastCommand { get; private set; } public void RandomizeSize() { diff --git a/samples/VirtualizationDemo/VirtualizationDemo.csproj b/samples/VirtualizationDemo/VirtualizationDemo.csproj index 817023fd71..d898b737a9 100644 --- a/samples/VirtualizationDemo/VirtualizationDemo.csproj +++ b/samples/VirtualizationDemo/VirtualizationDemo.csproj @@ -6,12 +6,11 @@ - + - diff --git a/samples/interop/Direct3DInteropSample/Direct3DInteropSample.csproj b/samples/interop/Direct3DInteropSample/Direct3DInteropSample.csproj index bd6b6f170f..cd9963a2e5 100644 --- a/samples/interop/Direct3DInteropSample/Direct3DInteropSample.csproj +++ b/samples/interop/Direct3DInteropSample/Direct3DInteropSample.csproj @@ -22,9 +22,9 @@ - + diff --git a/samples/interop/Direct3DInteropSample/MainWindowViewModel.cs b/samples/interop/Direct3DInteropSample/MainWindowViewModel.cs index d39a21cd07..21679a99c5 100644 --- a/samples/interop/Direct3DInteropSample/MainWindowViewModel.cs +++ b/samples/interop/Direct3DInteropSample/MainWindowViewModel.cs @@ -3,11 +3,11 @@ using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; -using ReactiveUI; +using MiniMvvm; namespace Direct3DInteropSample { - public class MainWindowViewModel : ReactiveObject + public class MainWindowViewModel : ViewModelBase { private double _rotationX; diff --git a/samples/interop/WindowsInteropTest/WindowsInteropTest.csproj b/samples/interop/WindowsInteropTest/WindowsInteropTest.csproj index c067d38595..8394d7cb13 100644 --- a/samples/interop/WindowsInteropTest/WindowsInteropTest.csproj +++ b/samples/interop/WindowsInteropTest/WindowsInteropTest.csproj @@ -136,10 +136,6 @@ {42472427-4774-4c81-8aff-9f27b8e31721} Avalonia.Layout - - {6417b24e-49c2-4985-8db2-3ab9d898ec91} - Avalonia.ReactiveUI - {eb582467-6abb-43a1-b052-e981ba910e3a} Avalonia.Visuals @@ -190,4 +186,4 @@ - \ No newline at end of file + diff --git a/src/Android/Avalonia.AndroidTestApplication/Avalonia.AndroidTestApplication.csproj b/src/Android/Avalonia.AndroidTestApplication/Avalonia.AndroidTestApplication.csproj index b8697e0ca2..f880e48282 100644 --- a/src/Android/Avalonia.AndroidTestApplication/Avalonia.AndroidTestApplication.csproj +++ b/src/Android/Avalonia.AndroidTestApplication/Avalonia.AndroidTestApplication.csproj @@ -127,10 +127,6 @@ {42472427-4774-4c81-8aff-9f27b8e31721} Avalonia.Layout - - {6417b24e-49c2-4985-8db2-3ab9d898ec91} - Avalonia.ReactiveUI - {eb582467-6abb-43a1-b052-e981ba910e3a} Avalonia.Visuals From be8a3e83fa9fd50c29e12c33af4951c05105f231 Mon Sep 17 00:00:00 2001 From: Dan Walmsley Date: Mon, 16 Nov 2020 21:12:46 +0000 Subject: [PATCH 067/689] fix OSX NRE. --- src/Avalonia.Native/WindowImplBase.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Avalonia.Native/WindowImplBase.cs b/src/Avalonia.Native/WindowImplBase.cs index 20b6b8ecc5..150ab2703e 100644 --- a/src/Avalonia.Native/WindowImplBase.cs +++ b/src/Avalonia.Native/WindowImplBase.cs @@ -174,7 +174,7 @@ namespace Avalonia.Native void IAvnWindowBaseEvents.Resized(AvnSize* size) { - if (_parent._native != null) + if (_parent?._native != null) { var s = new Size(size->Width, size->Height); _parent._savedLogicalSize = s; From c24f65a5f78cbe0dd11d926d28ea8d8a198d90a0 Mon Sep 17 00:00:00 2001 From: Dariusz Komosinski Date: Mon, 16 Nov 2020 22:51:18 +0100 Subject: [PATCH 068/689] Fix even more broken cases for closing child/dialog windows on win32. --- .../ControlCatalog/Pages/DialogsPage.xaml.cs | 29 +++++++++++++--- .../Avalonia.Win32/WindowImpl.AppWndProc.cs | 19 ++--------- src/Windows/Avalonia.Win32/WindowImpl.cs | 34 +++++++++++++++++++ 3 files changed, 61 insertions(+), 21 deletions(-) diff --git a/samples/ControlCatalog/Pages/DialogsPage.xaml.cs b/samples/ControlCatalog/Pages/DialogsPage.xaml.cs index cf6c771e34..49921fb7f6 100644 --- a/samples/ControlCatalog/Pages/DialogsPage.xaml.cs +++ b/samples/ControlCatalog/Pages/DialogsPage.xaml.cs @@ -4,6 +4,7 @@ using System.Linq; using System.Reflection; using Avalonia.Controls; using Avalonia.Dialogs; +using Avalonia.Layout; using Avalonia.Markup.Xaml; #pragma warning disable 4014 @@ -112,11 +113,29 @@ namespace ControlCatalog.Pages private Window CreateSampleWindow() { - var window = new Window(); - window.Height = 200; - window.Width = 200; - window.Content = new TextBlock { Text = "Hello world!" }; - window.WindowStartupLocation = WindowStartupLocation.CenterOwner; + Button button; + + var window = new Window + { + Height = 200, + Width = 200, + Content = new StackPanel + { + Spacing = 4, + Children = + { + new TextBlock { Text = "Hello world!" }, + (button = new Button + { + HorizontalAlignment = HorizontalAlignment.Center, + Content = "Click to close" + }) + } + }, + WindowStartupLocation = WindowStartupLocation.CenterOwner + }; + + button.Click += (_, __) => window.Close(); return window; } diff --git a/src/Windows/Avalonia.Win32/WindowImpl.AppWndProc.cs b/src/Windows/Avalonia.Win32/WindowImpl.AppWndProc.cs index d770f4b211..78de681403 100644 --- a/src/Windows/Avalonia.Win32/WindowImpl.AppWndProc.cs +++ b/src/Windows/Avalonia.Win32/WindowImpl.AppWndProc.cs @@ -65,23 +65,10 @@ namespace Avalonia.Win32 return IntPtr.Zero; } - // Based on https://github.com/dotnet/wpf/blob/master/src/Microsoft.DotNet.Wpf/src/PresentationFramework/System/Windows/Window.cs#L4270-L4337 - // We need to enable parent window before destroying child window to prevent OS from activating a random window behind us. - // This is described here: https://docs.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-enablewindow#remarks - // Our window closed callback will set enabled state to a correct value after child window gets destroyed. - // We need to verify if parent is still alive (perhaps it got destroyed somehow). - if (_parent != null && IsWindow(_parent._hwnd)) - { - var wasActive = GetActiveWindow() == _hwnd; - - _parent.SetEnabled(true); + BeforeCloseCleanup(false); - // We also need to activate our parent window since again OS might try to activate a window behind if it is not set. - if (wasActive) - { - SetActiveWindow(_parent._hwnd); - } - } + // Used to distinguish between programmatic and regular close requests. + _isCloseRequested = true; break; } diff --git a/src/Windows/Avalonia.Win32/WindowImpl.cs b/src/Windows/Avalonia.Win32/WindowImpl.cs index c603128a18..2483356e9a 100644 --- a/src/Windows/Avalonia.Win32/WindowImpl.cs +++ b/src/Windows/Avalonia.Win32/WindowImpl.cs @@ -83,6 +83,7 @@ namespace Avalonia.Win32 private POINT _maxTrackSize; private WindowImpl _parent; private ExtendClientAreaChromeHints _extendChromeHints = ExtendClientAreaChromeHints.Default; + private bool _isCloseRequested; public WindowImpl() { @@ -506,6 +507,13 @@ namespace Avalonia.Win32 if (_hwnd != IntPtr.Zero) { + // Detect if we are being closed programmatically - this would mean that WM_CLOSE was not called + // and we didn't prepare this window for destruction. + if (!_isCloseRequested) + { + BeforeCloseCleanup(true); + } + DestroyWindow(_hwnd); _hwnd = IntPtr.Zero; } @@ -948,6 +956,32 @@ namespace Avalonia.Win32 SetFocus(_hwnd); } } + + private void BeforeCloseCleanup(bool isDisposing) + { + // Based on https://github.com/dotnet/wpf/blob/master/src/Microsoft.DotNet.Wpf/src/PresentationFramework/System/Windows/Window.cs#L4270-L4337 + // We need to enable parent window before destroying child window to prevent OS from activating a random window behind us (or last active window). + // This is described here: https://docs.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-enablewindow#remarks + // We need to verify if parent is still alive (perhaps it got destroyed somehow). + if (_parent != null && IsWindow(_parent._hwnd)) + { + var wasActive = GetActiveWindow() == _hwnd; + + // We can only set enabled state if we are not disposing - generally Dispose happens after enabled state has been set. + // Ignoring this would cause us to enable a window that might be disabled. + if (!isDisposing) + { + // Our window closed callback will set enabled state to a correct value after child window gets destroyed. + _parent.SetEnabled(true); + } + + // We also need to activate our parent window since again OS might try to activate a window behind if it is not set. + if (wasActive) + { + SetActiveWindow(_parent._hwnd); + } + } + } private void MaximizeWithoutCoveringTaskbar() { From 1428badc6b17c1922151d31af42d34d9d875ae97 Mon Sep 17 00:00:00 2001 From: Nikita Tsukanov Date: Tue, 17 Nov 2020 01:46:22 +0300 Subject: [PATCH 069/689] Fixed CPP header codegen --- src/tools/MicroComGenerator/CppGen.cs | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/tools/MicroComGenerator/CppGen.cs b/src/tools/MicroComGenerator/CppGen.cs index 68192ebffe..b053088ca9 100644 --- a/src/tools/MicroComGenerator/CppGen.cs +++ b/src/tools/MicroComGenerator/CppGen.cs @@ -14,7 +14,10 @@ namespace MicroComGenerator name = "unsigned char"; else if(name == "uint") name = "unsigned int"; - return name + new string('*', type.PointerLevel); + + type = type.Clone(); + type.Name = name; + return type.Format(); } public static string GenerateCpp(AstIdlNode idl) From 91791c7d15db039be527936375cef79278d59732 Mon Sep 17 00:00:00 2001 From: Jumar Macato Date: Tue, 17 Nov 2020 07:54:16 +0800 Subject: [PATCH 070/689] Implement RadiusX/Y and center, just like in WPF. --- src/Avalonia.Visuals/Media/EllipseGeometry.cs | 56 ++++++++++++++++++- 1 file changed, 54 insertions(+), 2 deletions(-) diff --git a/src/Avalonia.Visuals/Media/EllipseGeometry.cs b/src/Avalonia.Visuals/Media/EllipseGeometry.cs index fd73eee69a..bae6dc3d8c 100644 --- a/src/Avalonia.Visuals/Media/EllipseGeometry.cs +++ b/src/Avalonia.Visuals/Media/EllipseGeometry.cs @@ -12,10 +12,28 @@ namespace Avalonia.Media /// public static readonly StyledProperty RectProperty = AvaloniaProperty.Register(nameof(Rect)); + + /// + /// Defines the property. + /// + public static readonly StyledProperty RadiusXProperty = + AvaloniaProperty.Register(nameof(RadiusX)); + + /// + /// Defines the property. + /// + public static readonly StyledProperty RadiusYProperty = + AvaloniaProperty.Register(nameof(RadiusY)); + + /// + /// Defines the property. + /// + public static readonly StyledProperty CenterProperty = + AvaloniaProperty.Register(nameof(Center)); static EllipseGeometry() { - AffectsGeometry(RectProperty); + AffectsGeometry(RectProperty, RadiusXProperty, RadiusYProperty, CenterProperty); } /// @@ -43,6 +61,33 @@ namespace Avalonia.Media set => SetValue(RectProperty, value); } + /// + /// Gets or sets a double that defines the radius in the X-axis of the ellipse. + /// + public double RadiusX + { + get => GetValue(RadiusXProperty); + set => SetValue(RadiusXProperty, value); + } + + /// + /// Gets or sets a double that defines the radius in the Y-axis of the ellipse. + /// + public double RadiusY + { + get => GetValue(RadiusYProperty); + set => SetValue(RadiusYProperty, value); + } + + /// + /// Gets or sets a point that defines the center of the ellipse. + /// + public Point Center + { + get => GetValue(CenterProperty); + set => SetValue(CenterProperty, value); + } + /// public override Geometry Clone() { @@ -54,7 +99,14 @@ namespace Avalonia.Media { var factory = AvaloniaLocator.Current.GetService(); - return factory.CreateEllipseGeometry(Rect); + if (Rect != default) return factory.CreateEllipseGeometry(Rect); + + var originX = Center.X - RadiusX; + var originY = Center.Y - RadiusY; + var width = RadiusX * 2; + var height = RadiusY * 2; + + return factory.CreateEllipseGeometry(new Rect(originX, originY, width, height)); } } } From e90a5d285c7bebf478a97b4c357681a049702250 Mon Sep 17 00:00:00 2001 From: Jumar Macato Date: Tue, 17 Nov 2020 16:54:08 +0800 Subject: [PATCH 071/689] add change listener on static ctor --- src/Avalonia.Visuals/Media/PathFigure.cs | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/Avalonia.Visuals/Media/PathFigure.cs b/src/Avalonia.Visuals/Media/PathFigure.cs index ff63a6286c..a9e3c6d628 100644 --- a/src/Avalonia.Visuals/Media/PathFigure.cs +++ b/src/Avalonia.Visuals/Media/PathFigure.cs @@ -38,11 +38,14 @@ namespace Avalonia.Media /// Initializes a new instance of the class. /// public PathFigure() + { + Segments = new PathSegments(); + } + + static PathFigure() { SegmentsProperty.Changed.AddClassHandler((s, e) => s.OnSegmentsChanged(e.NewValue as PathSegments)); - - Segments = new PathSegments(); } private void OnSegmentsChanged(PathSegments? arg2NewValue) From 7df1d2ad4d07f30fe41aaf8e477c1be8832f7de4 Mon Sep 17 00:00:00 2001 From: Jumar Macato Date: Tue, 17 Nov 2020 16:58:53 +0800 Subject: [PATCH 072/689] add test, thanks @donandren ! :D --- .../Media/PathSegmentTests.cs | 34 +++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 tests/Avalonia.Visuals.UnitTests/Media/PathSegmentTests.cs diff --git a/tests/Avalonia.Visuals.UnitTests/Media/PathSegmentTests.cs b/tests/Avalonia.Visuals.UnitTests/Media/PathSegmentTests.cs new file mode 100644 index 0000000000..0737b4dc88 --- /dev/null +++ b/tests/Avalonia.Visuals.UnitTests/Media/PathSegmentTests.cs @@ -0,0 +1,34 @@ +using Avalonia.Media; +using Xunit; + +namespace Avalonia.Visuals.UnitTests.Media +{ + public class PathSegmentTests + { + [Fact] + public void PathSegment_Triggers_Invalidation_On_Property_Change() + { + var targetSegment = new ArcSegment() + { + Size = new Size(10, 10), + Point = new Point(5, 5) + }; + + var target = new PathGeometry + { + Figures = new PathFigures + { + new PathFigure { IsClosed = false, Segments = new PathSegments { targetSegment } } + } + }; + + var changed = false; + + target.Changed += (s, e) => changed = true; + + targetSegment.Size = new Size(20, 20); + + Assert.True(changed); + } + } +} From 4e180c88cdb5f4e22e177f41a83010165e7836fb Mon Sep 17 00:00:00 2001 From: Jumar Macato Date: Tue, 17 Nov 2020 16:59:43 +0800 Subject: [PATCH 073/689] remove old test --- .../Avalonia.RenderTests/Shapes/PathTests.cs | 40 ------------------- 1 file changed, 40 deletions(-) diff --git a/tests/Avalonia.RenderTests/Shapes/PathTests.cs b/tests/Avalonia.RenderTests/Shapes/PathTests.cs index 24e420d972..bac16cca88 100644 --- a/tests/Avalonia.RenderTests/Shapes/PathTests.cs +++ b/tests/Avalonia.RenderTests/Shapes/PathTests.cs @@ -353,47 +353,7 @@ namespace Avalonia.Direct2D1.RenderTests.Shapes await RenderToFile(target); CompareImages(); } - - [Fact] - public async Task PathSegment_Triggers_Invalidation_On_Property_Change() - { - var targetSegment = new ArcSegment() - { - Size = new Size(10,10), - Point = new Point(5,5) - }; - - var targetPath = new Path - { - VerticalAlignment = VerticalAlignment.Center, - HorizontalAlignment = HorizontalAlignment.Center, - Fill = Brushes.Red, - Data = new PathGeometry - { - Figures = new PathFigures - { - new PathFigure { IsClosed = false, Segments = new PathSegments { targetSegment } } - } - } - }; - - var root = new Border - { - Width = 100, - Height = 100, - Background = Brushes.White, - Child =targetPath - }; - - Assert.Equal(10, targetPath.Bounds.Height); - Assert.Equal(10, targetPath.Bounds.Width); - - targetSegment.Size = new Size(20, 20); - Assert.Equal(20, targetPath.Bounds.Height); - Assert.Equal(20, targetPath.Bounds.Width); - } - [Fact] public async Task Path_With_Rotated_Geometry() { From ea90f05f83bea42dd47892f76d5de5012ff6afba Mon Sep 17 00:00:00 2001 From: Steven Kirk Date: Tue, 17 Nov 2020 14:34:44 +0100 Subject: [PATCH 074/689] Added Window.ShowActive for win32. --- .../Platform/IWindowBaseImpl.cs | 4 ++-- src/Avalonia.Controls/Window.cs | 20 ++++++++++++++++--- src/Avalonia.Controls/WindowBase.cs | 2 +- .../Remote/PreviewerWindowImpl.cs | 2 +- src/Avalonia.DesignerSupport/Remote/Stubs.cs | 2 +- src/Avalonia.Headless/HeadlessWindowImpl.cs | 7 ++++--- src/Avalonia.X11/X11Window.cs | 2 +- src/Windows/Avalonia.Win32/PopupImpl.cs | 3 ++- src/Windows/Avalonia.Win32/Win32Platform.cs | 2 +- src/Windows/Avalonia.Win32/WindowImpl.cs | 14 +++++++------ .../ContextMenuTests.cs | 16 +++++++-------- .../WindowBaseTests.cs | 2 +- .../MockWindowingPlatform.cs | 2 +- 13 files changed, 48 insertions(+), 30 deletions(-) diff --git a/src/Avalonia.Controls/Platform/IWindowBaseImpl.cs b/src/Avalonia.Controls/Platform/IWindowBaseImpl.cs index ecaf87d1ed..0d303a6666 100644 --- a/src/Avalonia.Controls/Platform/IWindowBaseImpl.cs +++ b/src/Avalonia.Controls/Platform/IWindowBaseImpl.cs @@ -5,9 +5,9 @@ namespace Avalonia.Platform public interface IWindowBaseImpl : ITopLevelImpl { /// - /// Shows the top level. + /// Shows the window. /// - void Show(); + void Show(bool activate); /// /// Hides the window. diff --git a/src/Avalonia.Controls/Window.cs b/src/Avalonia.Controls/Window.cs index 54574a7e1c..ab99cfad17 100644 --- a/src/Avalonia.Controls/Window.cs +++ b/src/Avalonia.Controls/Window.cs @@ -129,6 +129,12 @@ namespace Avalonia.Controls public static readonly StyledProperty SystemDecorationsProperty = AvaloniaProperty.Register(nameof(SystemDecorations), SystemDecorations.Full); + /// + /// Defines the property. + /// + public static readonly StyledProperty ShowActivatedProperty = + AvaloniaProperty.Register(nameof(ShowActivated), true); + /// /// Enables or disables the taskbar icon /// @@ -352,13 +358,21 @@ namespace Avalonia.Controls /// /// Sets the system decorations (title bar, border, etc) /// - /// public SystemDecorations SystemDecorations { get { return GetValue(SystemDecorationsProperty); } set { SetValue(SystemDecorationsProperty, value); } } + /// + /// Gets or sets a value that indicates whether a window is activated when first shown. + /// + public bool ShowActivated + { + get { return GetValue(ShowActivatedProperty); } + set { SetValue(ShowActivatedProperty, value); } + } + /// /// Enables or disables the taskbar icon /// @@ -650,7 +664,7 @@ namespace Avalonia.Controls Owner = parent; parent?.AddChild(this, false); - PlatformImpl?.Show(); + PlatformImpl?.Show(ShowActivated); Renderer?.Start(); SetWindowStartupLocation(Owner?.PlatformImpl); } @@ -720,7 +734,7 @@ namespace Avalonia.Controls PlatformImpl?.SetParent(owner.PlatformImpl); Owner = owner; owner.AddChild(this, true); - PlatformImpl?.Show(); + PlatformImpl?.Show(ShowActivated); Renderer?.Start(); diff --git a/src/Avalonia.Controls/WindowBase.cs b/src/Avalonia.Controls/WindowBase.cs index 1efd6c8c1d..cdcb499e98 100644 --- a/src/Avalonia.Controls/WindowBase.cs +++ b/src/Avalonia.Controls/WindowBase.cs @@ -162,7 +162,7 @@ namespace Avalonia.Controls LayoutManager.ExecuteInitialLayoutPass(); _hasExecutedInitialLayoutPass = true; } - PlatformImpl?.Show(); + PlatformImpl?.Show(true); Renderer?.Start(); OnOpened(EventArgs.Empty); } diff --git a/src/Avalonia.DesignerSupport/Remote/PreviewerWindowImpl.cs b/src/Avalonia.DesignerSupport/Remote/PreviewerWindowImpl.cs index 25c26be91e..787f44887f 100644 --- a/src/Avalonia.DesignerSupport/Remote/PreviewerWindowImpl.cs +++ b/src/Avalonia.DesignerSupport/Remote/PreviewerWindowImpl.cs @@ -20,7 +20,7 @@ namespace Avalonia.DesignerSupport.Remote ClientSize = new Size(1, 1); } - public void Show() + public void Show(bool activate) { } diff --git a/src/Avalonia.DesignerSupport/Remote/Stubs.cs b/src/Avalonia.DesignerSupport/Remote/Stubs.cs index f377b1bcd1..f6783dc0b7 100644 --- a/src/Avalonia.DesignerSupport/Remote/Stubs.cs +++ b/src/Avalonia.DesignerSupport/Remote/Stubs.cs @@ -77,7 +77,7 @@ namespace Avalonia.DesignerSupport.Remote { } - public void Show() + public void Show(bool activate) { } diff --git a/src/Avalonia.Headless/HeadlessWindowImpl.cs b/src/Avalonia.Headless/HeadlessWindowImpl.cs index 8f4fa5e304..3a1f3bdaf7 100644 --- a/src/Avalonia.Headless/HeadlessWindowImpl.cs +++ b/src/Avalonia.Headless/HeadlessWindowImpl.cs @@ -75,9 +75,10 @@ namespace Avalonia.Headless public Action Closed { get; set; } public IMouseDevice MouseDevice { get; } - public void Show() + public void Show(bool activate) { - Dispatcher.UIThread.Post(() => Activated?.Invoke(), DispatcherPriority.Input); + if (activate) + Dispatcher.UIThread.Post(() => Activated?.Invoke(), DispatcherPriority.Input); } public void Hide() @@ -148,7 +149,7 @@ namespace Avalonia.Headless public void ShowDialog(IWindowImpl parent) { - Show(); + Show(true); } public void SetSystemDecorations(bool enabled) diff --git a/src/Avalonia.X11/X11Window.cs b/src/Avalonia.X11/X11Window.cs index 2cd3b973d8..d62e3bed23 100644 --- a/src/Avalonia.X11/X11Window.cs +++ b/src/Avalonia.X11/X11Window.cs @@ -815,7 +815,7 @@ namespace Avalonia.X11 XSetTransientForHint(_x11.Display, _handle, parent.Handle.Handle); } - public void Show() + public void Show(bool activate) { _wasMappedAtLeastOnce = true; XMapWindow(_x11.Display, _handle); diff --git a/src/Windows/Avalonia.Win32/PopupImpl.cs b/src/Windows/Avalonia.Win32/PopupImpl.cs index 7fb146899b..dd3fd1342c 100644 --- a/src/Windows/Avalonia.Win32/PopupImpl.cs +++ b/src/Windows/Avalonia.Win32/PopupImpl.cs @@ -17,8 +17,9 @@ namespace Avalonia.Win32 [ThreadStatic] private static IntPtr s_parentHandle; - public override void Show() + public override void Show(bool activate) { + // Popups are always shown non-activated. UnmanagedMethods.ShowWindow(Handle.Handle, UnmanagedMethods.ShowWindowCommand.ShowNoActivate); // We need to steal focus if it's held by a child window of our toplevel window diff --git a/src/Windows/Avalonia.Win32/Win32Platform.cs b/src/Windows/Avalonia.Win32/Win32Platform.cs index 5b16cae26e..af9531400e 100644 --- a/src/Windows/Avalonia.Win32/Win32Platform.cs +++ b/src/Windows/Avalonia.Win32/Win32Platform.cs @@ -229,7 +229,7 @@ namespace Avalonia.Win32 public IWindowImpl CreateEmbeddableWindow() { var embedded = new EmbeddedWindowImpl(); - embedded.Show(); + embedded.Show(true); return embedded; } diff --git a/src/Windows/Avalonia.Win32/WindowImpl.cs b/src/Windows/Avalonia.Win32/WindowImpl.cs index 715c8fc01d..f594763413 100644 --- a/src/Windows/Avalonia.Win32/WindowImpl.cs +++ b/src/Windows/Avalonia.Win32/WindowImpl.cs @@ -240,7 +240,7 @@ namespace Avalonia.Win32 { if (IsWindowVisible(_hwnd)) { - ShowWindow(value); + ShowWindow(value, true); } else { @@ -550,10 +550,11 @@ namespace Avalonia.Win32 UnmanagedMethods.ShowWindow(_hwnd, ShowWindowCommand.Hide); } - public virtual void Show() + public virtual void Show(bool activate) { SetWindowLongPtr(_hwnd, (int)WindowLongParam.GWL_HWNDPARENT, _parent != null ? _parent._hwnd : IntPtr.Zero); - ShowWindow(_showWindowState); + + ShowWindow(_showWindowState, activate); } public Action GotInputWhenDisabled { get; set; } @@ -891,7 +892,7 @@ namespace Avalonia.Win32 ExtendClientAreaToDecorationsChanged?.Invoke(_isClientAreaExtended); } - private void ShowWindow(WindowState state) + private void ShowWindow(WindowState state, bool activate) { ShowWindowCommand? command; @@ -901,7 +902,7 @@ namespace Avalonia.Win32 { case WindowState.Minimized: newWindowProperties.IsFullScreen = false; - command = ShowWindowCommand.Minimize; + command = activate ? ShowWindowCommand.Minimize : ShowWindowCommand.ShowMinNoActive; break; case WindowState.Maximized: newWindowProperties.IsFullScreen = false; @@ -910,7 +911,8 @@ namespace Avalonia.Win32 case WindowState.Normal: newWindowProperties.IsFullScreen = false; - command = ShowWindowCommand.Restore; + command = IsWindowVisible(_hwnd) ? ShowWindowCommand.Restore : + activate ? ShowWindowCommand.Normal : ShowWindowCommand.ShowNoActivate; break; case WindowState.FullScreen: diff --git a/tests/Avalonia.Controls.UnitTests/ContextMenuTests.cs b/tests/Avalonia.Controls.UnitTests/ContextMenuTests.cs index c179aef9ac..39a3250686 100644 --- a/tests/Avalonia.Controls.UnitTests/ContextMenuTests.cs +++ b/tests/Avalonia.Controls.UnitTests/ContextMenuTests.cs @@ -79,7 +79,7 @@ namespace Avalonia.Controls.UnitTests { using (Application()) { - popupImpl.Setup(x => x.Show()).Verifiable(); + popupImpl.Setup(x => x.Show(true)).Verifiable(); popupImpl.Setup(x => x.Hide()).Verifiable(); var sut = new ContextMenu(); @@ -99,7 +99,7 @@ namespace Avalonia.Controls.UnitTests _mouse.Click(target); Assert.False(sut.IsOpen); - popupImpl.Verify(x => x.Show(), Times.Once); + popupImpl.Verify(x => x.Show(true), Times.Once); popupImpl.Verify(x => x.Hide(), Times.Once); } } @@ -109,7 +109,7 @@ namespace Avalonia.Controls.UnitTests { using (Application()) { - popupImpl.Setup(x => x.Show()).Verifiable(); + popupImpl.Setup(x => x.Show(true)).Verifiable(); popupImpl.Setup(x => x.Hide()).Verifiable(); var sut = new ContextMenu(); @@ -130,7 +130,7 @@ namespace Avalonia.Controls.UnitTests Assert.True(sut.IsOpen); popupImpl.Verify(x => x.Hide(), Times.Once); - popupImpl.Verify(x => x.Show(), Times.Exactly(2)); + popupImpl.Verify(x => x.Show(true), Times.Exactly(2)); } } @@ -177,7 +177,7 @@ namespace Avalonia.Controls.UnitTests { using (Application()) { - popupImpl.Setup(x => x.Show()).Verifiable(); + popupImpl.Setup(x => x.Show(true)).Verifiable(); bool eventCalled = false; var sut = new ContextMenu(); @@ -193,7 +193,7 @@ namespace Avalonia.Controls.UnitTests Assert.True(eventCalled); Assert.False(sut.IsOpen); - popupImpl.Verify(x => x.Show(), Times.Never); + popupImpl.Verify(x => x.Show(true), Times.Never); } } @@ -297,7 +297,7 @@ namespace Avalonia.Controls.UnitTests { using (Application()) { - popupImpl.Setup(x => x.Show()).Verifiable(); + popupImpl.Setup(x => x.Show(true)).Verifiable(); popupImpl.Setup(x => x.Hide()).Verifiable(); bool eventCalled = false; @@ -321,7 +321,7 @@ namespace Avalonia.Controls.UnitTests Assert.True(eventCalled); Assert.True(sut.IsOpen); - popupImpl.Verify(x => x.Show(), Times.Once()); + popupImpl.Verify(x => x.Show(true), Times.Once()); popupImpl.Verify(x => x.Hide(), Times.Never); } } diff --git a/tests/Avalonia.Controls.UnitTests/WindowBaseTests.cs b/tests/Avalonia.Controls.UnitTests/WindowBaseTests.cs index 84f212d1b3..8109b037c5 100644 --- a/tests/Avalonia.Controls.UnitTests/WindowBaseTests.cs +++ b/tests/Avalonia.Controls.UnitTests/WindowBaseTests.cs @@ -137,7 +137,7 @@ namespace Avalonia.Controls.UnitTests var target = new TestWindowBase(windowImpl.Object); target.IsVisible = true; - windowImpl.Verify(x => x.Show()); + windowImpl.Verify(x => x.Show(true)); } } diff --git a/tests/Avalonia.UnitTests/MockWindowingPlatform.cs b/tests/Avalonia.UnitTests/MockWindowingPlatform.cs index 9ec8ca2d36..8a24a8366f 100644 --- a/tests/Avalonia.UnitTests/MockWindowingPlatform.cs +++ b/tests/Avalonia.UnitTests/MockWindowingPlatform.cs @@ -58,7 +58,7 @@ namespace Avalonia.UnitTests windowImpl.Object.Resized?.Invoke(clientSize); }); - windowImpl.Setup(x => x.Show()).Callback(() => + windowImpl.Setup(x => x.Show(true)).Callback(() => { windowImpl.Object.Activated?.Invoke(); }); From 2b9e092b32757f32b028288aac2934027b5ce924 Mon Sep 17 00:00:00 2001 From: capdj <42602325+capdj@users.noreply.github.com> Date: Tue, 17 Nov 2020 15:33:45 +0000 Subject: [PATCH 075/689] Fix X11 dropping modifier keys Fixes #4988 --- src/Avalonia.X11/XI2Manager.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Avalonia.X11/XI2Manager.cs b/src/Avalonia.X11/XI2Manager.cs index b3a24e6c37..8cdf24cc7b 100644 --- a/src/Avalonia.X11/XI2Manager.cs +++ b/src/Avalonia.X11/XI2Manager.cs @@ -351,7 +351,7 @@ namespace Avalonia.X11 if (state.HasFlag(XModifierMask.Mod4Mask)) Modifiers |= RawInputModifiers.Meta; - Modifiers = ParseButtonState(ev->buttons.MaskLen, ev->buttons.Mask); + Modifiers |= ParseButtonState(ev->buttons.MaskLen, ev->buttons.Mask); Valuators = new Dictionary(); Position = new Point(ev->event_x, ev->event_y); From 053537721a65632346ccd55441fdabdcb2e30ef1 Mon Sep 17 00:00:00 2001 From: Dariusz Komosinski Date: Tue, 17 Nov 2020 16:49:55 +0100 Subject: [PATCH 076/689] Parse Color and GridLength during compilation. Improve error handling for failed parsing. --- .../Avalonia.Build.Tasks.csproj | 11 +- src/Avalonia.Build.Tasks/SpanCompat.cs | 4 + src/Avalonia.Controls/GridLength.cs | 10 +- src/Avalonia.Visuals/Media/Color.cs | 14 +- src/Avalonia.Visuals/Media/KnownColors.cs | 9 ++ .../AvaloniaXamlIlGridLengthAstNode.cs | 34 +++++ .../AvaloniaXamlIlLanguage.cs | 135 ++++++++++++++---- .../AvaloniaXamlIlWellKnownTypes.cs | 9 ++ 8 files changed, 192 insertions(+), 34 deletions(-) create mode 100644 src/Markup/Avalonia.Markup.Xaml.Loader/CompilerExtensions/AstNodes/AvaloniaXamlIlGridLengthAstNode.cs diff --git a/src/Avalonia.Build.Tasks/Avalonia.Build.Tasks.csproj b/src/Avalonia.Build.Tasks/Avalonia.Build.Tasks.csproj index bfac1ac1e1..90f6abc873 100644 --- a/src/Avalonia.Build.Tasks/Avalonia.Build.Tasks.csproj +++ b/src/Avalonia.Build.Tasks/Avalonia.Build.Tasks.csproj @@ -1,7 +1,7 @@  netstandard2.0 - netstandard2.0;netcoreapp2.0 + netstandard2.0;netcoreapp3.1 exe false tools @@ -81,6 +81,15 @@ Markup/%(RecursiveDir)%(FileName)%(Extension) + + Markup/%(RecursiveDir)%(FileName)%(Extension) + + + Markup/%(RecursiveDir)%(FileName)%(Extension) + + + Markup/%(RecursiveDir)%(FileName)%(Extension) + diff --git a/src/Avalonia.Build.Tasks/SpanCompat.cs b/src/Avalonia.Build.Tasks/SpanCompat.cs index d5c406293e..f8960f56ec 100644 --- a/src/Avalonia.Build.Tasks/SpanCompat.cs +++ b/src/Avalonia.Build.Tasks/SpanCompat.cs @@ -1,3 +1,4 @@ +#if !NETCOREAPP3_1 namespace System { // This is a hack to enable our span code to work inside MSBuild task without referencing System.Memory @@ -63,6 +64,8 @@ namespace System } public override string ToString() => _length == 0 ? string.Empty : _s.Substring(_start, _length); + + public static implicit operator ReadOnlySpan(char[] arr) => new ReadOnlySpan(new string(arr)); } static class SpanCompatExtensions @@ -71,3 +74,4 @@ namespace System } } +#endif diff --git a/src/Avalonia.Controls/GridLength.cs b/src/Avalonia.Controls/GridLength.cs index 57f308d59f..b8418949d9 100644 --- a/src/Avalonia.Controls/GridLength.cs +++ b/src/Avalonia.Controls/GridLength.cs @@ -8,7 +8,10 @@ namespace Avalonia.Controls /// /// Defines the valid units for a . /// - public enum GridUnitType +#if !BUILDTASK + public +#endif + enum GridUnitType { /// /// The row or column is auto-sized to fit its content. @@ -29,7 +32,10 @@ namespace Avalonia.Controls /// /// Holds the width or height of a 's column and row definitions. /// - public struct GridLength : IEquatable +#if !BUILDTASK + public +#endif + struct GridLength : IEquatable { private readonly GridUnitType _type; diff --git a/src/Avalonia.Visuals/Media/Color.cs b/src/Avalonia.Visuals/Media/Color.cs index 16b4f90d57..a57a962db4 100644 --- a/src/Avalonia.Visuals/Media/Color.cs +++ b/src/Avalonia.Visuals/Media/Color.cs @@ -1,17 +1,24 @@ using System; using System.Globalization; +#if !BUILDTASK using Avalonia.Animation.Animators; +#endif namespace Avalonia.Media { /// /// An ARGB color. /// - public readonly struct Color : IEquatable +#if !BUILDTASK + public +#endif + readonly struct Color : IEquatable { static Color() { +#if !BUILDTASK Animation.Animation.RegisterAnimator(prop => typeof(Color).IsAssignableFrom(prop.PropertyType)); +#endif } /// @@ -223,7 +230,12 @@ namespace Avalonia.Media if (input.Length == 3 || input.Length == 4) { var extendedLength = 2 * input.Length; + +#if !BUILDTASK Span extended = stackalloc char[extendedLength]; +#else + char[] extended = new char[extendedLength]; +#endif for (int i = 0; i < input.Length; i++) { diff --git a/src/Avalonia.Visuals/Media/KnownColors.cs b/src/Avalonia.Visuals/Media/KnownColors.cs index 0887d2c913..fe09f5f538 100644 --- a/src/Avalonia.Visuals/Media/KnownColors.cs +++ b/src/Avalonia.Visuals/Media/KnownColors.cs @@ -8,7 +8,9 @@ namespace Avalonia.Media { private static readonly IReadOnlyDictionary _knownColorNames; private static readonly IReadOnlyDictionary _knownColors; +#if !BUILDTASK private static readonly Dictionary _knownBrushes; +#endif static KnownColors() { @@ -32,14 +34,19 @@ namespace Avalonia.Media _knownColorNames = knownColorNames; _knownColors = knownColors; + +#if !BUILDTASK _knownBrushes = new Dictionary(); +#endif } +#if !BUILDTASK public static ISolidColorBrush GetKnownBrush(string s) { var color = GetKnownColor(s); return color != KnownColor.None ? color.ToBrush() : null; } +#endif public static KnownColor GetKnownColor(string s) { @@ -61,6 +68,7 @@ namespace Avalonia.Media return Color.FromUInt32((uint)color); } +#if !BUILDTASK public static ISolidColorBrush ToBrush(this KnownColor color) { lock (_knownBrushes) @@ -74,6 +82,7 @@ namespace Avalonia.Media return brush; } } +#endif } internal enum KnownColor : uint diff --git a/src/Markup/Avalonia.Markup.Xaml.Loader/CompilerExtensions/AstNodes/AvaloniaXamlIlGridLengthAstNode.cs b/src/Markup/Avalonia.Markup.Xaml.Loader/CompilerExtensions/AstNodes/AvaloniaXamlIlGridLengthAstNode.cs new file mode 100644 index 0000000000..218c49512c --- /dev/null +++ b/src/Markup/Avalonia.Markup.Xaml.Loader/CompilerExtensions/AstNodes/AvaloniaXamlIlGridLengthAstNode.cs @@ -0,0 +1,34 @@ +using Avalonia.Controls; +using Avalonia.Markup.Xaml.XamlIl.CompilerExtensions.Transformers; +using XamlX.Ast; +using XamlX.Emit; +using XamlX.IL; + +namespace Avalonia.Markup.Xaml.XamlIl.CompilerExtensions.AstNodes +{ + class AvaloniaXamlIlGridLengthAstNode : XamlAstNode, IXamlAstValueNode, IXamlAstILEmitableNode + { + private readonly AvaloniaXamlIlWellKnownTypes _types; + private readonly GridLength _gridLength; + + public AvaloniaXamlIlGridLengthAstNode(IXamlLineInfo lineInfo, AvaloniaXamlIlWellKnownTypes types, GridLength gridLength) : base(lineInfo) + { + _types = types; + _gridLength = gridLength; + + Type = new XamlAstClrTypeReference(lineInfo, types.GridLength, false); + } + + public IXamlAstTypeReference Type { get; } + + public XamlILNodeEmitResult Emit(XamlEmitContext context, IXamlILEmitter codeGen) + { + codeGen + .Ldc_R8(_gridLength.Value) + .Ldc_I4((int)_gridLength.GridUnitType) + .Newobj(_types.GridLengthConstructorValueType); + + return XamlILNodeEmitResult.Type(0, Type.GetClrType()); + } + } +} diff --git a/src/Markup/Avalonia.Markup.Xaml.Loader/CompilerExtensions/AvaloniaXamlIlLanguage.cs b/src/Markup/Avalonia.Markup.Xaml.Loader/CompilerExtensions/AvaloniaXamlIlLanguage.cs index c3d9534828..87b82c112e 100644 --- a/src/Markup/Avalonia.Markup.Xaml.Loader/CompilerExtensions/AvaloniaXamlIlLanguage.cs +++ b/src/Markup/Avalonia.Markup.Xaml.Loader/CompilerExtensions/AvaloniaXamlIlLanguage.cs @@ -2,8 +2,10 @@ using System; using System.Collections.Generic; using System.Globalization; using System.Linq; +using Avalonia.Controls; using Avalonia.Markup.Xaml.XamlIl.CompilerExtensions.AstNodes; using Avalonia.Markup.Xaml.XamlIl.CompilerExtensions.Transformers; +using Avalonia.Media; using XamlX; using XamlX.Ast; using XamlX.Emit; @@ -205,67 +207,140 @@ namespace Avalonia.Markup.Xaml.XamlIl.CompilerExtensions result = new AvaloniaXamlIlFontFamilyAstNode(types, text, node); return true; } - + if (type.Equals(types.Thickness)) { - var thickness = Thickness.Parse(text); - - result = new AvaloniaXamlIlVectorLikeConstantAstNode(node, types, types.Thickness, types.ThicknessFullConstructor, - new[] { thickness.Left, thickness.Top, thickness.Right, thickness.Bottom }); + try + { + var thickness = Thickness.Parse(text); + + result = new AvaloniaXamlIlVectorLikeConstantAstNode(node, types, types.Thickness, types.ThicknessFullConstructor, + new[] { thickness.Left, thickness.Top, thickness.Right, thickness.Bottom }); - return true; + return true; + } + catch + { + throw new XamlX.XamlLoadException($"Unable to parse \"{text}\" as a thickness", node); + } } if (type.Equals(types.Point)) { - var point = Point.Parse(text); - - result = new AvaloniaXamlIlVectorLikeConstantAstNode(node, types, types.Point, types.PointFullConstructor, - new[] { point.X, point.Y }); + try + { + var point = Point.Parse(text); + + result = new AvaloniaXamlIlVectorLikeConstantAstNode(node, types, types.Point, types.PointFullConstructor, + new[] { point.X, point.Y }); - return true; + return true; + } + catch + { + throw new XamlX.XamlLoadException($"Unable to parse \"{text}\" as a point", node); + } } if (type.Equals(types.Vector)) { - var vector = Vector.Parse(text); - - result = new AvaloniaXamlIlVectorLikeConstantAstNode(node, types, types.Vector, types.VectorFullConstructor, - new[] { vector.X, vector.Y }); + try + { + var vector = Vector.Parse(text); + + result = new AvaloniaXamlIlVectorLikeConstantAstNode(node, types, types.Vector, types.VectorFullConstructor, + new[] { vector.X, vector.Y }); - return true; + return true; + } + catch + { + throw new XamlX.XamlLoadException($"Unable to parse \"{text}\" as a vector", node); + } } if (type.Equals(types.Size)) { - var size = Size.Parse(text); - - result = new AvaloniaXamlIlVectorLikeConstantAstNode(node, types, types.Size, types.SizeFullConstructor, - new[] { size.Width, size.Height }); + try + { + var size = Size.Parse(text); - return true; + result = new AvaloniaXamlIlVectorLikeConstantAstNode(node, types, types.Size, types.SizeFullConstructor, + new[] { size.Width, size.Height }); + + return true; + } + catch + { + throw new XamlX.XamlLoadException($"Unable to parse \"{text}\" as a size", node); + } } if (type.Equals(types.Matrix)) { - var matrix = Matrix.Parse(text); - - result = new AvaloniaXamlIlVectorLikeConstantAstNode(node, types, types.Matrix, types.MatrixFullConstructor, - new[] { matrix.M11, matrix.M12, matrix.M21, matrix.M22, matrix.M31, matrix.M32 }); + try + { + var matrix = Matrix.Parse(text); + + result = new AvaloniaXamlIlVectorLikeConstantAstNode(node, types, types.Matrix, types.MatrixFullConstructor, + new[] { matrix.M11, matrix.M12, matrix.M21, matrix.M22, matrix.M31, matrix.M32 }); - return true; + return true; + } + catch + { + throw new XamlX.XamlLoadException($"Unable to parse \"{text}\" as a matrix", node); + } } if (type.Equals(types.CornerRadius)) { - var cornerRadius = CornerRadius.Parse(text); - - result = new AvaloniaXamlIlVectorLikeConstantAstNode(node, types, types.CornerRadius, types.CornerRadiusFullConstructor, - new[] { cornerRadius.TopLeft, cornerRadius.TopRight, cornerRadius.BottomRight, cornerRadius.BottomLeft }); + try + { + var cornerRadius = CornerRadius.Parse(text); + + result = new AvaloniaXamlIlVectorLikeConstantAstNode(node, types, types.CornerRadius, types.CornerRadiusFullConstructor, + new[] { cornerRadius.TopLeft, cornerRadius.TopRight, cornerRadius.BottomRight, cornerRadius.BottomLeft }); + return true; + } + catch + { + throw new XamlX.XamlLoadException($"Unable to parse \"{text}\" as a corner radius", node); + } + } + + if (type.Equals(types.Color)) + { + if (!Color.TryParse(text, out Color color)) + { + throw new XamlX.XamlLoadException($"Unable to parse \"{text}\" as a color", node); + } + + result = new XamlStaticOrTargetedReturnMethodCallNode(node, + type.GetMethod( + new FindMethodMethodSignature("FromUInt32", type, types.UInt) { IsStatic = true }), + new[] { new XamlConstantNode(node, types.UInt, color.ToUint32()) }); + return true; } + if (type.Equals(types.GridLength)) + { + try + { + var gridLength = GridLength.Parse(text); + + result = new AvaloniaXamlIlGridLengthAstNode(node, types, gridLength); + + return true; + } + catch + { + throw new XamlX.XamlLoadException($"Unable to parse \"{text}\" as a grid length", node); + } + } + if (type.FullName == "Avalonia.AvaloniaProperty") { var scope = context.ParentNodes().OfType().FirstOrDefault(); diff --git a/src/Markup/Avalonia.Markup.Xaml.Loader/CompilerExtensions/Transformers/AvaloniaXamlIlWellKnownTypes.cs b/src/Markup/Avalonia.Markup.Xaml.Loader/CompilerExtensions/Transformers/AvaloniaXamlIlWellKnownTypes.cs index 05b13b61d3..2a7e10d42e 100644 --- a/src/Markup/Avalonia.Markup.Xaml.Loader/CompilerExtensions/Transformers/AvaloniaXamlIlWellKnownTypes.cs +++ b/src/Markup/Avalonia.Markup.Xaml.Loader/CompilerExtensions/Transformers/AvaloniaXamlIlWellKnownTypes.cs @@ -49,6 +49,7 @@ namespace Avalonia.Markup.Xaml.XamlIl.CompilerExtensions.Transformers public IXamlType ReflectionBindingExtension { get; } public IXamlType RelativeSource { get; } + public IXamlType UInt { get; } public IXamlType Long { get; } public IXamlType Uri { get; } public IXamlType FontFamily { get; } @@ -65,6 +66,9 @@ namespace Avalonia.Markup.Xaml.XamlIl.CompilerExtensions.Transformers public IXamlConstructor MatrixFullConstructor { get; } public IXamlType CornerRadius { get; } public IXamlConstructor CornerRadiusFullConstructor { get; } + public IXamlType GridLength { get; } + public IXamlConstructor GridLengthConstructorValueType { get; } + public IXamlType Color { get; } public AvaloniaXamlIlWellKnownTypes(TransformerConfiguration cfg) { @@ -122,6 +126,7 @@ namespace Avalonia.Markup.Xaml.XamlIl.CompilerExtensions.Transformers ItemsRepeater = cfg.TypeSystem.GetType("Avalonia.Controls.ItemsRepeater"); ReflectionBindingExtension = cfg.TypeSystem.GetType("Avalonia.Markup.Xaml.MarkupExtensions.ReflectionBindingExtension"); RelativeSource = cfg.TypeSystem.GetType("Avalonia.Data.RelativeSource"); + UInt = cfg.TypeSystem.GetType("System.UInt32"); Long = cfg.TypeSystem.GetType("System.Int64"); Uri = cfg.TypeSystem.GetType("System.Uri"); FontFamily = cfg.TypeSystem.GetType("Avalonia.Media.FontFamily"); @@ -141,6 +146,10 @@ namespace Avalonia.Markup.Xaml.XamlIl.CompilerExtensions.Transformers (Size, SizeFullConstructor) = GetNumericTypeInfo("Avalonia.Size", XamlIlTypes.Double, 2); (Matrix, MatrixFullConstructor) = GetNumericTypeInfo("Avalonia.Matrix", XamlIlTypes.Double, 6); (CornerRadius, CornerRadiusFullConstructor) = GetNumericTypeInfo("Avalonia.CornerRadius", XamlIlTypes.Double, 4); + + GridLength = cfg.TypeSystem.GetType("Avalonia.Controls.GridLength"); + GridLengthConstructorValueType = GridLength.GetConstructor(new List { XamlIlTypes.Double, cfg.TypeSystem.GetType("Avalonia.Controls.GridUnitType") }); + Color = cfg.TypeSystem.GetType("Avalonia.Media.Color"); } } From ff9981cfbbf058bcd839b1e8bbbc98381f07eb13 Mon Sep 17 00:00:00 2001 From: Hank Grabowski Date: Tue, 17 Nov 2020 13:05:56 -0500 Subject: [PATCH 077/689] Update macOS build instructions dylib copy instructions --- Documentation/build.md | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/Documentation/build.md b/Documentation/build.md index 2f59146a48..45ee980e0b 100644 --- a/Documentation/build.md +++ b/Documentation/build.md @@ -68,7 +68,15 @@ On macOS it is necessary to build and manually install the respective native lib ``` cd ~/Library/Developer/Xcode/DerivedData/Avalonia.Native.OSX-[guid]/Build/Products/Debug -cp libAvalonia.Native.OSX.dylib /usr/local/lib/libAvaloniaNative.dylib +cp libAvalonia.Native.OSX.dylib /usr/local/lib/libAvalonia.Native.OSX.dylib +``` + +For compilation we also need this library on the build path. From the Avalonia root project directory: + +``` +mkdir -p build/Products/Release +cp /usr/local/lib/libAvalonia.Native.OSX.dylib build/Products/Release + ``` ### Build and Run Avalonia From 34b5f07e9656855e20ec42c292aa0b738c3b186a Mon Sep 17 00:00:00 2001 From: Steven Kirk Date: Fri, 13 Nov 2020 12:23:08 +0100 Subject: [PATCH 078/689] Added failing tests for #5027. We shouldn't subscribe to bindings until needed. --- .../Avalonia.Markup.Xaml.UnitTests.csproj | 1 + .../DynamicResourceExtensionTests.cs | 96 +++++++++++++++++++ .../Avalonia.Styling.UnitTests/StyleTests.cs | 82 ++++++++++++++++ 3 files changed, 179 insertions(+) diff --git a/tests/Avalonia.Markup.Xaml.UnitTests/Avalonia.Markup.Xaml.UnitTests.csproj b/tests/Avalonia.Markup.Xaml.UnitTests/Avalonia.Markup.Xaml.UnitTests.csproj index ad3592294d..b070765a60 100644 --- a/tests/Avalonia.Markup.Xaml.UnitTests/Avalonia.Markup.Xaml.UnitTests.csproj +++ b/tests/Avalonia.Markup.Xaml.UnitTests/Avalonia.Markup.Xaml.UnitTests.csproj @@ -3,6 +3,7 @@ netcoreapp3.1;net47 Library true + latest diff --git a/tests/Avalonia.Markup.Xaml.UnitTests/MarkupExtensions/DynamicResourceExtensionTests.cs b/tests/Avalonia.Markup.Xaml.UnitTests/MarkupExtensions/DynamicResourceExtensionTests.cs index 47a73cb360..410f579a13 100644 --- a/tests/Avalonia.Markup.Xaml.UnitTests/MarkupExtensions/DynamicResourceExtensionTests.cs +++ b/tests/Avalonia.Markup.Xaml.UnitTests/MarkupExtensions/DynamicResourceExtensionTests.cs @@ -1,4 +1,5 @@ using System; +using System.Collections.Generic; using System.Linq; using Avalonia.Controls; using Avalonia.Controls.Presenters; @@ -792,6 +793,82 @@ namespace Avalonia.Markup.Xaml.UnitTests.MarkupExtensions Assert.Equal(0xff506070, brush.Color.ToUint32()); } + [Fact] + public void Resource_In_Non_Matching_Style_Is_Not_Resolved() + { + using var app = StyledWindow(); + + var xaml = @" + + + + + + + + + + + + + + + +"; + + var window = (Window)AvaloniaRuntimeXamlLoader.Load(xaml); + var border = window.FindControl("border"); + + Assert.Equal("bar", border.Tag); + + var resourceProvider = (TrackingResourceProvider)window.Resources.MergedDictionaries[0]; + Assert.Equal(new[] { "bar" }, resourceProvider.RequestedResources); + } + + [Fact] + public void Resource_In_Non_Active_Style_Is_Not_Resolved() + { + using var app = StyledWindow(); + + var xaml = @" + + + + + + + + + + + + + + + +"; + + var window = (Window)AvaloniaRuntimeXamlLoader.Load(xaml); + var border = window.FindControl("border"); + + Assert.Equal("bar", border.Tag); + + var resourceProvider = (TrackingResourceProvider)window.Resources.MergedDictionaries[0]; + Assert.Equal(new[] { "bar" }, resourceProvider.RequestedResources); + } + private IDisposable StyledWindow(params (string, string)[] assets) { var services = TestServices.StyledWindow.With( @@ -822,4 +899,23 @@ namespace Avalonia.Markup.Xaml.UnitTests.MarkupExtensions }; } } + + public class TrackingResourceProvider : IResourceProvider + { + public IResourceHost Owner { get; private set; } + public bool HasResources => true; + public List RequestedResources { get; } = new List(); + + public event EventHandler OwnerChanged; + + public void AddOwner(IResourceHost owner) => Owner = owner; + public void RemoveOwner(IResourceHost owner) => Owner = null; + + public bool TryGetResource(object key, out object value) + { + RequestedResources.Add(key); + value = key; + return true; + } + } } diff --git a/tests/Avalonia.Styling.UnitTests/StyleTests.cs b/tests/Avalonia.Styling.UnitTests/StyleTests.cs index df94887340..61d9f961f3 100644 --- a/tests/Avalonia.Styling.UnitTests/StyleTests.cs +++ b/tests/Avalonia.Styling.UnitTests/StyleTests.cs @@ -1,6 +1,7 @@ using System; using System.Collections.Generic; using Avalonia.Controls; +using Avalonia.Controls.Templates; using Avalonia.Data; using Avalonia.UnitTests; using Moq; @@ -217,6 +218,78 @@ namespace Avalonia.Styling.UnitTests Assert.Equal(new[] { "foodefault", "Bar" }, values); } + [Fact] + public void Template_In_Non_Matching_Style_Is_Not_Built() + { + var instantiationCount = 0; + var template = new FuncTemplate(() => + { + ++instantiationCount; + return new Class1(); + }); + + Styles styles = new Styles + { + new Style(x => x.OfType().Class("foo")) + { + Setters = + { + new Setter(Class1.ChildProperty, template), + }, + }, + + new Style(x => x.OfType()) + { + Setters = + { + new Setter(Class1.ChildProperty, template), + }, + } + }; + + var target = new Class1(); + styles.TryAttach(target, null); + + Assert.NotNull(target.Child); + Assert.Equal(1, instantiationCount); + } + + [Fact] + public void Template_In_Inactive_Style_Is_Not_Built() + { + var instantiationCount = 0; + var template = new FuncTemplate(() => + { + ++instantiationCount; + return new Class1(); + }); + + Styles styles = new Styles + { + new Style(x => x.OfType()) + { + Setters = + { + new Setter(Class1.ChildProperty, template), + }, + }, + + new Style(x => x.OfType()) + { + Setters = + { + new Setter(Class1.ChildProperty, template), + }, + } + }; + + var target = new Class1(); + styles.TryAttach(target, null); + + Assert.NotNull(target.Child); + Assert.Equal(1, instantiationCount); + } + [Fact] public void Style_Should_Detach_When_Control_Removed_From_Logical_Tree() { @@ -453,12 +526,21 @@ namespace Avalonia.Styling.UnitTests public static readonly StyledProperty FooProperty = AvaloniaProperty.Register(nameof(Foo), "foodefault"); + public static readonly StyledProperty ChildProperty = + AvaloniaProperty.Register(nameof(Child)); + public string Foo { get { return GetValue(FooProperty); } set { SetValue(FooProperty, value); } } + public Class1 Child + { + get => GetValue(ChildProperty); + set => SetValue(ChildProperty, value); + } + protected override Size MeasureOverride(Size availableSize) { throw new NotImplementedException(); From 74695977123b4794e62cb188c40b9832bd3c11e4 Mon Sep 17 00:00:00 2001 From: Steven Kirk Date: Mon, 16 Nov 2020 08:39:31 +0100 Subject: [PATCH 079/689] Added benchmark for fluent RepeatButton. As that's where #5027 was showing up most. --- .../Avalonia.Benchmarks.csproj | 1 + .../Themes/FluentBenchmark.cs | 74 +++++++++++++++++++ .../Avalonia.UnitTests/UnitTestApplication.cs | 2 +- 3 files changed, 76 insertions(+), 1 deletion(-) create mode 100644 tests/Avalonia.Benchmarks/Themes/FluentBenchmark.cs diff --git a/tests/Avalonia.Benchmarks/Avalonia.Benchmarks.csproj b/tests/Avalonia.Benchmarks/Avalonia.Benchmarks.csproj index 251894e324..e8e69efdbc 100644 --- a/tests/Avalonia.Benchmarks/Avalonia.Benchmarks.csproj +++ b/tests/Avalonia.Benchmarks/Avalonia.Benchmarks.csproj @@ -12,6 +12,7 @@ + diff --git a/tests/Avalonia.Benchmarks/Themes/FluentBenchmark.cs b/tests/Avalonia.Benchmarks/Themes/FluentBenchmark.cs new file mode 100644 index 0000000000..3a05502371 --- /dev/null +++ b/tests/Avalonia.Benchmarks/Themes/FluentBenchmark.cs @@ -0,0 +1,74 @@ +using System; +using Avalonia.Controls; +using Avalonia.Markup.Xaml; +using Avalonia.Markup.Xaml.Styling; +using Avalonia.Platform; +using Avalonia.Shared.PlatformSupport; +using Avalonia.Styling; +using Avalonia.UnitTests; +using BenchmarkDotNet.Attributes; +using Moq; + +namespace Avalonia.Benchmarks.Themes +{ + [MemoryDiagnoser] + public class FluentBenchmark + { + private readonly IDisposable _app; + private readonly TestRoot _root; + + public FluentBenchmark() + { + _app = CreateApp(); + _root = new TestRoot(true, null) + { + Renderer = new NullRenderer() + }; + + _root.LayoutManager.ExecuteInitialLayoutPass(); + } + + public void Dispose() + { + _app.Dispose(); + } + + [Benchmark] + public void RepeatButton() + { + var button = new RepeatButton(); + _root.Child = button; + _root.LayoutManager.ExecuteLayoutPass(); + } + + private static IDisposable CreateApp() + { + var services = new TestServices( + assetLoader: new AssetLoader(), + globalClock: new MockGlobalClock(), + platform: new AppBuilder().RuntimePlatform, + renderInterface: new MockPlatformRenderInterface(), + standardCursorFactory: Mock.Of(), + styler: new Styler(), + theme: () => LoadFluentTheme(), + threadingInterface: new NullThreadingPlatform(), + fontManagerImpl: new MockFontManagerImpl(), + textShaperImpl: new MockTextShaperImpl(), + windowingPlatform: new MockWindowingPlatform()); + + return UnitTestApplication.Start(services); + } + + private static Styles LoadFluentTheme() + { + AssetLoader.RegisterResUriParsers(); + return new Styles + { + new StyleInclude(new Uri("avares://Avalonia.Benchmarks")) + { + Source = new Uri("avares://Avalonia.Themes.Fluent/Accents/FluentDark.xaml") + } + }; + } + } +} diff --git a/tests/Avalonia.UnitTests/UnitTestApplication.cs b/tests/Avalonia.UnitTests/UnitTestApplication.cs index e4a65f105d..4e3f1ad28a 100644 --- a/tests/Avalonia.UnitTests/UnitTestApplication.cs +++ b/tests/Avalonia.UnitTests/UnitTestApplication.cs @@ -25,6 +25,7 @@ namespace Avalonia.UnitTests public UnitTestApplication(TestServices services) { _services = services ?? new TestServices(); + AvaloniaLocator.CurrentMutable.BindToSelf(this); RegisterServices(); } @@ -36,7 +37,6 @@ namespace Avalonia.UnitTests { var scope = AvaloniaLocator.EnterScope(); var app = new UnitTestApplication(services); - AvaloniaLocator.CurrentMutable.BindToSelf(app); Dispatcher.UIThread.UpdateServices(); return Disposable.Create(() => { From d8fbd95ef03288f3262f4de425fb1b335f17073e Mon Sep 17 00:00:00 2001 From: Steven Kirk Date: Thu, 12 Nov 2020 11:49:53 +0100 Subject: [PATCH 080/689] Don't subscribe to inner observable if not active. When subscribing to a `PropertySetterBindingInstance`, if the owner style is not active then there's no need to subscribe to the inner observable as this can cause resource lookups etc. Part of fixing #5027. --- .../Styling/PropertySetterBindingInstance.cs | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/Avalonia.Styling/Styling/PropertySetterBindingInstance.cs b/src/Avalonia.Styling/Styling/PropertySetterBindingInstance.cs index 929f7142bb..a67190c831 100644 --- a/src/Avalonia.Styling/Styling/PropertySetterBindingInstance.cs +++ b/src/Avalonia.Styling/Styling/PropertySetterBindingInstance.cs @@ -92,6 +92,7 @@ namespace Avalonia.Styling { if (!_isActive) { + _innerSubscription ??= _binding.Observable.Subscribe(_inner); _isActive = true; PublishNext(); } @@ -102,6 +103,8 @@ namespace Avalonia.Styling if (_isActive) { _isActive = false; + _innerSubscription?.Dispose(); + _innerSubscription = null; PublishNext(); } } @@ -148,7 +151,10 @@ namespace Avalonia.Styling protected override void Subscribed() { - _innerSubscription = _binding.Observable.Subscribe(_inner); + if (_isActive) + { + _innerSubscription = _binding.Observable.Subscribe(_inner); + } } protected override void Unsubscribed() From 72a43174e18d668611d86f3a3210220643f369ce Mon Sep 17 00:00:00 2001 From: Steven Kirk Date: Sat, 14 Nov 2020 16:50:53 +0100 Subject: [PATCH 081/689] Lazily evaluate