[질문] 프로그램의 code 영역 크기를 알수 있나요?

slowind의 이미지

data 영역이나 stack 영역은 뭐 소스를 보고

계산해도 나올 수 있다고 하지만..

code 영역의 크기는 어떻게 하면 알 수 가 있을까요??

cjh의 이미지

> size /bin/ls
   text    data     bss     dec     hex filename
  21630     544     388   22562    5822 /bin/ls

--
익스펙토 페트로눔

slowind의 이미지

제가 깜빡하고 환경을 이야기 안했네요....

linux나 유닉스 가 아니고..

원도우 랍니다..허허허

ssehoony의 이미지

윈도라면 PE 파일 포멧을 공부하면 되지 않을까요?
(이렇게는 동적로드 코드 사이즈는 알 수 없겠군요 :( )

agrumpy의 이미지

Visual C++ 에 포함되어 있는 dumpbin 이란 유틸리티를 이용하시면 아실 수 있습니다. 몇가지 옵션을 주면 더 자세한 정보를 확인하실 수도 있습니다.

Quote:

C:\WINDOWS>dumpbin explorer.exe
Microsoft (R) COFF/PE Dumper Version 7.10.3077
Copyright (C) Microsoft Corporation. All rights reserved.

Dump of file explorer.exe

File Type: EXECUTABLE IMAGE

Summary

2000 .data
4000 .reloc
B2000 .rsrc
45000 .text

cjh의 이미지

윈도우라도 cygwin을 쓸 수 있겠죠... :)

cjh@xxx /cygdrive/c/windows $ size explorer.exe
   text    data     bss     dec     hex filename
1022101    6144       0 1028245   fb095 explorer.exe

cjh@xxx /cygdrive/c/windows
$

--
익스펙토 페트로눔

slowind의 이미지

기본적으로 제공해주는 유틸들을 모르고 있었네요.

답변 해주신 모든 분들~ 감사합니다.~~

그리고 추가 질문 하나 더 할께요 :twisted: ^^

만약 클래스 하나(멤버 변수 하나만 있는 )로 구성된 프로그램이 있다고 치고..

이 프로그램은 시작시엔 생성자를 실행시키는 것외엔

하는 일이 없다면

이 프로그램이 시작할때 메모리에 로드되는 값을 얼마나 되나요?

data영역이랑 bss 영역 두 영역을 합하면 되나요?

code 영역의 값도 얼마정도 더해야 하는건지? ...

흠...

프로그램이 로드될때 메모리를 얼마나 잡아 먹는지 알아볼려고

하는데 .... 애매 하네요..

hanzo69의 이미지

시작메뉴 -> Visual Studio -> Visual Studio 도구들
가보면 Process Viewer 라는 툴이 있습니다.
그걸로 실행중인 프로세스를 선택하신 후 Memory Details 를 확인해보시면 됩니다.

님ㅎ 즐~