Вы можете, конечно, найти объекты задачи в куче и начать анализировать их вручную с помощью команд SOS, например. как это начало сеанса отладки:
0:013> !dumpheap -stat -type Task
Statistics:
MT Count TotalSize Class Name
[...]
71e03f28 4 160 System.Threading.Tasks.Task
Total 28 objects
0:013> !dumpheap -mt 71e03f28
Address MT Size
022bd900 71e03f28 40
[...]
0:013> !do 022bd900
Name: System.Threading.Tasks.Task
MethodTable: 71e03f28
EEClass: 719cd6e0
Size: 40(0x28) bytes
File: C:\Windows\Microsoft.Net\assembly\GAC_32\mscorlib\v4.0_4.0.0.0__b77a5c561934e089\mscorlib.dll
Fields:
MT Field Offset Type VT Attr Value Name
71df1638 40019cd 1c System.Int32 1 instance 3 m_taskId
71defb44 40019ce 4 System.Object 0 instance 022bd8e0 m_action
[...]
0:013> !DumpObj 022bd8e0
Name: System.Action
MethodTable: 71e0588c
EEClass: 719357b8
Size: 32(0x20) bytes
File: C:\Windows\Microsoft.Net\assembly\GAC_32\mscorlib\v4.0_4.0.0.0__b77a5c561934e089\mscorlib.dll
Fields:
MT Field Offset Type VT Attr Value Name
71defb44 40002b5 4 System.Object 0 instance 022bd8e0 _target
71defb44 40002b6 8 System.Object 0 instance 00000000 _methodBase
71df2bdc 40002b7 c System.IntPtr 1 instance 4b00e64 _methodPtr
71df2bdc 40002b8 10 System.IntPtr 1 instance 4e0c30 _methodPtrAux
[...]
0:013> !u 4e0c30
Unmanaged code
004e0c30 e833df8372 call clr!PrecodeFixupThunk (72d1eb68)
[...]
И теперь он начинает становиться громоздким ...
Самый удобный способ (в WinDbg) с моей точки зрения - использовать !TaskTriage
команда Mex (Github) :
0:013> !TaskTriage
Normal Mode - not showing successful Tasks
Address Target Status Method Exceptions
==================================================================================================
022bd900 | 022bd8e0 | TASK_STATE_DELEGATE_INVOKED | Demo.Program.printMessage() |
022bd974 | 022bd868 | TASK_STATE_DELEGATE_INVOKED | Demo.Program+<>c.b__0_0() |
022bd9bc | 022bd868 | TASK_STATE_STARTED | Demo.Program+<>c.b__0_1() |
022bda04 | 022bd868 | TASK_STATE_STARTED | Demo.Program+<>c.b__0_2() |
==================================================================================================
Address Target Status Method Exceptions
Идея использования WinDbg над Visual Studio хороша, поскольку VS2015 и VS2017 не смогут дать те же результаты из файла дампа:
Это случилось со мной довольно много раз. Обычно это происходит, когда вы пытаетесь установить более новую версию уже установленного пакета (хотя это может произойти и в других более редких случаях).
Решение, которое я нашел до сих пор, - это вернуться к пути к вашей библиотеке т.е. местоположение на вашем компьютере, где установлен пакет (C:\Users\user_name\Documents\R\win-library\R_version
- путь по умолчанию в Windows) удалите соответствующую папку пакета, а затем снова установите пакет, как обычно, используя:
install.packages('rjson')
И это
Или вы могли бы сделать это программно в соответствии с комментарием @Thomas:
#get list of installed packages
inst_packages <- installed.packages()
if ("rjson" %in% inst_packages[, 1]) {
#uninstalls package
remove.packages("rjson")
#re-installs package
install.packages("rjson")
}
или даже лучше просто использовать:
if ("rjson" %in% inst_packages[, 1]) update.packages("rjson")
if ("rjson" %in% x[,"Package"]) { remove.packages("rjson"); install.packages("rjson") }
или даже лучше использоватьif ("rjson" %in% x[,"Package"]) update.packages("rjson")
– Thomas 22 September 2015 в 19:16