도와주세요!!
글 수 15,339
2018.09.14 14:06:22 (*.140.119.169)
32410
PC 에서 비주얼 스튜디오로 개발만 하다가
리눅스 개발을 하게되니 젤 처음 장벽이 디버깅 이네요.
기존 리눅스 어플 짜놓은 소스를 보니
C 언어인데 2만 라인 정도 되네요.
쓰레드 몇 개 , 소켓 통신, 드라이버 함수 호출,
Polling, Interrupt 함수, SD카드 파일 기록 등
다양하게 코딩이 되어있네요.
이 코드가 PC 에서 비주얼 스튜디오에서
구동된다해도 디버깅이 만만지 않을 형편인데
리눅스에 거기에 임베디드라서 도저히 막막하네요.
코드 내부에보니
디버깅을 대부분 terminal_print (시리얼 포트 연결) 나
printk (커널,드라이버의 경우) 로 하고 있네요.
GDB server 를 알아봤는데
GDB 서버 자체를 임베디드 안에 컴파일해서 넣어야한다는데
임베디드 초보로서 너무 막막합니다.
보통
terminal_print (시리얼 포트 연결) 나
printk (커널,드라이버의 경우)
정도로도 디버깅에 불편함이 없나요 ?
참 , 궁금하네요.
문제가 생기면 트레이스를 시작하고 그래도 안되면 gdb 로 넘어가고 보통 그정도입니다
장비가 있다면 금상첨화죠
보통 프린트문 -> 트레이스 -> gdb 이정도 입니다
arm 의 경우 jtag 을 이용한 장비들을 지원합니다
디버거 장비를 사용하시면 월씬 편리합니다
다만 트레이스나 gdb 로 넘어가면 학습해야 할 양도 함께 늘어갑니다