2009-07-29 2 views
9

Windows에서 Ubuntu Linux로 옮겼습니다. 이제 개발 환경을 설정하고 싶습니다. 문제는 내가 윈도우 PE 바이너리를 생성 내가 코드를 시도 처음에 이클립스의 Linux 박스에서 교차 디버그 Windows 응용 프로그램 CDT

  • 방법 할 디버그 윈도우 PE 바이너리
  • 하려면 Visual Studio에 비교

  • 방법을

    1. C/C++ IDE를 필요로한다는 것입니다 :: 블록. Here 크로스 개발을위한 가이드를 찾았으므로 Wine에서 컴파일되고 실행되는 "Hello World"를 얻을 수있었습니다. 또한 디버깅도 효과적입니다.

      하지만 Eclipse + CDT 플러그인이 훨씬 더 고급 IDE라는 것을 알았습니다. 나는 약간의 시간을 보냈고 마침내 컴파일되고 링크 된 프로젝트를 얻는다.

      이제 Eclipse CDT 내에서 작동하는 GDB의 MinGW Insight 버전을 얻으려고합니다. Code :: Blocks 가이드에 설명 된 디버거를 사용하는 간단한 방법은 더 이상 작동하지 않습니다. "오류 세션 생성 중"메시지가 계속 나타납니다.

      내 질문은 어떻게 Eclipse에서 디버거 백엔드로 Wine에서 MinGW GDB를 사용할 수 있습니까? 또는 Linux-> Windows 교차 개발에 가장 적합한 IDE는 무엇입니까?

  • 답변

    3

    아무도 아직 답변을 안했는지 궁금합니다.

    1. QtCreator. 그 이름으로 혼동하지 마라. QtCreator는 어떤 종류의 C++ 코드와도 잘 작동한다. Qt를 사용하기 위해 코딩 할 필요가 없다. FOSS Visual Studio와 같습니다. "on fly"구문 확인 기능도 있습니다.

    2. MinGW. 여기에 그다지 말할 게 없지만 Win PE 실행 파일이 만들어지고 작동합니다. 리포지토리에서 사용할 수 있습니다. Win GUI 응용 프로그램에는 PE 헤더 세트에 특별한 비트가 있습니다. 그래서 MinGW로 GUI 응용 프로그램을 만들려면이 비트를 설정하기 위해 -mwindows 옵션을 전달해야합니다.

    3. 이것은 문제입니다. 정말로 : 저는 단지 윈도우 애플리케이션을 디버깅하려하고 있습니다. 아직 방법을 찾지 못했습니다.

      • winedbg을 : 나는 곧 내 갈퀴 밟지하는 난 그냥 순서대로, 지금까지 시도 여기에서 기억됩니다. 아마 그것은 작동해야하지만 나에게는 그렇지 않았다. 중단 점을 설정할 때 (예 : br 43) Unable to add breakpoint (unknown address 7b860807)이라고 표시됩니다.

      • winedbg. 그래, 다시.하지만 이번에는 gdb에 명령을 프록 싱하도록하기 위해 이것을 winedbg --gbd과 같이 사용할 것입니다. 아마도 이것은 응용 프로그램을 디버깅하는 유일한 방법 일 수 있지만 단점이 있습니다. 첫째, 응용 프로그램을 다시 시작하려면 디버거를 종료해야합니다. run을 입력하면 원격 대상이이를 지원하지 않는다고 표시됩니다. 둘째, 멀티 스레드 응용 프로그램을 디버깅하는 방법조차 모릅니다. 처음 시작했을 때 오류 Non-stop mode requested, but remote does not support non-stop이 발생하여 중단 점을 설정하고 시작한 후 다음과 같이 표시됩니다. Cannot insert breakpoint 1.Cannot access memory at address 0x401654.따라서이 작업을하려면 내 .gdbinit 파일 의 이름을 바꿔야합니다 (즉, 논스톱 모드가 설정되어 있음).

      • gdb.exe. 나는 방법을 찾았다는 것을 확신했다 : windows 버전의 간단한 사용 gdb는 문제를 해결해야한다; 이상, 나를 위해, 이맥스 녀석으로서, 그것은 절대적으로 네이티브 gdb로 디버깅과 동일합니다. 그러나 슬프게도 창문 gdb가 작동하지 않습니다. 명령을 실행하고 명령을 입력하면 아무 것도 수행하지 않습니다. Ctrl-cCtrl-z 명령에 대해서만 반응합니다. 아마 여유 시간에 메일 링리스트에서 질문을하려고 노력할 것입니다. 자, 이제 우리는

    그래서 우리가 디버그와 함께 할 한 ... 사용할 수없는 이유는 무엇입니까? 대부분 WINE에서 작동하는 다른 Windows 디버거를 찾아야합니다. OllyDbg가 올바르게 작동했음을 기억하지만 현재 소스 코드를 표시하는 방법을 모르겠습니다.

    +0

    +1 for QtCreator. 그것은 GCC 툴 체인에서 잘 작동합니다. – yasouser

    +0

    나는 아직 포스트를 업데이트하지 않고, 정보를 주석으로 남겨 둔다. 제대로 실행되도록'gdb.exe'를 와인과 함께 실행하는 방법을 발견했다.'wineconsole --backend = curses gdb.exe'처럼 보일 것입니다. . –

    +0

    그냥'gdb.exe '를 emacs에서 시험해 보았는데 쓸모가 없다. ( –

    0

    시도해 볼 수 있습니다. 및 크로스 플랫폼 지원 IDE의 무료 오픈 소스입니다.

    -2

    VM에서 Windows를 실행 하시겠습니까?

    진지하게 질문은 좋지만 답변을 찾는 데 시간을 할애 할 가치가 없을 것입니다 (특히 아무도 준비된 대답을 얻지 못했기 때문에). 실제해야 할 일이 있다면 VM의 기본 Windows 또는 Windows가 답입니다.

    +0

    VM으로 Windows를 실행하고 있는데, PC에 2Gb RAM 밖에 없기 때문에 이것은 좋지 않습니다. 한 번 발견되면 시간을 할 가치가 있다고 확신합니다. 언제 어디서나 사용할 수 있습니다. –

    관련 문제