Форум программистов, компьютерный форум CyberForum.ru

Падает то не падает) APPCRASH StackHash PCH FROM ntdll - C++

Восстановить пароль Регистрация
 
 
Рейтинг: Рейтинг темы: голосов - 23, средняя оценка - 4.83
Ko
 Аватар для Ko
-65 / 5 / 0
Регистрация: 23.12.2011
Сообщений: 246
29.06.2013, 16:35     Падает то не падает) APPCRASH StackHash PCH FROM ntdll #1
При работе приложения вызывается метод класса и с вероятностью 50/50 программа доживает до конца своей работы
при падении выдаётся вот такое

Сигнатура проблемы:
Имя события проблемы: APPCRASH
Имя приложения: XXX.exe
Версия приложения: 0.0.0.0
Отметка времени приложения: 51cea425
Имя модуля с ошибкой: StackHash_69fe
Версия модуля с ошибкой: 6.2.9200.16384
Отметка времени модуля с ошибкой: 5010acd2
Код исключения: c0000374
Смещение исключения: PCH_78_FROM_ntdll+0x0000000000002BEA
Версия ОС: 6.2.9200.2.0.0.256.48
Код языка: 1049
Дополнительные сведения 1: 69fe
Дополнительные сведения 2: 69fe067f15cbd711de9a06a551d3dadd
Дополнительные сведения 3: f975
Дополнительные сведения 4: f975cbc478b921e800650d05b62c8dd7

Ознакомьтесь с заявлением о конфиденциальности в Интернете:
http://go.microsoft.com/fwlink/?linkid=190175

Памяти приложение жрет в районе 1-3 гигов

вот кусок кода где падает
смысл этого метода это добавление в картатеку определенного номера
по ходу дела когда размер массива "Fast_Cross_Size_Max" превышает то выделяется больше кусок памяти
начальное значение Fast_Cross_Size_Max = 5 у Fast_Cross_Size = 0

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
void Element::Add_New_Cross_Сompatible( unsigned int &_Add_Cross_ )
{
    if ( Fast_Cross_Size < Fast_Cross_Size_Max-1 )
    {
        Fast_Cross_Сompatible[Fast_Cross_Size] = _Add_Cross_;
        Fast_Cross_Size++;
    }
    else
    {
        Fast_Cross_Size_Max *= 2;
        unsigned int *temp_fast = new unsigned int[Fast_Cross_Size_Max];
        for (int i = 0; i < Fast_Cross_Size; i++)
        {
            temp_fast[i] = Fast_Cross_Сompatible[i];
        }
        delete[]Fast_Cross_Сompatible; <= падает тут когда я вытаюсь удалить эту памяти. почему я не могу понять
        Fast_Cross_Сompatible = new unsigned int[Fast_Cross_Size_Max];
        for (int i = 0; i < Fast_Cross_Size; i++)
        {
            Fast_Cross_Сompatible[i] = temp_fast[i];
        }
        Fast_Cross_Сompatible[Fast_Cross_Size] = _Add_Cross_;
        Fast_Cross_Size++;
        delete[]temp_fast;
    }
}
в компе 20 гигов памяти, память уже 10 раз проверял error не обнаружено, программа неделями работала пока я не добавил вот этот кусок кода, пожалуйста выскажитесь по этому поводу что думаете
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.06.2013, 16:35     Падает то не падает) APPCRASH StackHash PCH FROM ntdll
Посмотрите здесь:

C++ Приложение падает на другом компе
C++ std::random_device падает приложение
C++ Программа падает при чтении из файлов
C++ Падает программа
C++ Почему падает программа?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ko
 Аватар для Ko
-65 / 5 / 0
Регистрация: 23.12.2011
Сообщений: 246
01.07.2013, 14:25  [ТС]     Падает то не падает) APPCRASH StackHash PCH FROM ntdll #21
да подаётся строчка там уникальные значения, я сейчас проверяю всё что только можно

Добавлено через 1 минуту
я работаю с visual studio 2012 при стандартном компиляторе падение на 11% если спользовать intel компилятор то падает скорость на 40% да и я сейчас пишу для обычного процессора дальше надо делать под xeon phi там с векторами не попрыгаешь)

Добавлено через 3 минуты
я всё таки думаю что ошибка связана с файлом ntdll

Добавлено через 38 секунд
максимум в массиве я наблюдаю где то предел до 60000

Добавлено через 1 минуту
точнее компилятор intel очень быстро работает и если использовать любую другую схему то падение от 11% до 40

Добавлено через 2 часа 42 минуты
походу дело всё в векторе в который я упакавал свои элементы
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
01.07.2013, 16:17     Падает то не падает) APPCRASH StackHash PCH FROM ntdll #22
Цитата Сообщение от Ko Посмотреть сообщение
при таком коде думаешь не будет утечки памяти к temp_fast ведь выделяется там указатель, это пусть 4 байта или сколько там он выделяет то это если сделать 1 миллиард раз будет 4 миллиарда байтов заблокировано( хотя я тесты делал вроде нет утечки, но это односложный тест был
Указатель локальный, память под самим указателем сободна при выходе из функции (что в первом коде, что в этом).
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.07.2013, 20:47     Падает то не падает) APPCRASH StackHash PCH FROM ntdll
Еще ссылки по теме:

C++ Падает программа при использовании DLL
Программа падает без printf C++
Приложение падает при удалении синглтона C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Ko
 Аватар для Ko
-65 / 5 / 0
Регистрация: 23.12.2011
Сообщений: 246
02.07.2013, 20:47  [ТС]     Падает то не падает) APPCRASH StackHash PCH FROM ntdll #23
Цитата Сообщение от alsav22 Посмотреть сообщение
Указатель локальный, память под самим указателем сободна при выходе из функции (что в первом коде, что в этом).
да вот спасибо Вы мне ответили на мой вопрос))) теперь всё супер, саму схему сделал, она оказалась в работе на 2-3 раза медленней следовательно в баге разбираться нет смысла, просто удалю эту версию.
Yandex
Объявления
02.07.2013, 20:47     Падает то не падает) APPCRASH StackHash PCH FROM ntdll
Ответ Создать тему
Опции темы

Текущее время: 05:19. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru