본문 바로가기

it/c

vscode 에서 원격 디버깅 vscode를 사용해서 g++을 원격으로 디버깅하는 방법을 설명하고자 한다. 1. 먼저 ssh로 접속이 가능하도록 설정 한다. (여기 까지는 공개된 방법이 많이 있습니다) code.visualstudio.com/docs/remote/ssh Developing on Remote Machines using SSH and Visual Studio Code Developing on Remote Machines or VMs using Visual Studio Code Remote Development and SSH code.visualstudio.com 2. 작업 영역을 설정한다. 디버깅은 작업영역을 설정해야 가능 합니다. 3. launch.json 파일에 추가한다. * Run { "name": "process1.. 더보기
FindMSSQL github에 올린 내용 정리해서 올립니다.https://github.com/lmk/FindMSSQL FindMSSQLFind all MSSQL Server같은 네트워크망에 설치된 MSSQL의 정보를 조회 합니다.Visual Studio 2015 MFC 기반에서 코딩해 봤습니다.EnveromentVirsual Studio 2015MFC (v140)How to use함수 원형은 아래와 같습니다.3번째 파라미터를 생략하면 같은 네트워크망의 모든 서버를 검색합니다. (Broadcast)bool GetMSSQLInfo(CString &info, int timeout_sec, CString ip = _T(""));How to implementMSSQL을 설치하면 SQL Server Browser가 함께 설치됩니다.. 더보기
Simple Http Server 자세한 소스는 github을 참고하세요.https://github.com/lmk/SimpleHttpServer SimpleHttpServervery simple http serverdefault port: 8080modify source heresupport: linux g++ 4.9.2How to useblock serverHttpServer httpServer; httpServer.Init(5, NULL); httpServer.Run();non-blockNBHttpServer* httpServer = NBHttpServer::getInstance(); httpServer->Init(5); httpServer->Start(); sleep(60); httpServer->Stop(); 더보기
OpenSSL 을 사용한 RSA RSARSA 생성PEM public 키로 RSA 생성하기unsigned char *key = "PEM 형식의 public 키"; BIO *bio = BIO_new_mem_buf(key, -1); RSA *rsa = PEM_read_bio_RSA_PUBKEY(bio, &rsa, NULL, NULL);PEM private 키로 RSA 생성하기unsigned char *key = "PEM 형식의 private 키"; BIO *bio = BIO_new_mem_buf(key, -1); RSA *rsa = PEM_read_bio_RSAPrivateKey(bio, &rsa, NULL, NULL);RSA 생성int bits = 2048; BIGNUM *bn = BN_new(); if ( BN_set_word(bn, R.. 더보기
Visual Leak Detector 를 사용하여 Leak을 감지하는 방법. Visual Leak Detector 를 사용하여 Leak을 감지하는 방법.사용조건Visual Studio 2008/2010/2012/2013/2015사용방법 (VS2010 기준으로 설명합니다.)홈페이지에서 VLD를 다운받아 설치합니다.https://vld.codeplex.com/releases/view/619330Visual Sutdio 설정을 합니다.VS를 실행하고, 적용할 솔루션을 엽니다.VS를 실행해서 보기 > 다른 창 > Property Manager 창을 엽니다.Property Manager 창에서 아무 프로젝트에서든 선택하고 적용하고자 하는 구성에서 "Microsfot.Cpp.x64.user"를 더블클릭 합니다.속성 페이지가 열리면, 왼쪽 메뉴 트리에서 VC++ Directorys > Inc.. 더보기
debian 계열 linux에서 core 파일 생성 방법 1. core 파일을 최소 크기를 설정 한다. $ ulimit -c unlimited $ ulimit -a 2. core 파일의 네이밍 룰을 지정한다. $ echo "/etc/core" > /proc/sys/kernel/core_pattern > login 시 마다 동일한 설정을 해야 한다. [ 참조 ] http://kthan.tistory.com/entry/%EB%A6%AC%EB%88%85%EC%8A%A4Linux-ulimit-%EC%9C%BC%EB%A1%9C-coredump-%EC%84%A4%EC%A0%95 http://manywaypark.tistory.com/entry/core-file%EC%9D%80-%EC%96%B4%EB%94%94%EC%97%90 더보기
Serial-port 관련 자료 정리 centos 에서 Serial-Port를 이용한 파일전송 모듈을 개발하면서 정리한 자료 입니다. 시리얼 포트 상태 확인 장치 확인 $ cat /proc/tty/driver/serial serinfo:1.0 driver revision: 0: uart:16550A port:000003F8 irq:4 tx:930342833 rx:215304 brk:145317 RTS|CTS|DTR|DSR 1: uart:16550A port:000002F8 irq:3 tx:1090 rx:0 RTS|CTS|DTR|DSR|CD 2: uart:unknown port:000003E8 irq:4 3: uart:unknown port:000002E8 irq:3커널에서 시리얼 드라이버 load 되었는지 확인 $ dmesg | grep t.. 더보기
core 파일이 생성되는 한가지 상황 오늘 하루종일 삽질한 내용이 있어서 기록을 남긴다. [ 상황 ] 패킷 내용이 추가되어서 기존 모듈을 수정하게 되었다. 컴파일을 잘되는데, 실행하면 계속 core 파일이 생성되면서 프로세스가 죽는다. 수정 한 부분을 전체 주석으로 막아도, Call Stack을 체크 해보면 특정 함수를 진입하는 시점에 죽어 버린다. [ 원인 ] 원인은 패킷 사이즈가 커지면서, Stack 영역에 할당 할 수 있는 최대 메모리 사이즈를 초과한 것이다. [ 해결 방안 ] Stack 영역이 아닌, Heap영역에 메모리를 할당 하면 된다. 원인 밝히느라 오전 내내 삽질, 정적 메모리 구조를 동적 구조로 바꾸느라고, 오후 내내 디버깅 및 삽질.. 오늘 하루도 이렇게 날려 먹었다. [ Code ] -. Stack 영역에 할당 할 수 있.. 더보기
Pro*C/C++ Precompiler Programmer's Guide [ 원문 링크 ] http://download.oracle.com/docs/cd/A58617_01/server.804/a58233/toc.htm [ 다운로드 링크 ] 더보기
한글이 포함된 문자열을 특정 byte로 자르기 한글이 포함된 문자열의 경우에 한글 중간에 끊기지 않도록 left 함수를 구현 했다. 유니코드 한글을 구분하기 위해서는 메크로 함수를 수정해 주어야 한다. #include #define IsHangle(c) ((unsigned char)(c) > 0x7f) char* left(char* sz, int len) { int i = 0; if ( strlen(sz) 더보기