플래그/옵션이 연결된 경우 프로그램의 모든 라이브러리 종속성과 구성을 어떻게 나열할 수 있습니까?

플래그/옵션이 연결된 경우 프로그램의 모든 라이브러리 종속성과 구성을 어떻게 나열할 수 있습니까?

종속성을 변경하는 argv를 얻은 경우에도 프로그램의 모든 종속성(라이브러리) 및 구성을 어떻게 나열할 수 있습니까?

답변1

프로그램이 GNU C 라이브러리의 동적 링커( ld.so)를 사용하는 경우 이를 실행하고 다음 설정을 통해 로드되는 모든 라이브러리를 추적할 수 있습니다 LD_DEBUG=libs.

LD_DEBUG=libs yourcommand --args

이를 통해 프로그램 매개변수를 변경하면 로드되는 라이브러리가 변경되는지 여부를 결정할 수 있습니다.

표시된 모든 라이브러리는 ldd /path/to/yourcommand항상 로드되며 프로그램 매개변수에 따라 변경되지 않습니다. 로드된 라이브러리를 사용하면 dlopen차이가 있을 수 있으며 이는 이 기술을 사용하여 표시됩니다.

어떤 구성 파일을 읽었는지 알고 싶다면 다음을 사용하세요 strace.

strace -e open yourcommand --args

관련 정보