У меня есть еще один вопрос по GUI, на этот раз чуть более общий. Есть два
диалога которые надо сделать:
1. В "NM Model" есть режим автоматического поиска ошибок в исполняемой
программе. На слишком сложных фрагментах работает не очень хорошо, поэтому
должна быть возможность отключать его для диапазона адресов, или наоборот
включать только для заданного диапазона.
2. Есть также механизм задания правов доступа к памяти (в реальном железе
ничего такого нет, ибо DSP). Опять таки, надо сказать для каких диапазонов
доступ разрешен, а для каких нет.
Вопрос в том, как это наиболее удобно сделать. Варианты:
1. Список диапазонов для которых что-то разрешено (доступ, автоматический
поиск ошибок)
2. Список диапазонов для которых это же запрещено.
3. Два списка -- диапазонов для которых запрещено, и для которых разрешено.
Плюс опция, задающая какой список проверяется в первую очередь.
4. Для случая памяти возможно специальное решение -- список диапазонов,
покрывающих всю память, и для каждого -- тип доступа. См.
http://zigzag.cs.msu.su/~ghost/memory_ranges.png
При выборе колонки "Access" появляется drop-down box с варинтами доступа.
Если пользователь вручную уменьшает интервал для которого Access=Read, то на
свободном месте появляется новый диапазон с Access="No Access". Что
происходит если пользователь увеличивает размер диапазона, непонятно. То ли
двигать границы соседных диапазонов, то ли ругаться.
5. Для случая автоматических проверок программы, возможно использовать
разбиение программы на модули и показывать пользователю дерево вида
[ ] Entire program
[ ] Local files
[ ] foo.cpp
[ ] bar.asm
[ ] Libraries
[ ] libcrt
[ ] malloc.c
[ ] libvlib
[ ] vabs.asm
где можно выбрать или файл на самом нижнем уровне, или отдельную библиотеку,
или все файлы. Проблема здесь в том, что файлов на каждом уровне может быть
очень много (30, 50, 100), поэтому непонятно, насколько будет удобно.
Никто не знает готового решения или может что-нибудь предложить?
- Volodya