Jika Anda mengkompilasi dengan optimasi yang diaktifkan, maka banyak variabel akan dihapus; sebagai contoh:
SomeType value = GetValue();
DoSomething(value);
di sini variabel lokal value
biasanya akan dihapus, menjaga nilai pada stack - agak seperti seolah-olah Anda telah menulis:
DoSomething(GetValue());
Juga, jika nilai kembali tidak digunakan sama sekali , maka akan dijatuhkan melalui "pop" (daripada disimpan di lokal melalui "stloc", dan sekali lagi; lokal tidak akan ada).
Karena itu, dalam build seperti itu debugger tidak bisa mendapatkan nilai saat ini value
karena tidak ada - hanya ada untuk sekejap antara GetValue()
danDoSomething(...)
.
Begitu; jika Anda ingin men-debug ... jangan gunakan rilis build! atau setidaknya, nonaktifkan optimisasi saat Anda debug.
Cannot obtain value of local or argument '<this>' as it is not available at this instruction pointer, possibly because it has been optimized away. System.Threading.Tasks.TaskExceptionHolder