6/28/2020

VS Code 설정 및 Debug

1. VS Code Debug

아래와 같이 C 기반으로 테스트 프로그램 작성하여 진행 진행

#include <stdio.h>

int test0()
{
	int test0=0;
	printf("Hello World %d\n",test0);
	return 0;
}

int test1()
{
	int test1=3;
	printf("Hello World %d\n",test1 );
	return 0;
}

int test2()
{
	printf("Hello World 2\n");
	return 0;
}

static int world=2;

int main ()
{
	test0();
	test1();
	test2();
	printf("main World %d\n",world);

 	return 0;
}


VS Code에서 좌측아이콘의 Run and Debug 메뉴로 이동 후 lauch.json 부분 수정 

.vscode/launch.json
{
    // Use IntelliSense to learn about possible attributes.
    // Hover to view descriptions of existing attributes.
    // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        {
            "name": "(gdb) Launch",
            "type": "cppdbg",
            "request": "launch",
            "program": "${workspaceFolder}/test",
            "args": [],
            "stopAtEntry": false,
            "cwd": "${workspaceFolder}",
            "environment": [],
            "externalConsole": false,
            "MIMode": "gdb",
            "setupCommands": [
                {
                    "description": "Enable pretty-printing for gdb",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": true
                }
            ]
        }
    ]
}



상위 program 항목: ELF or a.out 으로 심볼테이블 찾아야함
상위 설정 후 좌측 Run Debug 메뉴에서 손쉽게 디버깅 (이미 gdb와 관련부분 이미설치됨)

VS Code 의 Debugging 문서 
세부사항은 아래 문서참조 
  https://code.visualstudio.com/docs/editor/debugging


1.1 OpenOCD 에 연결

만약 OpenOCD의 gdbserver에 연결하고자 한다면, 아래와 같이 Server Address 추가 
Linux에서 build를 했다면, 내부에 gdbinit이 존재할 것이며, 아래와 같이 gdb 위치도 추가

    "configurations": [
        {
            ....
			"miDebuggerServerAddress": "localhost:3333",
			"miDebuggerPath": "gdb path ",
             ....
        }            



1.2 VS Code의 Task 사용법

VS Code에서 Task를 이용하여 외부툴 연결 

Task를 만들어서 VS Code에서 쉽게 Command를 만들어 Shell Script등을 연결하자.

VS Code의 Menu  
Terminal-> Run Task 실행

6/17/2020

VS Code 와 Remote X11 연결

1. WSL 과 VcXsrv의 X Server 연결 

WSL를 사용해본 결과 기능은 제한적이며, WSL2의 경우 Virtual Machine 기능기반으로 사용이 가능하다고 한다. 
하지만, 일반 Virtual Box에서 와 비교하여 제한적이므로 사용시 주의하도록하자. 
WSL2의 경우 Virtual Machine 사용하므로 Virtual Box사용시 문제가 발생한다. 
나의 경우 Virtual Box로 선택해서 사용하지만, 단순한 Linux 사용은 WSL도 괜찮은 것 같다. 
별로 추천은 안함 

  • WSL관련설치 및 WSL2 
관련문서가 변경되어지는 것으로 보아 앞으로도 어떻게 변경될지 모르니, 차라리 MS 문서참고 (WSL가 설치방법은 생략)


  1. 검색->제어판 실행 
  2. 프로그램->Windows 기능 켜기/끄기 



WSL2로 변경이 되어 WSL 설정기능이 없어진것 같으며 확인만 하자



  • WSL Ubuntu 18.04  설치 후 설정
WSL의 Ubuntu 18.04 설치 후 실행하여 update와 upgrade 진행

$ sudo apt-get update
$ sudo apt-get upgrade


  • Package xfce4 별도 설치 

$ sudo apt-get install xfce4 


  • X Server 관련설정

$ cd ~
$ nano .bashrc  //.bahrc 설정 
......
export DISPLAY=:0.0    // [host]:<display>.[screen]

or

$ export DISPLAY=:0.0    // [host]:<display>.[screen]


  • VcXsrv 설치





  • Xlaunch 실행 








우측의 백그라운드로 돌아가는 것을 확인가능하며, X Server 설정을 간단히 확인가능
Host:0.0


  • WSL Ubuntu 18.04  실행 
$ startxfce4
/usr/bin/startxfce4: X server already running on display :0.0
....



  • Window에서 WSL X Window 실행완료 

Window에서 WSL의 X Server를 실행




1.1 SSH의 X Forwarding 기능사용 

Linux에서 SSH의 -X 옵션을 주어 기본적으로 X Forwarding을 가능한데, 이와 같은 기능으로 전체 X Server를 사용하지 않고 창만 사용

  • Xlaunch 실행 


Window의 종류를 선택



  1. Start no client   ( Window에서 X Server 실행되며  Background로 실행됨)
  2. Start a program  (xterm를 이용하여 접속하여  X Server를 접속시도 )




  1. xcalc 실행하며 바로 xcalc 실행가능 
  2. xterm 실행  (SSH로 실행한 후 X11 Forwarding이 되므로 eog or xcalc 로 테스트 가능)




Remote X11 (VcXsrv)
VcXsrv 와 WSL 와 연결
  https://medium.com/@dhanar.santika/installing-wsl-with-gui-using-vcxsrv-6f307e96fac0
  https://seanthegeek.net/234/graphical-linux-applications-bash-ubuntu-windows/

1.2 VS Code WSL 의 Remote X11 

상위를 설치 진행한 후 VcXsrv를 Start no Client 모드로 실행 (XServer 동작)한 후 VS Code Extension에서도 쉽게 Remote X11 동작가능


아래 링크의 2.2 Window WSL 설치부분  ( Remote 관련설치)
  https://ahyuo79.blogspot.com/2020/04/vs-code-extension.html




  https://marketplace.visualstudio.com/items?itemName=spadin.remote-x11