2010-02-21 3 views
1

제 친구는 제 프로그램에서 실수를 저질렀을지도 모른다고 생각하고 실제로했는지보고 싶다고 말했습니다. 그는 나에게 소스에 반대되는 바이너리를 보내달라고 부탁했다. 내가 이걸 처음 접했을 때 나는 편집증에 빠졌어. 바이너리로 무엇을 할 수 있습니까? 소스를 원하지 않는다는 뜻입니까?C에서 소스와 반대되는 이진을 보면 무엇을 얻을 수 있습니까?

감사

+2

왜 "친구"에게 물어 보지 않으시겠습니까? –

+0

그가 이진을 가지고 있지 않다면 그에게 실수가 있다고 생각하게하는 것은 무엇입니까? 왜 당신은 당신의 '친구'를 신뢰하지 않고 그에게 단지 설명 할 것을 요구할 것입니까? – Clifford

답변

5

Black-box testing. 소스가 있으면 프로그램이 어떻게 작동하는지에 대한 시각이 왜곡 될 수 있습니다.

2

많은 것을 쳐다 보지 않아도됩니다. 그러나 디버거를 연결하여 실행할 수 있으므로 중단 점을 설정하고 메모리 영역을 검사하고 충돌을 조사 할 수 있습니다.

그러나 soure 코드는 디버깅을위한 기본 도구로 남아 있습니다. 바이너리 자체만으로는 심각한 디버깅에는 쓸모가 없다. (테스트가 아닌, 소스에 액세스하지 않고도 소프트웨어를 크게 테스트 할 수있다.)

-2

그는 아마도 디버그를 원했습니다. 또한 컴파일러가 호출되는 방법 (예 : gcc의 경우 -g)에 따라 이진 파일에 소스 코드 정보가 여전히 포함될 수 있습니다.

+1

바이너리에는 소스가 포함되어 있지 않습니다. 소스 코드의 특정 라인을 가리키는 디버그 정보가 포함되어있을 수 있지만 소스 디버거가 없으면 라인 내용이 아닌 라인 번호 만 알려줍니다. – qrdl

0

컴퓨터에서 코드를 다시 컴파일하려면 컴파일 옵션이나 라이브러리 차이를 없애기 위해 얻은 바이너리와 동일한 지 확인하고 싶을 것입니다.
이제 디버깅 할 때 자주 어셈블리를보고 싶습니다. 아마도 이것이 의미하는 것일 수 있습니다.

0

그는 테스트를 수행하고 발견 한 버그를보고 할 수 있습니다. 그다지 많지는 않지만 그 자체가 유용 할 수 있습니다. 사람들은 자신의 코드를 테스트 할 때 악명 높게 악명이 높습니다. 왜냐하면 그들은 강력하고 파괴하고 싶지 않기 때문입니다. 독립적 인 테스터는이를 도전으로 간주합니다. 그들의 성능은 그들이 발견 한 버그의 수를 기반으로합니다; 당신의 성과는 당신이 그들을 위해 얼마나 어려운가를 기반으로합니다.

관련 문제