QtCreator IDE를 사용하여 mingw로 컴파일 된 비 Qt C DLL을 작성했습니다.QtCreator를 사용하여 DLL 프로젝트를 디버깅하는 방법은 무엇입니까?
DLL을 프로세스에 삽입하면 DLL로 인해 프로세스가 특정 코드 줄에서 충돌합니다. 나는이 라인이 OutputDebugString
의 사용을 통해 범인임을 알게되었습니다. 줄을 수정하는 방법을 알고 그 줄을 수정할 때 DLL이 작동합니다. 그러나 디버거를 사용하는 방법을 배우기 위해 필자는 줄을 깨뜨리고 수정하지 않았습니다.
QtCreator 디버거를 사용하여 똑같은 정확한 라인이 문제의 원인인지 찾는 방법은 무엇입니까?
이
문제를 재현하고 디버거에서 실행하는 라이브러리에 링크 된 작은 프로그램을 작성하십시오. 아니면 "주사"로 정확히 무엇을 의미합니까? –
@FrankOsterfeld : http://en.wikipedia.org/wiki/DLL_injection 희생 된 procces의 메모리를 편집하는 하위 수준 DLL 파일입니다. DLL 삽입 작업 방식 때문에 라이브러리와 연결할 수 없습니다. 다른 프로세스의 메모리를 편집하는 이유는 무엇입니까? Assault Cube라는 오픈 소스 프로젝트의 메모리를 편집하고 있습니다. 이 목적은 C 코드가 ASM으로 변환되는 방법과 컴퓨터가 저수준에서 어떻게 작동하는지에 대해 탐구하고 배우는 것입니다. – user2924308
음, 위의 창에서 dll과 인수를 사용하는 실행 파일 이름을 입력하면 QtCreator가 나머지 작업을 수행합니다. – Lol4t0