LINUX:DEVELOPEMENT

구차니의 잡동사니 위키
이동: 둘러보기, 찾기

목차

바이너리 파일분석

  • starce - static libaray call 추적
  • ltrace - linked libarary call 추적
  • readelf - elf 헤더 분석
  • objdump - readelf와 비슷(disassembler)
  • ldd - 필요한 linked libarary 목록/ .so 파일이 링크하는 파일 목록 보기
  • ar - archive 파일에 내장된 .o 파일 목록 보기(.a)
  • nm - object 파일내의 심볼 목록 보기
  • c++filt - mangling 된 이름 되돌리기

개발용 툴

  • gcc - gnu c 컴파일러
  • g++ - gnu c++ 컴파일러
  • ld
  • as
  • strip - 디버그 정보 제거하는데 사용(용량 줄이기)


gdb / gdbserver 사용방법

target> gdbserver targetip:target_port process_name
host> gdb process_name
target remote target_ip:target_port
target remote /dev/ttyAS0

gcc / g++

  • gcc -p -pg
    • 프로파일링 정보 생성 (gprof)
  • gcc -g
    • 디버깅 정보 생성 (gdb)


  • gcc -E
    • 매크로 프로세서 확장된 소스코드
  • gcc -S
    • 어셈블리 코드

objdump

  • objdump -x
    • --all-headers
  • objdump -d
    • --disassemble
  • objdump -D
    • --disassemble-all
  • objdump -TC
    • 심볼 목록 보기(디맹글링)

readelf

  • readelf -a
    • --all
  • readelf -d
    • --dynamic 다른 라이브러리 의존성 목록 보기
  • readelf -Ws
    • symbol 목록 보기

ar

  • ar t
    • Display a table listing the contents of archive
    • 아카이브 된 파일내에 포함된 object 파일의 목록을 출력함

nm

  • nm -Ca
    • demangle & debug-syms
    • object 파일 내의 심볼들을 출력함(함수 목록 보기 등)
  • nm -D
    • dynamic
  • nm -gC
    • external symbol with demangling
개인 도구
이름공간

변수
행위
둘러보기
도구모음