оТСЛЕДИТЬ иСПОЛЬЗОВАНИЕ пАМЯТИ пРОГОЙ
написанная на Билдере(если важно - моделирование машины Тьюринга)...
Требуется каким-либо образом отследить ее память(чтение\запись) и отображать
все изменения переменных в процессе работы программы на карте, подобной
SpeedDisk'у... Также необходимо отображать адреса изменяемых переменных и
выполняемую строку программы...
Пока что есть идеи только увеличить код первоначальной программы раза в три,
путем добавления оператора вывода содержимого строки после каждой строчки
программы, а также перерисовки карты после любой операции. но, по-моему, это
все как-то неправильно(в программе присутствует и динамическая память)..
Заранее спасибо
В любом случае писать нужно свой класс, выделяющий память по требованию и протоколирующий каждое выделение.
Вы хотите показывать состояние физической памяти компьютера при выполнении Вашей программы, моделирующей машину Тьюринга, или всё же состояние модельной памяти этой машины?
В любом случае писать нужно свой класс, выделяющий память по требованию и протоколирующий каждое выделение.
я спать хочу, а эту фигню хочет препод:)) Насколько я понимаю нужно физическую память, т.е. тот кусок, куда прога пишет свои данные(препод не понисает, что они могут писаться совсем в разные места)... Модельная память и так отображается:)
Ну класс - это еще ладно, но как это осуществить... возьмем к примеру цикл for(int i=0;i<10;i++){/*something*/}. Мне что, нужно сделать i членом этого класса, перед началом цикла выделять ему память и отображать на карте, в конце каждой итерации висать в него i+1 и опять отображать, а в начале следующей итерации сравнивать с 10(отоббражая опять-таки чтение из данных ячеек памяти)??
Можно конечно и так, но это такой геморрой... По другому никак?? И что делать с тем, что нужно выводить выполняемую строчку..
ЗЫ: кстати, если это поможет, темой лабы есть "Штрих-операция", т.е. отображение памяти на что-то там...
А так, поищите в нете примеры написания самораспечатывающихся программ, хоть это и муть, причём та ещё.
Мне всё-таки кажется, что нужно показывать состояние модельной памяти и выводить очередную строку модельной программы, выполняемой на моделируемой машине Тьюринга. Т.о. Ваша задача - написать эмулятор машины Тьюринга и интерпретатор её входного языка. Не думаю, что задача заключается в отслеживании билдеровских переменных и распечатке строк билдеровской же программы.
А так, поищите в нете примеры написания самораспечатывающихся программ, хоть это и муть, причём та ещё.
Неа... все, что может быть связано с модельной памятью у меня и так отражается... Предлагаю так: забудьте о содержании программы, пусть это будет "Hello world", надо показать использование этой прогой памяти... В случае с Билдером - на код формы, кнопок и иже с ними надо забить... Т.Е. показать каким-то образом мои переменные в памяти(соответственно их адресам), чтение\запись в них отображать различными цветами... Похоже, стоит таки склониться к варианту, написанному мной в первой мессаге..:(
Неа... все, что может быть связано с модельной памятью у меня и так отражается... Предлагаю так: забудьте о содержании программы, пусть это будет "Hello world", надо показать использование этой прогой памяти... В случае с Билдером - на код формы, кнопок и иже с ними надо забить... Т.Е. показать каким-то образом мои переменные в памяти(соответственно их адресам), чтение\запись в них отображать различными цветами... Похоже, стоит таки склониться к варианту, написанному мной в первой мессаге..:(
Вообще, являясь в этой сфере новичком, хотел бы заметить, что если В случае с Билдером - на код формы, кнопок и иже с ними надо забить... , то это сводится к довольно простой программке на С, которая распечатывает адреса ячеек памяти определенных переменных, или я не прав?
Ради интереса, не могли бы Вы привести задание дословно. Очень меня эта Ваша задача заинтриговала. И ещё: какой курс, какая специальность, какое учебное заведение, что за преподаватель - академик или практик.
да в том-то все и дело - не мог... препод - чистейший теоретик, к тому же не может сам четко сформулировать задачу - у него 7 пятниц на неделе... В общем виде так - отследить работу программы с памятью(чтение\запись), наглядно отобразить эти операции... что-то там было про штрих-операцию, но я к сожалению не помню точно, смогу сказать только через пару дней... курс - 3, ВУЗ - Днепропетровский ж\д универ, специальность "ПО автоматизированнных систем"
...сводится к довольно простой программке на С, которая распечатывает адреса ячеек памяти определенных переменных, или я не прав?
не только это... нужно показывать r\w в память во время всего времени работы программы... возможно нужна даже пошаговое выполнение, но это уже занадто.. обойдутся... т.е. выше я описывал приблизительно способ выполнения этой работы, но просто хотелось бы что-нить попроще и поумней...