Форум программистов, компьютерный форум, киберфорум
Наши страницы
C для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
k1-801
4 / 4 / 6
Регистрация: 07.01.2013
Сообщений: 136
1

Swprintf - Unhandled page fault on read Access

05.06.2014, 13:48. Просмотров 580. Ответов 8
Метки нет (Все метки)

Из-за некоторых проблем, возникающих только под windows (см. предыдущую тему), пришлось использовать для windows тип wchar_t (строки wchar_t*).
Проблема в следующем: нужно записать в буфер (wchar_t *buf = calloc(wcslen(wtexpath) + wcslen(d_name) + 1, sizeof(wchar_t))) содержимое строк wtexpath и d_name. По аналогии обычными char* строками, которые для остальных систем соединяются sprintf'ом, пытался соединить с помощью swprintf. Результат - Unhandled page fault on read access <какой-то адрес> to <ещё какой-то адрес>.
Вызов swprintf:
C
1
swprintf(buf, wcslen(wtexpath) + wcslen(d_name), L"%ls%ls", wtexpath, d_name);
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.06.2014, 13:48
Ответы с готовыми решениями:

Перегрузка assing operator. Unhandled exception at 0x103157aa (msvcr100d.dll) in 1exColonSynt_withColonSynt.exe: 0xC0000005: Access violation read
Значит есть линия (класс Line ) , которая состоит из точек (Class Point). Хочется Одной линии...

Ошибка вида "Unhandled exception thrown: read access violation"
Использую парсер tinyXML2. Программа собирается в режиме Debug. При запуске ее из студии - все...

Page fault or other explain
В общем имеется программа которая через буффер считывает файл и передает его в stdout из...

Page-fault-in-nonpaged-area
Доброго времени суток! При загрузки фотографий в вк(бпросто прикрепление к сообщению) появляется...

Проблема: Page fault in non paged area
Доброго времени суток, форумчане. Приключилась со мной печальная ситуация, но все по порядку. У...

8
k1-801
4 / 4 / 6
Регистрация: 07.01.2013
Сообщений: 136
08.06.2014, 22:59  [ТС] 2
Временно заменено на пару wcscat'ов. Есть другие решения?
0
Убежденный
Ушел с форума
Эксперт С++
16149 / 7296 / 1182
Регистрация: 02.05.2013
Сообщений: 11,637
Записей в блоге: 1
Завершенные тесты: 1
08.06.2014, 23:26 3
Цитата Сообщение от k1-801 Посмотреть сообщение
По аналогии обычными char* строками, которые для остальных систем соединяются sprintf'ом, пытался соединить с помощью swprintf. Результат - Unhandled page fault on read access <какой-то адрес> to <ещё какой-то адрес>.
Я бы для начала проверил, где именно происходит fault - на swprintf или на wcslen.
Или вообще где-то в другом месте. Код-то правильный, только надо одно
дополнительное место для символа:

swprintf(buf, wcslen(wtexpath) + wcslen(d_name) +1, L"%ls%ls", wtexpath, d_name);
0
k1-801
4 / 4 / 6
Регистрация: 07.01.2013
Сообщений: 136
09.06.2014, 12:04  [ТС] 4
Цитата Сообщение от Убежденный Посмотреть сообщение
одно
дополнительное место для символа:
Да хоть десять дополнительных - упадёт.
wcslen работает, выводил printf'ом.
0
09.06.2014, 12:04
Убежденный
Ушел с форума
Эксперт С++
16149 / 7296 / 1182
Регистрация: 02.05.2013
Сообщений: 11,637
Записей в блоге: 1
Завершенные тесты: 1
09.06.2014, 19:10 5
Цитата Сообщение от k1-801 Посмотреть сообщение
Да хоть десять дополнительных - упадёт.
Не верю !
Приведите минимальный код, воспроизволящий проблему.
0
k1-801
4 / 4 / 6
Регистрация: 07.01.2013
Сообщений: 136
10.06.2014, 14:41  [ТС] 6
Цитата Сообщение от Убежденный Посмотреть сообщение
Приведите минимальный код, воспроизволящий проблему.
Вот это несколько проблематично: ошибка возникает при компиляции MinGW от (и из) кодблокса под вайном. При компиляции обычным gcc этот участок не подключается, хотя если подключить (исключив оттуда сугубо windowsские функции) - проходит.

Добавлено через 2 часа 56 минут
Сделал буфер больше на 20 символов, размер буфера предоставляемый swprintf'у на 10, хоть бы что-то изменилось.
0
Убежденный
Ушел с форума
Эксперт С++
16149 / 7296 / 1182
Регистрация: 02.05.2013
Сообщений: 11,637
Записей в блоге: 1
Завершенные тесты: 1
10.06.2014, 18:57 7
Цитата Сообщение от k1-801 Посмотреть сообщение
Вот это несколько проблематично: ошибка возникает при компиляции MinGW от (и из) кодблокса под вайном. При компиляции обычным gcc этот участок не подключается, хотя если подключить (исключив оттуда сугубо windowsские функции) - проходит.
А как на счет запустить exe под отладчиком, дойти до того места, где
падает, вплоть до машинных команд, и выяснить, в чем там дело ?
0
k1-801
4 / 4 / 6
Регистрация: 07.01.2013
Сообщений: 136
10.06.2014, 19:26  [ТС] 8
Цитата Сообщение от Убежденный Посмотреть сообщение
А как на счет запустить exe под отладчиком, дойти до того места, где
падает, вплоть до машинных команд, и выяснить, в чем там дело ?
Если бы всё было так просто.
Не работает отладчик под вайном. Никак.
0
Убежденный
Ушел с форума
Эксперт С++
16149 / 7296 / 1182
Регистрация: 02.05.2013
Сообщений: 11,637
Записей в блоге: 1
Завершенные тесты: 1
10.06.2014, 19:31 9
Ну тогда так: SetUnhandledExceptionFilter, определить свой обработчик.
Когда упадет, обработчик будет вызван. В нем сделать крэш-дамп через
MiniDumpWriteDump, а затем открыть этот дамп в WinDbg на другом компе,
где есть Windows. Если и этого сделать нельзя, тогда я пас
0
10.06.2014, 19:31
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.06.2014, 19:31

Ошибка «PAGE FAULT IN NON PAGED AREA»
Здравствуйте у меня такая ошибка уже 2 раз вообщем в первый раз я просто переустановил винду но вот...

============PAGE FAULT===========" что это?
Добрый вечер. Постараюсь вкратце описать возникающую проблему: не так давно я перезагрузил...

Синий экран page fault in nonpaged area
Добрый вечер! Нужна помощь ваша. Даже не знаю ... что здесь. Постоянно вылетает &quot;Синий экран&quot;(но...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru