
Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
11.07.2018, 23:59
|
|||
|---|---|---|---|
|
|||
Как отладчик получает текстовое представление элементов множества? |
|||
|
#18+
Доброй ночи! Подскажите пожалуйста, а как отладчик получает текстовое представление элементов множества? Я объявил перечисление и множество: Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. Я могу получить текстовое представление run-time при помощи RTTI примерно так: Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. Но если я сделаю так: Код: pascal 1. 2. 3. 4. 5. То код перестаёт компилироваться с ошибкой: [dcc32 Error] : E2134 Type 'TMyEnum' has no type info И так же GetTypeData(TypeInfo(TMySet)).TypeData.CompType тоже равно nil. Но при этом отладчик всё равно в Watches показывает переменные типа TMyEnum и TMySet в виде имён. Как именно он это делает? Могу ли я делать так же run-time? Хотя тут мне больше любопытно, чем для практики... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
12.07.2018, 00:13
|
|||
|---|---|---|---|
|
|||
Как отладчик получает текстовое представление элементов множества? |
|||
|
#18+
Чародей УченикаКак именно он это делает? Через отладочную информацию в DCU файлах. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
12.07.2018, 00:24
|
|||
|---|---|---|---|
|
|||
Как отладчик получает текстовое представление элементов множества? |
|||
|
#18+
Инспектор объектов получает через RTTI. А через что получает отладчик я как-то просто не задумывался. Столкнувшись с фактом что инспектор навернулся, а отладчик как ни в чём не бывало получает, стало очевидно что последний - не из RTTI. Собственно я и предпологал что возможно в отладочной информации что-то могло остаться, только думал что берёт из exe. Точно из DCU? Ну а допустим у меня всё ещё имеются DCU, я их не удалял - могу ли в теории сделать run-time так же как отладчик? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
12.07.2018, 06:09
|
|||
|---|---|---|---|
Как отладчик получает текстовое представление элементов множества? |
|||
|
#18+
Чародей УченикаИнспектор объектов получает через RTTI. А через что получает отладчик я как-то просто не задумывался. Столкнувшись с фактом что инспектор навернулся, а отладчик как ни в чём не бывало получает, стало очевидно что последний - не из RTTI. Собственно я и предпологал что возможно в отладочной информации что-то могло остаться, только думал что берёт из exe. Точно из DCU? Ну а допустим у меня всё ещё имеются DCU, я их не удалял - могу ли в теории сделать run-time так же как отладчик? элементарно Код: pascal 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
12.07.2018, 09:52
|
|||
|---|---|---|---|
Как отладчик получает текстовое представление элементов множества? |
|||
|
#18+
C'est la vie. уверен, ты бы тоже не стал заморачиваться с такими клиентами, которые используют вместо приличного перечисления банальный набор констант. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
12.07.2018, 12:07
|
|||
|---|---|---|---|
|
|||
Как отладчик получает текстовое представление элементов множества? |
|||
|
#18+
Чародей УченикаНо если я сделаю так: Код: pascal 1. 2. 3. 4. 5. То код перестаёт компилироваться с ошибкой:Дырявые енумы не имеют TypeInfo ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
13.07.2018, 11:19
|
|||
|---|---|---|---|
|
|||
Как отладчик получает текстовое представление элементов множества? |
|||
|
#18+
defecatorэлементарно Код: pascal 1. 2. 3. 4. Что такое TSymbolType? white_niggerДырявые енумы не имеют TypeInfoНу а этот-то не "дырявый": Код: pascal 1. 2. 3. 4. 5. 6. И всё равно [dcc32 Error] : E2134 Type 'TMyEnum' has no type infoВидимо должно быть одновременно "не дырявый" и "с нуля". Но вопрос-то данной темы как бы не в этом... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
13.07.2018, 11:27
|
|||
|---|---|---|---|
Как отладчик получает текстовое представление элементов множества? |
|||
|
#18+
Чародей Ученикаdefecatorэлементарно Код: pascal 1. 2. 3. 4. Что такое TSymbolType? замени на EMyEnum ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
13.07.2018, 11:37
|
|||
|---|---|---|---|
|
|||
Как отладчик получает текстовое представление элементов множества? |
|||
|
#18+
Так об чём и речь в первом посте:Чародей Ученикакод перестаёт компилироваться с ошибкой: [dcc32 Error] : E2134 Type 'EMyEnum' has no type info И вопрос-то - а возможно run-time повторить способность отладчика? Ему type info видимо не нужен. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
13.07.2018, 12:59
|
|||
|---|---|---|---|
|
|||
Как отладчик получает текстовое представление элементов множества? |
|||
|
#18+
Чародей Ученикаа возможно run-time повторить способность отладчика? Можно: сделай ассоциативный массив имён своих констант. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
13.07.2018, 13:20
|
|||
|---|---|---|---|
|
|||
Как отладчик получает текстовое представление элементов множества? |
|||
|
#18+
При возможности/необходимости я бы мог это сделать. Это элементарно. Мне интересно как именно делает отладчик. Компилятор создаёт ассоциативный массив имён перечисления и прячет в отладочной информации, а отладчик как-то его находит и берёт из него? Если так, то как он его находит? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
13.07.2018, 13:29
|
|||
|---|---|---|---|
Как отладчик получает текстовое представление элементов множества? |
|||
|
#18+
Чародей Ученика, В exe-нике точно есть. Видимо, только ДСП :-( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
13.07.2018, 13:45
|
|||
|---|---|---|---|
|
|||
Как отладчик получает текстовое представление элементов множества? |
|||
|
#18+
оффтопCobalt747ДСП ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
13.07.2018, 14:09
|
|||
|---|---|---|---|
Как отладчик получает текстовое представление элементов множества? |
|||
|
#18+
Чародей УченикаКомпилятор создаёт ассоциативный массив имён перечисления и прячет в отладочной информации, а отладчик как-то его находит и берёт из него? Если так, то как он его находит? Очевидно, знает, где искать. Поищи описание отладочной информации, тоже будешь знать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
13.07.2018, 19:24
|
|||
|---|---|---|---|
Как отладчик получает текстовое представление элементов множества? |
|||
|
#18+
white_niggerЧародей УченикаНо если я сделаю так: Код: pascal 1. 2. 3. 4. 5. То код перестаёт компилироваться с ошибкой:Дырявые енумы не имеют TypeInfo Попахивает скерее дырявым TypeInfo и не полным RTTI. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
16.07.2018, 10:43
|
|||
|---|---|---|---|
Как отладчик получает текстовое представление элементов множества? |
|||
|
#18+
Dimonka, интересно, а как оно в других языках, например C#? Там есть TypeInfo, и такие "дырявые" множества? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
16.07.2018, 14:29
|
|||
|---|---|---|---|
Как отладчик получает текстовое представление элементов множества? |
|||
|
#18+
Мне кажется, это чисто паскалевская упрощалка-удобняшка типа массивов с регулируемым началом диапазона индекса, из-за которой в итоге больше проблем, нежели пользы ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=58&mobile=1&tid=2040617]: |
0ms |
get settings: |
7ms |
get forum list: |
9ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
193ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
42ms |
get tp. blocked users: |
1ms |
| others: | 218ms |
| total: | 485ms |

| 0 / 0 |
