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

start [/forum/topic.php?fid=58&msg=39674510&tid=2040617]: |
0ms |
get settings: |
11ms |
get forum list: |
19ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
209ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
58ms |
get tp. blocked users: |
1ms |
| others: | 232ms |
| total: | 552ms |

| 0 / 0 |
