우선 Visual Studio 2008로 컴파일 된 Windows 32 비트 시스템에서 C로 실행하고 있습니다. 디버그 모드로 실행 중입니다. 내 코드는 기본적으로 이것이다 :왜 execvp를 호출 할 때이 오류가 발생하지 않습니까?
argv[0] = "pgserv";
argv[1] = "pgserv";
argv[2] = NULL;
예, 그 인수로 pgserv
와 pgserv
응용 프로그램을 호출하는 것을 알고 있지만, 작품 : argv
세 가지 항목을 가지고 다음과 같습니다
execvp(*argv, argv);
커맨드 라인에서 잘하고 이것이 프레임 워크의 일부인 유물의 일종입니다. 같은 내가 '왜 내가 손해를보고 완전히 해요
hub.exe!_free_dbg_nolock(void * pUserData=0x024c1408, int nBlockUse=1) Line 1323 + 0x54 bytes C++
hub.exe!_free_dbg(void * pUserData=0x024c1408, int nBlockUse=1) Line 1258 + 0xd bytes C++
hub.exe!free(void * pUserData=0x024c1408) Line 49 + 0xb bytes C++
hub.exe!_execve(const char * name=0x02523a10, const char * const * argv=0x02514e38, const char * const * envp=0x00000000) Line 322 + 0x8 bytes C
hub.exe!_execvpe(const char * filename=0x02523a10, const char * const * argvector=0x02514e38, const char * const * envptr=0x00000000) Line 87 + 0xc bytes C
hub.exe!_execvp(const char * filename=0x02523a10, const char * const * argvector=0x02514e38) Line 47 + 0xd bytes C
hub.exe!execmd(char * cmd=0x02523a10) Line 25 + 0xf bytes C
:
이 줄을 치면 어쨌든, 그것은 호출 스택의 dbgheap.c/_free_dbg_nolock()
_ASSERTE(_BLOCK_TYPE_IS_VALID(pHead->nBlockUse));
탑이 어설 트리거 d는 execvp()
을 올바르게 호출하고 있으며이 코드는 argv
이 성공적으로 호출되면서 꽤 자주 호출된다고 믿어 의심치 않습니다. 어떤 아이디어/도움이 내 문제입니까? 감사.
null는 아니고,'argv' 배열을 종료하고있는 것처럼 보입니다. 아니면 당신의 모범에서 벗어 났습니까? –
나는 예제에서 빠져있다. 질문 업데이트 중입니다. – Morinar
@Morinar - 너무 조금 늦었습니다. –