도와주세요!!
글 수 15,339
2009.02.18 22:16:35 (*.107.136.86)
6660
소켓을 이용하여
보드와 컴퓨터 간에 서로 통신하고 클라이언트(컴퓨터)로 부터 받은 몇 가지 명령어를 서버(보드)가
수행하도록 프로그래밍 하였습니다.
터미널간 소통에서는 아무런 문제가 없었고, 또 다른 컴퓨터와의 소통에서도 문제가 없었는데,..
보드에서 실행을 시키면
몇 몇 명령어 실행시 보드 레지스터(?) 값으로 의심되는 수치들을 출력하면서 서버프로그램이 멈춥니다.
정확히 기억나지는 않지만
pc: 00000 sc:00000 r0: 00000000000 r1:000000000 .....
이런식으로,,
ARM의 레지스터와 카운터값 등을 출력하는거 같은데,,
왜 이런 현상이 나타나는지 모르겠네요 ;
답변 부탁드립니다.
(클라이언트에서 send()를 사용하여 서버로 전송해주고 서버는 받은 char buf를 분석, 어떤 명령어 인지 알아낸 후
보드 터미널 상에 출력, 내지는 클라이언트로 해당 정보를 다시 send()해주는 형태의 단순한 프로그램입니다.
비슷한 소스로 여러명이서 사용했는데요, 어느 명령어에서 그런 현상이 생기는 지도 정확히 같지가 않고, 심지어는
./server.x 로 실행하는 순간에 저러한 메시지를 출력하는 경우도 있었습니다.)
보드와 컴퓨터 간에 서로 통신하고 클라이언트(컴퓨터)로 부터 받은 몇 가지 명령어를 서버(보드)가
수행하도록 프로그래밍 하였습니다.
터미널간 소통에서는 아무런 문제가 없었고, 또 다른 컴퓨터와의 소통에서도 문제가 없었는데,..
보드에서 실행을 시키면
몇 몇 명령어 실행시 보드 레지스터(?) 값으로 의심되는 수치들을 출력하면서 서버프로그램이 멈춥니다.
정확히 기억나지는 않지만
pc: 00000 sc:00000 r0: 00000000000 r1:000000000 .....
이런식으로,,
ARM의 레지스터와 카운터값 등을 출력하는거 같은데,,
왜 이런 현상이 나타나는지 모르겠네요 ;
답변 부탁드립니다.
(클라이언트에서 send()를 사용하여 서버로 전송해주고 서버는 받은 char buf를 분석, 어떤 명령어 인지 알아낸 후
보드 터미널 상에 출력, 내지는 클라이언트로 해당 정보를 다시 send()해주는 형태의 단순한 프로그램입니다.
비슷한 소스로 여러명이서 사용했는데요, 어느 명령어에서 그런 현상이 생기는 지도 정확히 같지가 않고, 심지어는
./server.x 로 실행하는 순간에 저러한 메시지를 출력하는 경우도 있었습니다.)
2009.02.19 08:53:28 (*.69.191.125)
답변드립니다.
1. PC 에서 실행하였을때는 아무런 문제가 없었습니다.
2. 에러 발생하는 때가 고정적이지 않습니다. 제 생각엔 어떤 변수를 참조할 때 저런 에러가 뜨는게 아닌가,, 싶은데
범인으로 의심되는 놈들이 char 형 포인터 4개가 있습니다.
1. PC 에서 실행하였을때는 아무런 문제가 없었습니다.
2. 에러 발생하는 때가 고정적이지 않습니다. 제 생각엔 어떤 변수를 참조할 때 저런 에러가 뜨는게 아닌가,, 싶은데
범인으로 의심되는 놈들이 char 형 포인터 4개가 있습니다.
1. 타겟보드에서 실행하는 프로그램을 PC에서 실행했을 때 이상이 없는지요?
2. 에러 발생을 추적하여 어느 행에서 발생하는지 확인하시고,
에러가 발생한 행에서 어떤 명령을 수행하는지를 알아야 원인을 알 수 있습니다.
가장 간단한 방법으로 printf()를 이용하여 에러가 발생하는 행을 추적해 보시기를 권합니다.