Member 12478311 Ответов: 1

Неожиданный сбой приложения .net windows


Я получаю .net-приложение аварийно завершает работу.
Мой код и все выглядит нормально.

Я действительно изо всех сил пытаюсь понять это

Я получил нижеприведенную информацию из файла дампа (. dmp).

он
PID__4120__Date__08_29_2016_Time_11_13_58AM__139__Second_Chance_Exception_C0000005.dmp the assembly instruction at ntdll!RtlpLowFragHeapFree+c5 in C:\Windows\System32\ntdll.dll from Microsoft Corporation has caused an access violation exception (0xC0000005) when trying to write to memory location 0x00000000 on thread 0


Что я уже пробовал:

Пожалуйста, помогите мне решить эту проблему...

Это сводит меня с ума..

Спасибо.

ZurdoDev

Как мы можем помочь с такой небольшой информацией?

PureNsanity

Эта ошибка, скорее всего, будет глубоко в стеке вызовов. При отладке убедитесь, что параметры исключения установлены так, чтобы выбрасывать все исключения, так что, надеюсь, во время отладки вы сможете увидеть, откуда это происходит.

Dave Kreskowiak

Ну, похоже, что ваш код пытался освободить блок памяти, который уже был освобожден, или он пытался освободить блок памяти, который ему не принадлежал.

Кроме этого, ничего полезного вам сказать невозможно. Мы понятия не имеем, как выглядит ваш код, и никакой информации о том, какая строка кода вызывает исключение.

Philippe Mori

Можно ли его воспроизвести? Если это так, посмотрите на доступную информацию при возникновении ошибки с помощью отладчика.

Foothill

Ну, для начала, 0x00000000-это зарезервированный адрес в Windows, так как это нулевой адрес. Большинство программистов на языке Си инициализируют указатели на нулевой адрес, поэтому программы умирают таким образом, чтобы было ясно, что они забыли присвоить чему-то важному значение. Поскольку вы получаете именно эту ошибку, я бы начал с поиска любых точек, в которых код переходит от .Net-управляемого к Win32-нативному, например System.IO, и убедитесь, что все параметры вызова верны.

1 Ответов

Рейтинг:
2

Patrice T

Вы должны научиться использовать отладчик как можно скорее. Вместо того чтобы гадать, что делает ваш код, пришло время увидеть, как он выполняется, и убедиться, что он делает то, что вы ожидаете.

Отладчик позволяет вам следить за выполнением строка за строкой, проверять переменные, и вы увидите, что есть точка, в которой он перестает делать то, что вы ожидаете.
Отладчик-Википедия, свободная энциклопедия[^]
Освоение отладки в Visual Studio 2010 - руководство для начинающих[^]
http://docs.oracle.com/javase/7/docs/technotes/tools/windows/jdb.html[^]
https://www.jetbrains.com/idea/help/debugging-your-first-java-application.html[^]

Отладчик здесь для того, чтобы показать вам, что делает ваш код, и ваша задача-сравнить его с тем, что он должен делать.
Когда код не делает того, что ожидается, вы близки к ошибке.

Вам нужно найти, где происходит исключение в вашем коде.
Поскольку отладчик позволяет запускать вашу программу шаг за шагом, она не должна быть слишком сложной.