2012-10-22 5 views
4

C++ 호환 컴파일러 (Visual Studio, g ++ 등)에서 로깅을 사용하도록 설정할 수 있는지 알고있는 사람이 있습니까? 임시 개체를 만들 때 검색 할 수 있습니까? 예를 들어임시 개체 생성

:

의 내가 함수 f(char x)을 가지고 있지만 내가 로그에 볼 수 f(46)

와이 전화를 가정 해 봅시다 -

temporary char created promoting int @ function param f(46) (또는 뭔가 같은)

VS 컴파일러 스위치 옵션을 통해 읽었으며이 옵션이 옵션이 아닌 것으로 보입니다.

나는 새로운 표준이 이동 의미에 대한 대부분의 임시직을 감지하는 데 사용할 수있는 rvalue reference (& &)의 개념이다 그러나 이것은 새로운 코드/규격 컴파일러를 추가 이루어진다는 점을 잘 알고 있습니다.

이렇게 할 수 있습니까? 아니면이 컴파일러에 대한 특권있는 지식입니까?

+11

코드의 짧은 비트조차도 사본과 임시 파일의 톤을 생성 할 수 있습니다. 이것은 당신이 상상하는 것보다 덜 유용 할 것입니다. –

+3

'46'은 완벽하게 유효한'char' 값이고, 값을 함수로 전달하는 것은 올바른 일입니다. 하드 코어 C 프로그래머가 FUD 기사를 읽지 않았습니까? –

+0

매우 늦은 답변에 대해 유감스럽게 생각합니다. 엄청난 양의 데이터가 생성되지만 유용 할 것입니다. 어쨌든, 나는이 단계에서 그것을 할 수 없으므로 직접 할 수도 있습니다. 어쨌든 도움을 주셔서 감사합니다. –

답변

0

IDE의 인라인 주석이 더 유용 할 수 있습니다 (일부 temps를 최소화하여 최적화하고 싶다고 가정하기 때문에). 실제로 가장 쉬운 방법은 GCC 또는 g ++를 수정하여 Visual Studio 플러그인 또는 다른 것과 대화하게하는 것입니다. 그들은 레지스터 할당과 모든 것에 주석을 달 수 있습니다. 와우, 실제로 도움이 될 것입니다.

그런 노력을 배제하고 나는 어떤 것도 모릅니다. 가장 좋은 방법은 어셈블리를 읽는 법을 배우는 것입니다. Visual Studio에서 컴파일 된 어셈블리를 소스와 함께 매우 유용하게 인라인으로 표시 할 수 있습니다.