디버거 툴인 gdbserver 와 gdb를 이용하여 원격 디버깅을 할 수 있는 방법을 포스팅한다. Remote debugging이란 실제로 Application이 동작하고 있는 Target에 gdbserver를 실행시켜 원격 Host에서 gdb 및 toolchain을 활용하여 디버깅하는 방식이다. Ref. Linux Foundation Conf...
Toolchain 이 준비가 됐다면 일단 도구들은 다 준비가 됐다고 봐도 된다. 이제 실제로 디버깅을 해야할 대상을 디버깅 할 수 있게 만들자. Compiler Option 조정 Ref: Linux Foundation 2020 Conference 먼저 c나 c++ 소스코드를 컴파일 할때 위 그림처럼 -g 옵션이나 -gN 옵션을 주어 sourc...
What is Toolchain? Toolchain이란 말 그대로 Cross Develepment를 위한 도구들의 집합이다. Ref: Linux Foundation 2020 Conference 위 그림처럼 GNU Toolchain은 크게 컴파일러, binutils, C 라이브러리, GDB 디버거로 나뉘어진다. 컴파일러 : 호스트 개발환경...
Modern C++의 l-r-value & Move Semantic 에 대하여 0. Preface 들어가기 전에 참조(&)와 포인터(*)의 기본 개념을 짚어보자. 참조(&)는 포인터(*)와 같이 메모리 어딘가에 위치한 개체의 주소를 저장한다. 하지만 참조는 한번 초기화 된 후 다른 개체를 참조하거나 null로 만들 수...
What is Cross Development? Cross Development란 내가 지금 개발하고 있는 환경과 실제 개발된 어플리케이션이 동작하는 환경이 다르게 어플리케이션을 개발하는 것을 의미한다. 예를 들면 Windows 10 환경에서 Visual Studio로 Windows 10에서 동작하는 어플리케이션을 만들 수도 있지만, 프레임워크의 ...
2020년 회고록 누가 그러던가 대리~과장이 가장 일을 잘할 때고 많이 할 때라고.. 눈 감았다 뜨니 4Q가 왔다. 헐이다 헐 4.5년간의 대학원 생활때는 이론적인 부분에 집중한 연구를 했고, 3년간의 군복무 기간동안에는 사용자를 위해 최대한의 실행력을 요구하는 일을 했다가, 이제는 그 두 부분이 모두 필요한 플랫폼 개발쪽의 일을 하고 있다...
constexpr 0. Preface 필자는 constexpr 가 왜 이리도 헷갈리는지 진짜 잠을 설칠 정도였다. 도저히 못참겠어서 이렇게 정리하기로 한다. constexpr는 Modern cpp 인 c++11 이상에서 지원되고 잇다. constexpr의 스펙은 STL 버전이 진화하면서 따라 달라지고 있다고 한다. 다양한 강의자료 및 사용처들을...
CV-qualifiers 0. Preface const 는 Contatnt 즉 상수를 표현하기 위한 기법이고 volatile 은 휘발성(?) 타입이라는 것을 표현하기위한 기법이다. STL에서 cont는 volatile 과 함께 cv qualifiers 로 정의한다. Link: 1. Notation C++ 에서 cv qualifiers 와 같은 ...
set set -e set -e 가 script 내에 실행되어있으면 동작하는 쉘 환경은 script명령어가 error 를 발생하면서 죽었을때 다음 명령을 수행하지 않는다 exit code 일반적으로 unix 에서는 0 은 성공, 1~255 는 error code 로 인식됨 인식되는 범위는 0~255 16bit $? 로 결과값을 확인 가능 $ ...
6. sed sed Utility를 사용안해본사람은 있어도 한번만 사용한 사람은 없다 전해지는 전설의 레전드 Appendix. References General : http://tldp.org/LDP/Bash-Beginners-Guide/html/sect_07_01.html