Это называется "отладчик" и есть в любом приличном компиляторе/интерпретаторе. А в приличных IDE это ещё и красиво оформлено. В самой IDE нет отладчика - есть только интерфейс, взаимодействующий с модулем отладчика, который к твоей программе подключает компилятор/интерпретатор - по команде IDE. В интерпретируемых языках отладчик чаще подключается на уровне виртуальной машины. В языках, транслируемых в машинный код, компилятору даётся команда генерировать код с дополнительной информацией, нужной только для отладки.