2012-09-14 4 views
2

수정 된 SQLite 코드에서 생성 된 SQLite 데이터베이스의 인스턴스를 디버깅하고 싶습니다. 사용자가 데이터베이스에서 일부 데이터를 선택하면 SQLite 소스 코드를 단계별로 실행하고 SQLite의 논리를 확인합니다. 이 목적은 SQLite 소스 코드에 SELECT 트리거를 추가하고 SQLite 데이터베이스에 새 유형의 트리거를 생성 할 수 있는지 확인하고자하는 것입니다. 현재 SQLite는 UPDATE, INSERT & DELETE에서만 트리거를 지원합니다.Visual Studio로 SQLite 소스 코드를 디버깅하는 방법

"amalgamation"SQLite 소스 코드를 지금까지 http://www.sqlite.org/index.html에서 다운로드하여 Visual Studio 2010에서 빌드했습니다. 그러나 어떻게 디버그할지 모릅니다. 나는 프로젝트 참조로 SQLite 프로젝트를 사용하는 테스트 C# 웹 응용 프로그램을 만들려고했으나 참조로 추가 할 수 없습니다 ("mySQLiteproj '에 대한 참조가 SOOO가 될 수 없다는 오류를 던집니다. 유능한). 내 현재 구조는 단순히 sqlite3.c 및 sqlite3.h 파일이있는 빈 C 프로젝트입니다.

SQLite 코드는 익숙하지 않은 C로 작성되었으므로 잘못된 경로로 완전히 넘어갈 수 있습니까? Visual Studio를 사용하여 스크랩하고 대신 메모장 또는 다른 "하드 코어"IDE를 사용하지 말 것을 권장합니다. :) SQLite 소스 코드를 어떻게 디버깅합니까?

편집 : 세르게이 제안 및 디버그 지금 할 수있는 "일종의"나는이 프로젝트에 shell.c 파일을 추가 한. shell.c에서는 중단 점에 도달하지만 sqlite3.c에서는 중단 점에 도달하지 않습니다. shell.c에서 함수 호출로 sqlite3.c를 사용할 수 있지만 코드가 실행중인 코드와 일치하지 않는 것 같습니다. 라인의 절반은 (아마도 resharper에 의해) 회색으로 표시되며 변수의 자동보기가 없거나 코드가 현재 위반하고있는 라인을 강조 표시하지 않습니다.

+0

Visual Studio 솔루션을 생성하고 디버그 타겟으로 빌드 한 다음 디버깅 할 수 있도록 SQLite 합병 용으로 cmake 기반 빌드를 생성했습니다. https://github.com/snikulov/sqlite.cmake.build. 희망이 유용 할 것입니다. –

답변

0

"생소한"언어로 작성된 라이브러리 코드를 디버깅하려면 처음부터 다시 시작하는 것이 좋습니다. 여기

알고리즘 :

  1. 학습 언어 (C)
  2. SQLite는 (목표 알아보기 (Visual Studio에서 디버거) 툴 알아보기 - 당신, 그래서 다른 사람을 위해 API를 제공하는 라이브러리입니다 설정 예를 들어 sqlite3_open에 대한 SQLite는 API (중단 점) 나는 그래서 당신은 비주얼 스튜디오 졸을 생성 할 수 있습니다 cmake-based build for SQLite amalgamation을 만든

Visual Studio에서 "실행"shell.c 소스 파일)가 필요합니다 ution, 디버그 타겟으로 빌드 한 다음 디버그하십시오. 희망이 유용 할 것입니다.

+0

1) C에 익숙하지 않지만 약 15 년 전에 코딩을했습니다. 2) Visual Studio 디버거에 대해 잘 알고 있으며 지난 8 년 동안 매일 사용해 왔습니다. 3) 나는이 질문을 게시 한 이유 인 SQLite를 배우기 시작했습니다. 나는 일반화가 아닌 프로젝트를 세우는 데있어 특별한 도움을 요청했다. 어쩌면 나는 당신이 유용하게 대답 할만큼 충분히 명확하게 질문을하지 않았을까요? – JumpingJezza

+0

@JumpingJezza 미안하지만, 너를 다치게하면 너. 하지만 내 소개는 디버깅을 시작하기위한 깔끔한 방법을 제공합니다. 그런 다음 두 가지 첫 단계를 생략하면됩니다. 아, 그리고 네. 아래 표를 가져 주셔서 감사합니다. –

+0

대답은 어떻게 sqlite 데이터베이스의 인스턴스를 실행하고 디버깅하는 데 도움이됩니까? downvote "이 대답은 유용하지 않습니다" – JumpingJezza

관련 문제