Posts
J's Dev Blog
Cancel

ABI(Application Binary Interface) 표준 Application간 binary 데이터를 어떻게 교환해야 하는지 다음과 같은 규칙들을 정한다. 데이터 타입과 정렬 방법 함수 호출 시 인수 및 결과에 대해 레지스터 교환 방법 시스템 콜 호출 방법 프로그램 코드의 시작과 데이터에 대한 초기화 방법 파일 교환 방...

정의 ARM이 64bit을 도입하며 한 정의 AArch32 – Thumb 모드 실행을 포함한 ARM에서 정의된 레거시 32비트 명령 집합 아키텍처(ISA)입니다. AArch64 – ARM에서 정의된 새 64비트 ISA(명령 집합 아키텍처)입니다. ARMv7 - AArch32에 대한 지원도 포함하는 “7세대” ARM 하드웨어의 사양입니다...

About this post 이 글은 Bain&Company 출신 Jihyo Lee님의 포스팅을 퍼온 것입니다. Preferred Networks 최근에 본 무수히 많은 AI 스타트업 중에 가장 스케일이 크고 대담한 업체. 일본기업이라 숨어있어서 그렇지 엄청나다 못해 황당한 수준이다. 초기엔 Tensorflow같은 AI framework...

Preface 본 포스팅은 아래 포스팅의 연장선이다. 03.RemoteDebuggingUsingGdbserver VS Code의 Remote-Development 기능에 대한 포스팅도 설명예정 (추후 업로드) 03.RemoteDebuggingUsingGdbserver 에서 Setup한 환경을 그대로 이어간다. 0. Setting up...

디버거 툴인 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년간의 군복무 기간동안에는 사용자를 위해 최대한의 실행력을 요구하는 일을 했다가, 이제는 그 두 부분이 모두 필요한 플랫폼 개발쪽의 일을 하고 있다...