Zine.net online

Witaj na Zine.net online Zaloguj się | Rejestracja | Pomoc
w Szukaj

mgrzeg.net - Admin on Rails :)

Lokalizacja !error i krótkie przypomnienie

Dziś krótko: mały hint + drobne przypomnionko. Zacznijmy od cHincika ;)

1. Hint

Używając WinDbg na polskiej wersji językowej możemy oglądać komunikaty podobne do tego:

0:041> !gle
LastErrorValue: (Win32) 0 (0) - Operacja uko czona pomy lnie.
LastStatusValue: (NTSTATUS) 0xc000000d - Do us

0:041> !error 0xc000000d
Error code: (NTSTATUS) 0xc000000d (3221225485) - Do us

I o ile w przypadku LastErrorValue mamy tekst, z którego polskie znaki zostały po prostu usunięte i bez większego problemu możemy się domyśleć o co chodzi, to jednak LastStatusValue (także w wersji bezpośredniej z użyciem !error) nie daje nam tej szansy. A więc - albo sięgamy po zewnętrzny tool (do samodzielnego napisania w 5 min. po sięgnięciu po funkcję FormatMessage), albo:

0:041> .locale polish
Locale: Polish_Poland.1250
0:041> !gle
LastErrorValue: (Win32) 0 (0) - Operacja ukończona pomyślnie.
LastStatusValue: (NTSTATUS) 0xc000000d - Do usługi lub funkcji przekazano nieprawidłowy parametr.
0:041> !error 0xc000000d
Error code: (NTSTATUS) 0xc000000d (3221225485) - Do usługi lub funkcji przekazano nieprawidłowy parametr.

Możemy użyć również wersji .locale .1250, co przyniesie ten sam efekt.

2. Przypomnienie

Kilka lat temu pisałem o kodzie wyjątku zgłaszanego do SEH przez CLR: [KLIK]

Od wersji .NET 4.0 mamy zmianę:

0:000> kb
  *** Stack trace for last set context - .thread/.cxr resets it
 # ChildEBP RetAddr  Args to Child             
00 002eed38 67c52a42 e0434352 00000001 00000005 KERNELBASE!RaiseException+0x58
01 002eeddc 67c5337f 00000000 4c18c1b5 002eeee0 clr!RaiseTheExceptionInternalOnly+0x276

0:000> .formats e0434352
Evaluate expression:
  Hex:     e0434352
  Decimal: -532462766
  Octal:   34020641522
  Binary:  11100000 01000011 01000011 01010010
  Chars:   .CCR
  Time:    ***** Invalid
  Float:   low -5.62807e+019 high 0
  Double:  1.85892e-314

A zatem: dla wersji .NET 4.0+ szukajcie w dumpach wyjątków o kodzie .CCR, a dla wcześniejszych - .COM

Zestawienie innych ciekawych kodów można znaleźć w Community Additions pod opisem StackOverflowException: [KLIK]

Opublikowane 12 stycznia 2015 13:45 przez mgrzeg

Powiadamianie o komentarzach

Jeżeli chciałbyś otrzymywać email gdy ta wypowiedź zostanie zaktualizowana, to zarejestruj się tutaj

Subskrybuj komentarze za pomocą RSS

Komentarze:

 

Bartosz Wójcik said:

Myślę, że są to tak niszowe rzeczy, że tylko spambot wyżej postanowił coś skomentować :)

lutego 11, 2015 01:54
 

mgrzeg said:

Ech, dzięki za czujność. Usunięte (przynajmniej u mnie)

lutego 11, 2015 12:35

Co o tym myślisz?

(wymagane) 
(opcjonalne)
(wymagane) 

  
Wprowadź kod: (wymagane)
Wyślij

Subskrypcje

W oparciu o Community Server (Personal Edition), Telligent Systems