어셈블리 목록이 약간 다른 레이블로 채워지므로 diff가 실패합니다.두 개의 유사한 g ++ -S 어셈블리 출력을 비교하는 방법은 무엇입니까?
0
A
답변
5
-S
옵션으로 생성 된 어셈블리 목록을 직접 비교하는 대신 개체 파일을 컴파일하고 개체 파일을 디스 어셈블 한 다음 비교할 수 있습니다. (또는 컴파일 된 객체 코드의 hexdump를 직접적으로 비교할 수는 있지만 훨씬 더 고통 스럽다.) 이렇게하면 대부분의 레이블이 제거되므로 diff와 비교하기가 더 쉬워야합니다. 예 :
g++ file1.cc -c -o file1.o
g++ file2.cc -c -o file2.o
objdump -d file1.o > file1.s
objdump -d file2.o > file2.s
diff file1.s file2.s
0
간단한 sed로 라벨을 제거하고 "라벨"또는 공백으로 모두 바꿀 수 있습니다 ("diff -w"사용).
다른 레지스터가 사용되었지만 작업이 동일한 장소는 고려되지 않습니다. 이것은 매우 일반적 일 수 있습니다. 함수에 변수를 추가하면 레지스터가 직접 관련되지 않은 코드에서 재 할당 될 수 있습니다.
이를 처리 할 수있는 유일한 방법은 특별히 이러한 경우를 찾고 처리하는 프로그램을 작성하는 것입니다. 나는 모든 조건에서 작동 할 수있는 "단순한"솔루션을 찾지 못할 것이라고 생각합니다.
관련 문제
- 1. 두 개의 트리를 비교하는 방법은
- 2. 경고없이 두 개의 정수를 비교하는 방법은 무엇입니까?
- 3. 두 개의 .mp4 파일을 비교하는 방법은 무엇입니까?
- 4. 두 개의 검색어를 비교하는 방법은 무엇입니까?
- 5. C에서 두 개의 구조체를 비교하는 방법은 무엇입니까?
- 6. 유사한 두 개의 2D 선형 선이있는 방법을 비교하는 척도
- 7. 두 데이터베이스를 비교하는 방법은 무엇입니까?
- 8. 두 개의 바코드를 비교하는 방법
- 9. 엡실론 값과의 차이점을 비교하는 대신 2 개의 보수를 사용하여 두 개의 두 점을 비교하는 이유는 무엇입니까?
- 10. TourtoiseSVN : 2 개의 태그를 비교하는 방법은 무엇입니까?
- 11. CUDA 두 개의 2D 배열을 비교하는 방법은 무엇입니까?
- 12. 자바에서 두 개의 다른 목록 객체를 비교하는 방법은 무엇입니까?
- 13. 아이폰 SDK와 두 개의 이미지를 비교하는 방법은 무엇입니까?
- 14. 한 필드에 두 개의 유효성 검사기를 비교하는 방법은 무엇입니까?
- 15. 개체의 속성을 기반으로 두 개의 NSSets를 비교하는 방법은 무엇입니까?
- 16. oracle diff : 두 테이블을 비교하는 방법은 무엇입니까?
- 17. 두 테이블을 프로그래밍 방식으로 비교하는 방법은 무엇입니까?
- 18. 두 xml 파일을 xslt와 비교하는 방법은 무엇입니까?
- 19. perl에서 두 개의 다단계 해시를 비교하는 방법
- 20. 쉘 스크립트에서 두 파일을 비교하는 방법은 무엇입니까?
- 21. 두 개의 유사한 객체에 대해 두 개의 개별 테이블을 만들어야합니까?
- 22. "/ \ s/g"는 공백을 다른 문자로 바꾸는 방법은 무엇입니까?
- 23. XMLUnit에서 유사한 XML 파일 두 개를 비교하는 방법
- 24. 두 컨트롤의 값을 트리거와 비교하는 방법은 무엇입니까?
- 25. PHP에서 두 파일 구조를 비교하는 방법은 무엇입니까?
- 26. 두 웨이브 데이터를 비교하는 방법은 무엇입니까?
- 27. 두 값을 jquery와 비교하는 방법은 무엇입니까?
- 28. 두 배열의 내용을 비교하는 방법은 무엇입니까?
- 29. Mercurial에서 두 가지 버전을 비교하는 방법은 무엇입니까?
- 30. 두 문자열을 비교하는 복잡성