나는 진수의 명령 코드를 얻기 위해 Visual Studio 및 디스어셈블러 창에 디버깅을 사용하고 있지만, 메인은 (그림으로) 함수를 호출 할 때이 기능 지침은 sperate에 표시 섹션 (그림 2) 주요 기능의 일부로 나타나는 기능 지침을 보여주는 방법이 있습니까? dissasembler 창에서디스어셈블러 비주얼 스튜디오 C++
답변
mov eax, 0CCCCCCCCh
을 기반으로하면 디버그 빌드로 작업하는 것 같습니다.
디버그 모드에서 Visual Studio는 기본적으로 모든 기능을 인라인하지 않습니다.
컴파일러 설정 (C/C++ - 최적화 - 인라인 함수 확장)에서 릴리스 모드로 전환하거나 함수 인라이닝을 활성화하면 fun()
에 대한 호출이 인라인 될 수 있습니다.
분해는 항상 별도의 창 될 것입니다, 옵션이 있습니다 디스 어셈블리 창에 대한 컨텍스트 메뉴에서 표시되는 내용을 제어 할 수 있습니다 (소스 코드가 없거나 명령 주소가 아닌지 등).
그래, 나도 알아,하지만 우려는 명령 코드의 순서입니다. 즉, 기능 코드를 메인 코드의 일부로 사용하고자합니다. – noor
하지만 메인 코드의 일부는 아닙니다. 디스어셈블러가 보여 주듯이, 다른 로컬 함수와 스택 연산을 가진 다른 함수를 호출하는 것이다. 코드가 실제로'main'에있는 것과 똑같은 명령어가 아닙니다. – edtheprogrammerguy
Hmmm, Ok, 괜찮습니다. – noor
당신이 말하는 것을 추측하기가 어렵습니다. 나는이 기능이 인라인되기를 원합니다. Release 빌드를 빌드하기 전까지는 일어나지 않을 것입니다. 지금은 최적화되지 않은 Debug 내장 코드를보고 있습니다. –