Сейчас на форуме: UniSoft, bartolomeo (+6 невидимых)

 eXeL@B —› Программирование —› вопрос о проффесиональном отлове ошибок
Посл.ответ Сообщение

Ранг: 29.3 (посетитель)
Активность: 0.020
Статус: Участник

Создано: 28 ноября 2010 15:53 · Поправил: SeregaZ
· Личное сообщение · #1

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

и решил, я, значит, создать одну програмку, и работаю над ней уже прилично много. и вот незадача в последнее время постоянно стала вылазить ошибка:
инструкция по адресу "0x004179a2" обратилась к памяти по адресу "0x01982000". Память не может быть "read".

в языке программирования как бы есть дебаггер, он обычно пишет в какой строке ошибка и все такое, вот незадача - запуская оттуда, программа работает как полагается. делаешь ехе файл, запускаешь - то тут лотерея 50 на 50 - захочет будет работать, не захочет не будет работать.

поскольку адрес все время одинаковый, я так полагаю этот самый косяк живет в одном каком-то определенном месте. вот собственно вопрос - каким образом можно выяснить в каком? есть ли какие-либо внешние програмки, которые могут подсказать где капать?

на официальном форуме этого самого языка уже был. буржуи посоветовали, сделал, не помогло. весь код им естественно выложить не могу, так как там очень много этого самого кода, и местами авторская разработка (гордо шмыгнул носом). поскольку хочет работает, а хочет не работает - я делаю вывод что явной ошибки в коде нет.

суть в чем - это маленький сервер, при запросе какого-либо файла - он сперва читает внутри ехе файла, если там файла нет, то читает во внешнем архивном файла (типа rar), если и там нет, то читает из третьего архива страничку 404 и выдает пользователю. я думаю может быть порой этот маленький сервер просто не успевает обработать большое количество файлов при запросе и поэтому такая лотерея.




Ранг: 355.4 (мудрец), 55thx
Активность: 0.320
Статус: Uploader
5KRT

Создано: 28 ноября 2010 16:02
· Личное сообщение · #2

Cплошняком не очень удобно читать



инструкция по адресу "0x004179a2" обратилась к памяти по адресу "0x01982000". Память не может быть "read".

Что за язык? Пример кода. Отладчик в студии очень мощный им удобно отлаживать.

-----
Gutta cavat lapidem. Feci, quod potui. Faciant meliora potentes




Ранг: 29.3 (посетитель)
Активность: 0.020
Статус: Участник

Создано: 28 ноября 2010 16:06
· Личное сообщение · #3

текст разбил, язык - Pure Basic, пример кода? эээм... это сложно. и что за студия?




Ранг: 355.4 (мудрец), 55thx
Активность: 0.320
Статус: Uploader
5KRT

Создано: 28 ноября 2010 16:48
· Личное сообщение · #4

Мда, бэйсик конечно не ахти, изучайте ассемблер, С/С++, делфи

-----
Gutta cavat lapidem. Feci, quod potui. Faciant meliora potentes




Ранг: 29.3 (посетитель)
Активность: 0.020
Статус: Участник

Создано: 28 ноября 2010 17:11
· Личное сообщение · #5

ну... мне нравится. кстати скачал этот бейсик отсюда. плюс школьная база (корвет), плюс домашнее изучение спектрума

кажись нашел я в чем дело. тут архив построен не по русски при сжатии не сохраняются пути и названия файлов. архив построен так:
1 файл - тхт с одной строкой - название первого файла в архиве
2 файл - 1 файл в архиве
3 файл - тхт с названием второго файла
4 файл - 2 файл в архиве
...

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



Ранг: 65.3 (постоянный), 10thx
Активность: 0.020
Статус: Участник

Создано: 28 ноября 2010 18:47
· Личное сообщение · #6

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



Ранг: 237.0 (наставник), 20thx
Активность: 0.130
Статус: Участник
sysenter

Создано: 30 ноября 2010 16:25 · Поправил: HiEndsoft
· Личное сообщение · #7

На сколько помнится в бейсике вообще нет многопоточности. Зато есть встроенный SEH (On Error Resume Next, On Error Goto...) и поддержка API (=>можно заюзать к примеру AddVectoredExceptionHandler\RtlAddVectoredExceptionHandler)...

-----
продавец резиновых утёнков





Ранг: 533.6 (!), 232thx
Активность: 0.450
Статус: Uploader
retired

Создано: 30 ноября 2010 17:10
· Личное сообщение · #8

HiEndsoft пишет:
На сколько помнится в бейсике вообще нет многопоточности

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

-----
Лучше быть одиноким, но свободным © $me




Ранг: 237.0 (наставник), 20thx
Активность: 0.130
Статус: Участник
sysenter

Создано: 30 ноября 2010 17:17 · Поправил: HiEndsoft
· Личное сообщение · #9

<DEL>
да в PureBasic есть (перепутал с VB), тогда SetUnhandledExceptionFilter и вообще ТС тогда сюда: forums.purebasic.com/english/

-----
продавец резиновых утёнков




Ранг: 309.8 (мудрец), 21thx
Активность: 0.170
Статус: Участник

Создано: 30 ноября 2010 18:07
· Личное сообщение · #10

HiEndsoft иди кейлогер на масме доделывай)))

-----
Shalom ebanats!




Ранг: 40.4 (посетитель), 3thx
Активность: 0.080
Статус: Участник

Создано: 30 ноября 2010 20:13
· Личное сообщение · #11

Вы не на тот форум попали. По Pure Basic`у много различных сайтов. Но без кода вам врятли кто-то поможет, если только советом.



Ранг: 29.3 (посетитель)
Активность: 0.020
Статус: Участник

Создано: 01 декабря 2010 15:02
· Личное сообщение · #12

как это не на тот? очень даже на тот! порой форум нужен исключительно чтобы сформулировать в виде текста свою проблему, и потом когда видишь свой же пост - тебя осеняет и дело двигается с мертвой точки

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

да и tomac высказал хорошую мысль насчет абы какого выполнения потоков, но я вроде предусмотрел все опасные места. а говорите не тот форум не тот форум очень даже тот! писал сюда в надежде на подсказку какого-либо дебагера или программки, которые все мне по полкам разложат. кстати буду еще писать сюда... про нод32 хочу кой что узнать




Ранг: 355.4 (мудрец), 55thx
Активность: 0.320
Статус: Uploader
5KRT

Создано: 01 декабря 2010 17:36 · Поправил: Coderess
· Личное сообщение · #13

SeregaZ
очень даже тот! писал сюда в надежде на подсказку какого-либо дебагера или программки

Это по теме - заходи в раздел скачать http://exelab.ru/download.php

про нод32 хочу кой что узнать

А вот это уже не по теме, в саппорт

-----
Gutta cavat lapidem. Feci, quod potui. Faciant meliora potentes




Ранг: 29.3 (посетитель)
Активность: 0.020
Статус: Участник

Создано: 02 декабря 2010 03:13
· Личное сообщение · #14

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


 eXeL@B —› Программирование —› вопрос о проффесиональном отлове ошибок
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


Максимальный размер аттача: 500KB.
Ваш логин: german1505 » Выход » ЛС
   Для печати Для печати