т.е. опять таки любимый xor и доступ к 0x10. Разумеется, приведенный C++ фрагмент при выполнении туда никогда не попадет. Но зачем оно такое генерит вообще?
Реальный случай (когда таки попадает) связан с использованием FreeImageLib, при генерации тумбнэйла на вход подаются кривые данные. И вот такой привет.
N>std::vector<unsigned int> vec;
N>unsigned int d = 1;
N>vec.push_back(d);
N>
У меня это отработало без багов и как ожидалось.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[3]: MS Visual Studio 2008, STL
От:
Аноним
Дата:
07.11.08 15:13
Оценка:
Здравствуйте, Novik65, Вы писали:
N>Здравствуйте, remark, Вы писали:
R>>Минимальный фрагмент кода, как ты создаёшь и используешь std::vector, не помешал бы.
[кусь]
N>т.е. опять таки любимый xor и доступ к 0x10. Разумеется, приведенный C++ фрагмент при выполнении туда никогда не попадет. Но зачем оно такое генерит вообще? N>Реальный случай (когда таки попадает) связан с использованием FreeImageLib, при генерации тумбнэйла на вход подаются кривые данные. И вот такой привет.
Так может все-таки покажешь какой реальный случай приводит к проблеме?
Здравствуйте, Novik65, Вы писали:
N>Приветствую. N>Проект скомпилирован с Maximize Speed (/O2) и Only __inline (/Ob1). Получаю такое вот забавное раскрытие insert:
N>
В коде вроде нет перехода на точку 004A0ACE.
А перед ней, судя по всему, вызов функции, которая не должна вернуться в исходную точку.
Я бы посмотрел, что делает эта функция.
Здравствуйте, rus blood, Вы писали:
RB>В коде вроде нет перехода на точку 004A0ACE.
Есть, смотрите внимательнее. Достаточно, чтобы не отработал jne по адресу 004A0AC6.
RB>А перед ней, судя по всему, вызов функции, которая не должна вернуться в исходную точку. RB>Я бы посмотрел, что делает эта функция.
Я не только посмотрел, но и использовал ее. Это перехватчик случая "некорректный параметр передан в CRT функцию", он вполне себе перекрывается (см. _set_invalid_parameter_handler) и таки да, предполагает нормальный возврат. Причем этот самый возврат предполагается даже в случае умолчательной реализации обработчика (всплыв стандартного окошка Abort/Retry/Continue).
RB>Проблема возникает на некорректных данных?
Да. Но по понятной причине до обработки (т.е. выкидывания соотв. исключения) речь не доходит.
N>Причем этот самый возврат предполагается даже в случае умолчательной реализации обработчика (всплыв стандартного окошка Abort/Retry/Continue).
Однако, написал, и таки засомневался. Надо в понедельник посмотреть подробнее, возможно, что с предположением предполагаемого невозврата из обработчика Вы правы. Хотя из документации этого не следует.
Re[4]: MS Visual Studio 2008, STL
От:
Аноним
Дата:
11.11.08 13:27
Оценка:
Здравствуйте, Novik65, Вы писали:
N>>Причем этот самый возврат предполагается даже в случае умолчательной реализации обработчика (всплыв стандартного окошка Abort/Retry/Continue).
N>Однако, написал, и таки засомневался. Надо в понедельник посмотреть подробнее, возможно, что с предположением предполагаемого невозврата из обработчика Вы правы. Хотя из документации этого не следует.
Господи!!! молодой человек, ну Вас же проcили показать реальным пример (С++ код)
того ГДЕ у Вас проявляется ошибка.
КОД показать, а не то ассемблерное замудрение, что Вы выложили..
С++ код, то, что Вы набивали в редакторе с *.cxx файле.
Просто С++ код.
Re[5]: MS Visual Studio 2008, STL
От:
Аноним
Дата:
14.11.08 09:50
Оценка:
Здравствуйте, Аноним, Вы писали:
А>Господи!!! молодой человек, ...
Здравствуйте, Аноним, Вы писали: А>Господи!!! молодой человек, ну Вас же проcили показать реальным пример (С++ код) А>того ГДЕ у Вас проявляется ошибка. А>КОД показать, а не то ассемблерное замудрение, что Вы выложили..
1) Вы мне льстите. Молодым человеком, к сожалению, я был лет эдак 20 назад.
2) Я показал то, что меня интересовало. И таки ответ получил.
3) Если для Вас это "замудрение" — зачем Вы лезете в тему?