PureBasic - форум

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » PureBasic - форум » Вопросы по PureBasic » Какая процедура вызвала текущую процедура


Какая процедура вызвала текущую процедура

Сообщений 1 страница 4 из 4

1

Ребят, такая задача - нужно понимать откуда пришёл вызов в процедуру, именно в своём разрабатываемом и отлаживаемом коде - речь не идёт о сторонних вызовах.
В нативе такого нет, и можно конечно создать инструмент для IDE, типа такого:

Код:
Global LP1251$ = ""
Macro _GLP : #PB_Compiler_Procedure + ~"  вызов из: \"" + LP1251$ + ~"\"": EndMacro

Procedure Proc1() : Protected THIS1251$ = LP1251$
  Debug _GLP
EndProcedure

Procedure Proc2() : Protected THIS1251$ = LP1251$
  Debug _GLP
  LP1251$ = #PB_Compiler_Procedure : Proc1() : LP1251$ = THIS1251$
  Debug ">" + _GLP
EndProcedure

Procedure Proc3() : Protected THIS1251$ = LP1251$
  Debug _GLP
  LP1251$ = #PB_Compiler_Procedure : Proc2() : LP1251$ = THIS1251$
  Debug ">" + _GLP
EndProcedure

LP1251$ = #PB_Compiler_Procedure : Proc3()

Вопрос к тому, что может кто-то знает, о уже существующем таком инструменте?

P.S. мне это для отладки и поможет лучше понимать движение, что откуда и куда. На множественных событиях, это очень нужная штука. Я даже думаю, хорошо было бы видеть стек вызовов в определённом диапазоне.

Отредактировано Webarion (10.02.2024 13:52:33)

0

2

Отладчик разве не показывает стек вызовов?

0

3

Я просто зашёл со своей колокольни.
В отладчике Gdb можно назначить любой «сценарий» на точку остановка. Например, вывести значения переменных, стек вызовов, память по адресу и продолжить выполнение, вообще не изменяя исходный код и не перекомпилируя программу.

0

4

Замабувараев написал(а):

Отладчик разве не показывает стек вызовов?

Спасибо. Иногда бывает смотришь и не видишь. В отладчике, история вызовов более-менее подходит.

0


Вы здесь » PureBasic - форум » Вопросы по PureBasic » Какая процедура вызвала текущую процедура