Почему названия универсальных типов искажены в отслеживании стека.NET?

Я узнал решение. Это связано с проблемой с драйвером NVIDIA.

Поиск сообщений в /var/log/syslog, я обнаружил сообщение об ошибке, из которого я взял основные слова:

segfault ошибка 4 в libc-2.15.so compiz

А ищут на Google, и я нашел это сообщение:

катастрофические отказы Compiz с SIGSEGV после обновления 12,04

http://ubuntuforums.org/showthread.php?t=1966002&page=2

Так, проблема связана с собственными драйверами NVIDIAS. (Существует две опции от [1 112] Дополнительные Драйверы , ни один из них работы...), Отключение их приносит мне назад нормальную Единицу, которая, к сожалению, медленно работает по очевидным причинам. Вот почему я не получаю эту проблему, когда я использую живой usb: собственные драйверы не включены по умолчанию.

Теперь, мы должны ожидать, NVIDIA устраняет эту проблему...

7
задан Sam Harwell 2 September 2009 в 18:22
поделиться

1 ответ

Причина в том, что трассировка стека генерируется CLR, а не C #. Следовательно, он использует имена типов CLR вместо имен типов C #.

Имена типов, присвоенные универсальным типам в метаданных (как в C #, так и в VB.Net), имеют вид TypeName`Number, где

  • TypeName: Имя типа без общих параметров.
  • Number: Количество общие параметры для типа

Это также причина того, что законно иметь несколько общих классов с одинаковыми именами, но разным количеством общих параметров. На уровне CLR у них разные имена типов.

17
ответ дан 6 December 2019 в 11:50
поделиться
Другие вопросы по тегам:

Похожие вопросы: