Принятие Объектной Ориентации.
идея была вокруг ранее (например, Simula), но это стало господствующей тенденцией в 1990-х. (По моему скромному мнению, одно из его самых больших преимуществ имеет обеспечение общего словаря среди разработчиков, таким образом, его широко распространенное принятие сделало это намного более ценным.)
JCL является бесплатным и имеет функции для этого. Это действительно зависит от того, насколько хорошо может быть проведена трассировка стека и сколько отладочной информации присутствует.
JclDebug.pas
function FileByLevel(const Level: Integer = 0): string;
function ModuleByLevel(const Level: Integer = 0): string;
function ProcByLevel(const Level: Integer = 0): string;
function LineByLevel(const Level: Integer = 0): Integer;