LD_DEBUG의 사용 예는 다음과 같습니다.
LD_DEBUG=libs applicationName
LD_DEBUG=라이브러리단순한 작업 - Bash에서는 어떻게 작동합니까(결과 인쇄)?
답변1
LD_DEBUG
해당 컨텍스트 내에는 값을 할당한 환경 변수가 있습니다 libs
. 방금 시작한 명령의 환경에 배치되는 것 LD_DEBUG
외에는 그 자체로는 아무 것도 수행하지 않습니다 .
동적으로 링크된 실행 파일을 시작할 때 가장 먼저 일어나는 일은 동적 링커가 ld.so(8)
런타임 링크와 기호 확인을 수행하는 것입니다. 이를 수행하는 동적 링커의 코드는 컴파일된 코드와 마찬가지로 환경 변수를 읽을 수 있습니다. 프로그램은 이 환경 변수와 기타 여러 변수를 읽고 이를 기반으로 동작을 수정합니다. 매뉴얼 페이지에는 동적 링커에 영향을 미치는 모든 환경 변수가 자세히 설명되어 있습니다.
답변2
LD_DEBUG는 ld.so.1(ELF 바이너리에서 호출되는 동적 링커)에서 평가됩니다.
동적 링커의 매뉴얼 페이지를 확인하십시오:
http://schillix.sourceforge.net/man/man1/ld.so.1.1.html
셸에서는 아무 작업도 수행되지 않으며 실행되는 바이너리에 의해 모든 작업이 "완료"됩니다.
참고: 이 명령은 ldd
특별한 작업을 수행하지 않고 일부 LD_* 변수를 설정한 다음 명령을 시작하려고 시도합니다. 옵션이 지정되지 않으면 ldd는 을 설정합니다 LD_TRACE_LOADED_OBJECTS_[AE]
.
http://schillix.sourceforge.net/man/man1/ldd.1.html
그리고 관련 소스코드.