OpenJDK 원본 디 버 깅 그림 튜 토리 얼

머리말
    자바 의 생태 가 커 짐 에 따라 다양한 신기 술 이 끊임없이 등장 합 니 다.이것 은 여러분 의 학습 에 많은 곤혹 을 가 져 왔 습 니 다.이렇게 많은 기술 을 제 가 무엇 을 배 워 야 하 는 지 맹목적 으로 각종 신기 술 사 이 를 오 가 며 좋 은 효 과 를 얻 지 못 합 니 다.
    자바 의 핵심 기술 인 JDK 는 많은 친구 들 이 소스 코드 를 보고 자바 의 메모리 모델 을 알 아 봤 다 고 믿 지만 debug 가 끝까지 native 일 때 가 많다 는 것 은 우울 한 일이 기 때문에 JDK 밑바닥 의 실현 을 이해 하 는 것 이 매우 중요 하 다.
    OpenJDK 소스 코드 를 컴 파일 하 는 글 이 많 지만 처음부터 끝까지 환경 을 구축 하 는 글 이 별로 없어 서 저 는 이 글 을 썼 습 니 다.여기 서 관련 된 주요 절 차 는 다음 과 같 습 니 다.
가상 컴퓨터 의 설치
가상 컴퓨터 의 설치
우 분투 시스템 미 러 설치우 분투 시스템 설정OpenJDK 컴 파일Idea 리 눅 스에 설치netbeans 리 눅 스에 설치HotSpot 소스 코드 디 버 깅
WMware 가상 컴퓨터 설치
WMware 버 전 은 저희 가 사용 하 는 버 전이 15.5.1 버 전이 많 습 니 다.
링크 다운로드
링크:https://pan.baidu.com/s/1IABotf1mFjFMZqXE8yZ1BA추출 코드:atzw
소프트웨어 를 다운로드 한 후 지정 한 디 렉 터 리 아래 에 놓 고 더 블 클릭 하여 열 고 다음 단 계 를 클릭 합 니 다.아래 그림 과 같 습 니 다.
启动安装
내 가 받 아들 일 콤 보 상 자 를 선택 하고 다음 단 계 를 누 르 십시오.다음 그림 과 같 습 니 다.
在这里插入图片描述
설치 할 vm 의 디스크 위 치 를 선택 하 십시오.사용자 정의 할 수 있 습 니 다.디스크 위 치 를 선택 한 후 다음 단 계 를 누 르 십시오.다음 그림 과 같 습 니 다.
在这里插入图片描述
업데이트 와 체험 을 추가 하 는 체크 상 자 를 선택 하고 다음 단 계 를 누 르 십시오.다음 그림 과 같 습 니 다.
在这里插入图片描述
다음 단 계 를 클릭 하면 설치 진 도 를 팝 업 하고 설치 가 끝 날 때 까지 기 다 립 니 다.다음 그림 과 같 습 니 다.
在这里插入图片描述
여기까지 설치 에 성 공 했 습 니 다.데스크 톱 에서 아이콘 을 찾 아 열 면 사용 할 수 있 습 니 다.아래 그림 과 같 습 니 다.
在这里插入图片描述
Ubuntu 시스템 미 러 설치
여기 서 가상의 Ubuntu 를 설치 하 는 버 전 은 16.04.6 버 전 입 니 다.
링크 다운로드
링크:https://pan.baidu.com/s/1X82lDWqBO7HcBD_likFtPQ추출 코드:i4y 4
다음 그림 과 같이 VMware 가상 컴퓨터 소프트웨어 를 엽 니 다.
在这里插入图片描述
다음 그림 과 같이 새 가상 컴퓨터 를 선택 하 십시오.
在这里插入图片描述
가상 컴퓨터 를 만 들 고 전형 적 인 것 을 선택 한 다음 다음 에 다음 그림 과 같 습 니 다.
在这里插入图片描述
다운로드 한 ubuntu-16.4.6-desktop-amd64.iso 미 러 를 선택 하고 다음 단 계 를 누 르 십시오.아래 그림 과 같 습 니 다.
在这里插入图片描述
Ubuntu 가상 컴퓨터 를 만 드 는 데 필요 한 기본 정 보 를 입력 하고 다음 단 계 를 누 르 십시오.다음 그림 과 같 습 니 다.
在这里插入图片描述
가상 컴퓨터 이름과 설치 위 치 를 입력 하 십시오.큰 디스크 에 단독 디 렉 터 리 를 만들어 저장 한 다음 다음 다음 단 계 를 누 르 십시오.다음 그림 과 같 습 니 다.
在这里插入图片描述
디스크 크기 와 디스크 파일 저장 형 태 를 지정 합 니 다.간단 한 디 버 깅 코드 를 사용 하 는 기본 20G 만 있 으 면 충분 합 니 다.만약 뒤에 가상 컴퓨터 설정 에서 이 를 조정 할 수 없 으 면 기본 20G 를 설정 합 니 다.디스크 에는 두 가지 형식의 단일 파일 과 다 중 파일 이 저장 되 어 있 습 니 다.다 중 파일 형식 은 백업 이상 회복 에 더욱 좋 습 니 다.여기 서 우 리 는 다 중 파일 저장 소 를 선택 한 다음 다음 다음 단 계 를 클릭 합 니 다.다음 그림 과 같 습 니 다.
在这里插入图片描述
다음 OpenJDK 를 컴 파일 할 때 메모리 에 대한 요구 가 높 기 때문에 사용자 정의 하드웨어 에서 메모 리 를 4G 로 조정 한 다음 완성 을 누 르 십시오.다음 그림 과 같 습 니 다.
在这里插入图片描述
在这里插入图片描述
Ubuntu 설치 가 성공 하 기 를 기다 리 는 과정 은 다음 그림 과 같이 10 분 정도 걸 립 니 다.
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
Ubuntu 시스템 설정
네트워크 설정
비밀 번 호 를 입력 하고 운영 체제 에 로그 인 하 십시오.아래 그림 과 같 습 니 다.
在这里插入图片描述
Ubuntu 네트워크 설정,단축 키(Ctrl+Alt+T)를 사용 하여 명령 행 창 을 열 고 ifconfig 를 입력 하여 현재 네트워크 설정 을 봅 니 다.아래 그림 과 같 습 니 다.
在这里插入图片描述
route-n 을 입력 하고 게 이 트 웨 이 설정 을 보십시오.아래 그림 과 같 습 니 다.
在这里插入图片描述
현재 윈도 시스템 의 DNS 설정 을 보십시오.저 자 는 윈도 10 을 사용 합 니 다.아래 그림 과 같 습 니 다.
在这里插入图片描述
在这里插入图片描述
다음 그림 과 같이 Ubuntu 의 네트워크 설정 을 설정 합 니 다.
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
Ubuntu 가 가지 고 있 는 불 여우 브 라 우 저 를 사용 하여 바 이 두 를 정상적으로 방문 할 수 있 는 지 테스트 합 니 다.아래 그림 과 같 습 니 다.
在这里插入图片描述
공유 폴 더 설정
가상 머 신 우 분투 와 윈도 우 는 파일 공 유 를 하고 많은 자 료 는 가상 머 신 자체 의 도구 인 VMware Tools 를 사용 하지만 조작 과정 에서 예상 치 못 한 문제 가 많이 발생 하여 설치 에 실패 하고 많은 시간 을 낭비 할 때 가 많다.여기 서 네트워크 공 유 를 통 해 가상 머 신 파일 공 유 를 실현 하 는 더욱 간단 한 방식 을 소개 한다.
방법 은 다음 과 같다.
Downloads 디 렉 터 리 아래 share 폴 더 를 만 듭 니 다.효 과 는 그림 과 같 습 니 다.
在这里插入图片描述
share 폴 더 에서 오른쪽 단 추 를 누 르 고 로 컬 네트워크 공 유 를 선택 하 십시오.효 과 는 그림 과 같 습 니 다.
在这里插入图片描述
아래 그림 에서 옵션 을 선택 하고 공유 만 들 기 단 추 를 누 르 면 그림 과 같이 효과 가 있 습 니 다.
在这里插入图片描述
在这里插入图片描述
windows 시스템 에서 네트워크 를 통 해 share 공유 디 렉 터 리 를 찾 습 니 다.효 과 는 그림 과 같 습 니 다.
在这里插入图片描述
OpenJDK 컴 파일
OpenJDK 를 컴 파일 하 는 과정 에서 필요 한 소프트웨어 는 다음 과 같 습 니 다.
jdk-7u80-linux-x64.tar
다운로드 주소:
링크:https://pan.baidu.com/s/1LNd2Xkg93bsXDuEVFdjfQQ추출 코드:j3ix
openjdk-8u40-src-b25-10_feb_2015.zip
다운로드 주소:
링크:https://pan.baidu.com/s/1eFVhrgmXOZ_oD8uQ_YEiUg추출 코드:kqkh
컴 파일 프로 세 스
필요 한 패 키 지 를 가상 컴퓨터 share 공유 디 렉 터 리 에 넣 습 니 다.다음 그림 과 같 습 니 다.
在这里插入图片描述
Ubuntu 가상 컴퓨터 에서 Documents 디 렉 터 리 에 압축 을 풀 고 설치 합 니 다.다음 그림 과 같 습 니 다.
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
의존 패 키 지 를 설치 하 는 데 2 분 정도 걸 립 니 다.

sudo apt-get install libx11-dev libxext-dev libxrender-dev libxtst-dev libxt-dev
sudo apt-get install libcups2-dev
sudo apt-get install libfreetype6-dev
sudo apt-get install libasound2-dev
설치 vim

sudo apt-get install vim
path 설정

vim ~/.bashrc
bashrc 파일 의 끝 에 다음 코드 를 추가 합 니 다.jdk 1.7.080 경 로 는 실제 상황 에 따라 기입 한다.

export JAVA_HOME=/home/feng/Documents/jdk1.7.0_80
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$JAVA_HOME/bin:$ANT_HOME/bin:$PATH
설정 성공 여 부 를 검증 합 니 다

source ~/.bashrc
java -version
在这里插入图片描述
명령 을 실행 하여 OpenJDK 8 을 컴 파일 하고 boot jdk 는 실제 디 렉 터 리 에 따라 작성 합 니 다.

cd /home/feng/Documents/openjdk/
sudo bash configure --with-target-bits=64 --with-boot-jdk=/home/feng/Documents/jdk1.7.0_80/ --with-debug-level=slowdebug --enable-debug-symbols ZIP_DEBUGINFO_FILES=0
설정 에 성공 하면 다음 과 같은 정보 가 표 시 됩 니 다.
在这里插入图片描述
아래 명령 을 실행 하고 컴 파일 을 시작 합 니 다.이 시간 이 비교적 깁 니 다.

sudo make all DISABLE_HOTSPOT_OS_VERSION_CHECK=OK ZIP_DEBUGINFO_FILES=0
아래 화면 을 보고 컴 파일 성공 을 증명 합 니 다.
在这里插入图片描述
Ubuntu 아래 설치 아이디어
저희 가 사용 하 는 Idea 2021.1 커 뮤 니 티 버 전 입 니 다.
링크 다운로드
링크:https://pan.baidu.com/s/1w8eqjpWHn6J0DYX9TAwQmQ추출 코드:ygci
다운로드 한 아 이 디 어 를 share 공유 디 렉 터 리 에 넣 고 가상 컴퓨터 에서 Documents 디 렉 터 리 에 압축 을 풀 고 다음 과 같이 캡 처 합 니 다.
在这里插入图片描述
현재 사용자 디 렉 터 리 에 Makefile 파일 만 들 기

cd ~
vim Makefile
파일 에 다음 코드 를 추가 합 니 다:

idea:
	sh /home/feng/Documents/idea-IC-211.6693.111/bin/idea.sh
make 명령 으로 아이디어 시작

make idea
시작 후 계속 을 누 르 면 다음 과 같이 캡 처 합 니 다.
在这里插入图片描述
보 내지 않 기 를 선택 하 십시오.캡 처 는 다음 과 같 습 니 다.
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
Ubuntu 아래 NetBeans 설치
여기 서 사용 하 는 NetBeans 8.2 버 전 입 니 다.
링크 다운로드
링크:https://pan.baidu.com/s/1k40ZgtSx87rUvLaabazeDA추출 코드:34u 9
다운로드 한 NetBeans 를 share 공유 디 렉 터 리 에 놓 고 가상 컴퓨터 에서 데스크 톱 으로 복사 합 니 다.캡 처 는 다음 과 같 습 니 다.
在这里插入图片描述
다음 명령 을 실행 하고 NetBeans 설치

cd /home/feng/Desktop/
sudo chown feng:feng jdk-8u111-nb-8_2-linux-x64.sh
./jdk-8u111-nb-8_2-linux-x64.sh
다음 단 계 를 누 르 면 NetBeans 를 설치 합 니 다.다음 그림 과 같 습 니 다.
在这里插入图片描述
기본 jdk 를 설정 하고 다음 단 계 를 누 르 십시오.다음 그림 과 같 습 니 다.
在这里插入图片描述
디 렉 터 리 초기 화 를 선택 하고 다음 단 계 를 누 르 십시오.다음 그림 과 같 습 니 다.
在这里插入图片描述
업 데 이 트 를 체크 하고 설 치 를 누 르 십시오.다음 그림 과 같 습 니 다.
在这里插入图片描述
선택 하고 완성 을 클릭 하 십시오.다음 그림 과 같 습 니 다.
在这里插入图片描述
다음 그림 과 같이 데스크 톱 의 NetBeans ISE 8,2 시작 을 누 르 십시오.
在这里插入图片描述
C/C++플러그 인 을 설치 합 니 다.아래 그림 과 같 습 니 다.
在这里插入图片描述
사용 가능 한 플러그 인 을 선택 하고 C/C++를 찾 아서 설 치 를 클릭 하 십시오.아래 그림 과 같 습 니 다.
在这里插入图片描述
다음 단 계 를 누 르 면 C/C+플러그 인 을 설치 합 니 다.아래 그림 과 같 습 니 다.
在这里插入图片描述
동 의 를 선택 하고 설 치 를 클릭 하 십시오.아래 그림 과 같 습 니 다.
在这里插入图片描述
HotSpot 소스 코드 디 버 깅
다음 명령 을 실행 하고 자바 홈 을 수정 하 며 컴 파일 된 OpenJDK 를 기본 JDK 로 사용 합 니 다.

vim ~/.bashrc
bashrc 파일 을 수정 합 니 다.수정 후 효 과 는 다음 그림 과 같 습 니 다.

export JAVA_HOME=/home/feng/Documents/openjdk/build/linux-x86_64-normal-server-slowdebug/jdk
在这里插入图片描述
자바-version 명령 을 실행 하여 수정 에 성 공 했 는 지 확인 합 니 다.성공 하면 효 과 는 다음 과 같 습 니 다.

source ~/.bashrc
java -version
在这里插入图片描述
NetBeans 를 사용 하여 OpenJDK 프로젝트 를 만 듭 니 다.절 차 는 다음 과 같 습 니 다.
在这里插入图片描述
기 존의 C/C++코드 를 기반 으로 프로젝트 를 만 듭 니 다.다음 그림 을 선택 하고 다음 단 계 를 누 르 십시오.
在这里插入图片描述
컴 파일 된 OpenJDK 디 렉 터 리 를 선택 하고 맞 춤 형 을 선택 하 며 다음 그림 을 선택 하고 다음 단 계 를 누 르 십시오.
在这里插入图片描述
기본 설정 에 따라 다음 단 계 를 클릭 하고 완료 단 추 를 누 르 십시오.
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
Idea 를 사용 하여 프로젝트 를 만 들 고 테스트 코드,프로젝트 구 조 를 작성 합 니 다.다음 그림 입 니 다.

package com.feng;

public class Test {
    public static void main(String[] args) {
        String str = "test";
        System.out.println(str);
    }
}
在这里插入图片描述
코드 를 컴 파일 하여 클 라 스 파일 을 클 라 스 디 렉 터 리 에 저장 합 니 다.다음 그림 입 니 다.
在这里插入图片描述
NetBeans 에서 Test 활동 을 설정 합 니 다.절 차 는 다음 과 같 습 니 다.
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
Run Command 를 편집 하고 다음 매개 변 수 를 사용 합 니 다.효 과 는 그림 과 같 습 니 다.

"${OUTPUT_PATH}" -cp "/home/feng/IdeaProjects/Test/target/classes" com.feng.Test
在这里插入图片描述
응용 프로그램 을 클릭 하고 확인 을 클릭 하면 효 과 는 그림 과 같 습 니 다.
在这里插入图片描述
Test 로 전환 하고 실행 을 누 르 면 실행 가능 한 명령 이 팝 업 됩 니 다.컴 파일 된 OpenJDK 의 자바 명령 을 선택해 야 합 니 다.효 과 는 그림 과 같 습 니 다.
在这里插入图片描述
시작 에 성공 하면 아이디어 에서 작성 한 Test 코드 의 실행 결 과 를 출력 합 니 다.다음 그림 과 같 습 니 다.
在这里插入图片描述
이 럴 때 우 리 는 OpenJDK 에 정지점 을 추가 하여 OpenJDK 를 디 버 깅 할 수 있 습 니 다.openjdk->jdk->src->share->bin->java.c 파일 에 정지점 을 추가 하여 디 버 깅 할 수 있 습 니 다.아래 그림 과 같 습 니 다.
在这里插入图片描述
여기 서 전체 OpenJDK 소스 코드 디 버 깅 과정 이 끝 났 습 니 다.여러분 에 게 무슨 문제 가 있 으 면 저 에 게 메 시 지 를 남 겨 주 고 모두 가 함께 교류 하고 발전 할 수 있 습 니 다.
여기 서 OpenJDK 소스 코드 디 버 깅 에 관 한 이 글 은 여기까지 소개 되 었 습 니 다.더 많은 OpenJDK 소스 코드 디 버 깅 내용 은 우리 의 이전 글 을 검색 하거나 아래 의 관련 글 을 계속 조회 하 시기 바 랍 니 다.앞으로 많은 응원 바 랍 니 다!

좋은 웹페이지 즐겨찾기