C/C++

함수를 호출하는 함수 이름 출력하기

http://stackoverflow.com/questions/6251787/how-do-i-get-the-name-of-the-calling-function

함수가 어느 함수로부터 호출되는지 그 시점을 알고 싶었지만 디버깅 모드나 break point를 사용할 수 없는 상황이었습니다. 비교적 구조가 간단하고 아주 빈번하게 호출되는 함수는 아니기 때문에 간단한 수정으로 증상을 확인하는 방법을 택할 수 있었습니다.

원래 함수가 아래와 같이 생겼다면,

아래와 같이 고쳐줍니다.

__func__ 매크로를 이용하여 B함수를 호출하고 있는 함수의 이름을 인수로 넘겨주어 이를 출력하도록 합니다. 간단하게 적용할 수 있지만 단점이라면 기존 함수 B의 선언을 고쳐야 한다는 점 정도가 되겠네요.

 


Add a Comment Trackback