코드를 분해했습니다. 원본 소스 파일에서 해당 지침의 해당 줄 번호를 알고 싶습니다.암 어셈블리 코드 - cpp 소스의 분해 이해
또한 몇 가지 사항을 알고 싶습니다.
예를 들어 android::CameraHardware::createInstance
과 같은 기능이 _ZN7android18CameraHardware14createInstanceEib
으로 표시됩니다. 이 함수가 맞는지 아닌지 완전히 비교할 필 요는 없습니다.
왜 이름이 너무 이상하고 앞뒤에 사물이 추가 되었습니까? 나는 일반적으로 C 코드도 마찬가지이다. 함수 이름은 디스 어셈블 된 코드에서 곧바로 보입니다.
요약하면 두 가지 질문이 있습니다. GDB 내부
, 내가 어셈블리 명령어의 특정 행의 행 번호를 얻을 수있는 방법은 무엇입니까?
0x40d9078c에서 예를 들어, 이 소스 파일에 해당하는 줄을 알고 싶습니다. 나는 정보 라인을 시도했다. 사용하지 마십시오. 어떤 제안이 있습니까?
우리는 cpp 코드의 해체를 이해할 때 명명 규칙을 어떻게 이해합니까? 또한 에 필요한 다른 것들을 전제 조건으로 알고 있습니까?
감사합니다.
힌트 : 당신의 직설적 인 이름을 놓친 경우 'extern "C"'를보십시오 – nijansen
1) C++ 이름 맹 글링을 배우십시오. 2) DWARF와 같은 디버깅 기호 언어를 배웁니다. –
'gdb'에 대해서는 모르겠지만'-SCld' 옵션과 함께'objdump'를 사용하면 원래의 소스와 줄 번호가 섞인 디스 어셈블리를 얻을 수 있습니다. – Michael