전체 글 264

[C++] StackWalker64 / 스텍 추적

Visual Studio에서 _asm 키워드때문에 가져온 문제이다. 먼저, 64비트에서는 더이상 MSVC 친구가 _asm 키워드를 지원하지 않는다. 그래서 보통 _asm 코드를 새로 만들어서 Visual studio에서 링크를 새로 걸어 처리하는 방식이다. 그런데 Windows api에 _asm에 적힌 메모리 추적 관련 함수를 제공하고 있었다. 그래서 _asm 어셈블리 코드의 내용과 같은 기능을 코드로 적용하는 방식이 있다. 그와 관련해서 2가지 api가 존재한다. 이중에서 Stackwalk64가 유명한것 같다. 필자는 _AddressOfReturnAddress api로 원래의 _asm 코드와 같은 코드를 만들어서 처리했다. StackWalker64를 활용한? 스레드 및 call stack을 확인할 수 ..

C , C++, C# 2022.02.13

[Vscode] C++ 디버깅 및 단축키

vscode를 사용하면서 생산성 문제가 있어 여기다 정리를 한다 그전에 원래 CS를 잘 모르고 항상 회의감을 가지지만 1인분이라는 마인드로 여기다 기록해둔다. 먼저 Makefile 이나 CMake가 아닌경우 vscode에서는 현재 환경에 사용할 수 있는 컴파일러를 바탕으로 실행 환경과 빌드 환경을 적용할 수 있다. 물론 하나의 소스파일에 대해서 자동으로 생성해준다 아 물론 C++ Extensioon이 설치되어 있어야 한다. 명령 팔레트에서 Run Build Task 항목에서 아래와 같이 설정할 수 있다. 환경에 맞는 설정을 하면 바이너리가 떨어질 것이고 이 파일을 바탕으로 실행과 디버깅을 할 수 있다. *여러 소스파일 및 헤더파일과 라이브러리 등 복잡한 경우 settings.json에서 설정을 해야한다...

기타 2022.02.13

[Blockchain] 테스트서버에 코인만들기

뭐든 돈이 될만한 그럴듯한 것들은 시도해보는게 맞는거 같고.. 코인도 만들면 좋고 또한, 관련 영상이 즐겨보니 동영상에서 확인할 수 있었다. 이는 그 영상의 내용을 가져온 것이다. 실제 서버에 하려면..? 돈이 필요할것 같다.. (나중에 언젠가 해보자) 우선 이곳에서의 자료를 바탕으로 따라해보며 부족한 내용이 있을 수 있다. 메타마스크 지갑 생성은 따로 설명하지 않으며 테스트넷을 통해 생성하고 테스트 이더리움 코인을 만드는 작업이 선행되어야한다. 이후 아래 링크를 통해 Remix.ide 로 직접 원하는대로 작업하는데.. 잘 참고하면 좋을 것 같다. https://www.youtube.com/watch?v=t_vTQEQVCkQ&list=PLzMcBGfZo4-msMNfRJT5cLSge23P5bqUx&inde..

기타 2022.02.03

[python] sqlacodegen 데이터 ORM

.db 나 .csp 파일의 내용을 파이썬 코드로 가져올 수 있는 모듈이다. https://github.com/agronholm/sqlacodegen GitHub - agronholm/sqlacodegen: Automatic model code generator for SQLAlchemy Automatic model code generator for SQLAlchemy. Contribute to agronholm/sqlacodegen development by creating an account on GitHub. github.com 데이터 베이스의 내용을 바탕으로 SQLAlchemy 모델 코드를 생성해준다. SQLAlchemy는 따로 공부해야 할것이고 이를 통해 파이썬으로 DB 데이터들을 활용할 수 있게..

기타 2022.01.27

[Cmake] Cmake 와 Google test

예전 파이프라인을 관리하면서 오류가 하도 터져서 찾아보니 여기까지 왔다.... 최근에는 업데이트가 이루어지면서 Google test의 공식 document에서 제공하는 것처럼 쉽게 사용할 수 있다. 아래와 같이 사용할 수 있으며 상세 내용은 공식 문서에서 확인할 수 있다. 이렇게 tests 폴더에 라이브러리를 다운받도록 하고 각 테스에 사용하게끔 타겟을 맞춰주면 쉽게 사용할 수 있을것이다. 예전 Google test를 Cmake와 적용하는 방법은 아래와 같다. 보통 CmakeLists.txt 파일에 CmakeLists.txt.in을 외부 라이브러리로 사용한다. https://google.github.io/googletest/quickstart-cmake.html Quickstart: Building wi..

기타 2022.01.27

[vscode] python format 설정과 launch.json

작업중, 코드 포맷이 너무 다르길래 requirement를 보니 black? 패키지가 있었다. 조금만 검색해보면 코드 포맷 패키지임을 알 수 있고 vscode에서 자주 사용하는 포맷들에 대해 확인할 수 있다. 명령 팔레트로 사용자 설정에 들어가 아래와 같이 설정을 확인할 수 있다. 이렇게 적용했는데 인터프리터 문제가 있어 이는 이전글을 확인해 보면 된다. 그리고 저장할때마다 자동으로 포맷팅이 되도록 적용하면 포맷이 적용된다. 이렇게 진행하다... 스크립트를 디버깅할 수 있다. vscode에서 디버깅을 하기 위해서는 launch.json이 필요하는데.. 보통 F5를 눌러 launch.json을 자동으로 생성하여 디버깅하지만 필자는 .vscode에 launch.json을 만들고 기본 설정을 복붙한다. 그러면..

기타 2022.01.19

[vscode] python 설정

원래 파이썬 스크립트는 파이참이 잘 되어 있어 그걸로 사용하는데.. 살다보니 vscode C++ 개발환경안에 테스트 코드로 python script가 있다. 이를 로컬에서 실행하고 테스트하려면? 단연 파이썬 스크립트 환경이 필요하다.. 그래서 vscode에서 인터프리터를 적용하고 가상환경을 만들어 실행하는 등의 작업이 필요하다. 먼저 파이썬은 다 설치되어 있고 가상환경을 만들어야 한다. 적당한 경로에 venv 이름으로 만드는데 그 명령은 python -m venv venv -> 가상환경을 만들고 source [경로]/bin/activate -> 를 실행하면 터미널에 venv 가상환경이 적용된것을 확인할 수 있다. 문제는 자꾸 인터프리터가 없다하고 python 포맷인 black 패키지가 없다하고... 뭔가..

기타 2022.01.19

[WSL] WSL2: copy from Windows to WSL2

먼저, WSL2를 Windows Terminal에서 실행하면 경로가.. /mnt/c/... 식으로 되어있을 것이다. 우리가 아는 리눅스 home 디렉토리가 아닐텐데 cd ~ 명령어로 쉽게 home directory에 올수있다. 거기에 explorer.exe . 을 실행하면 현재 home 디렉토리에서 파일 관리자를 열 수 있다. 문제는 여기이다. 파일 관리자에서 home디렉토리로 문서의 파일을 복사 붙여넣기 하면 아래와 같다. 그래서 리눅스의 cp 명령어를 사용하여 파일을 복사 붙여넣기 해야한다. https://stackoverflow.com/questions/42586120/copy-files-from-windows-to-windows-subsystem-for-linux-wsl Copy Files fro..

빨간색 에러들 2022.01.18

[WSL] WSL2 Virtualbox Conflict (2/2)

이전에 WSL2로 세팅을 잘 했다면.... 이제 마음껏 WSL2를 사용하면 된다. 문제는 Virtualbox이다. 필자는 Virtualbox가 가상화기능과 Hyper-v 옵션을 허용하지 않고 WSL2는 이 기능을 사용해야만 하기 때문에 충돌이 발생한다. 다행히 최근에 관련 패치가 일어난것을 확인할 수 있다. 하필, 필자의 Virtualbox 버전이 가장 Conflic이 많이 일어나는 버전이었다. 아래 내용을 확인해보면 최근 패치인 Virtualbox 6.1.30 이상의 버전에서 이 문제가 해결되었다. 그래서 Virtualbox를 6.1.30으로 업데이트하면 WSL2가 실행되어 있어도 가상환경을 자유롭게 사용할 수 있다. https://github.com/MicrosoftDocs/WSL/issues/798..

빨간색 에러들 2022.01.18

[WSL] WSL2 Virtualbox Conflict (1/2)

WSL2를 사용하다 보면 Virtuala box를 사용하지 못하는 경우가 많다. 먼저 WSL2를 사용하려면 가상화는 끄고 / 리눅스 하위 시스템 등의 옵션을 활성화해야한다. 제어판 -> 프로그램 -> Windows 기능 끄기 / 키기 에서 확인할 수 있다. 그리고 보통 스토어에서 Windows Terminal 앱과 Ubuntu를 설치하여 사용한다. 명령어로는 아래와 같다. 필자의 경우 아래 명령어로 WSL 버전을 확인하고 적용하였다. 처음에 WSL 1이었는데 이런 세팅에서 자꾸 에러가 발생하는데.. 에러 내용을 잘 읽어보면 WSL2 리눅스 커널 업데이트가 필요하다는 영문을 확인할 수 있다. 해당 패키지로 커널을 업데이트하고 적용하면 잘 될것이다. https://docs.microsoft.com/ko-kr..

빨간색 에러들 2022.01.18