2012-07-02 2 views
3

VS에서 디버깅중인 프로그램에서 배열을 시각화하는 작업을 받았습니다. 외부 프로그램에서 Visual Studio 디버깅 세션에 연결하여 데이터를 가져 오는 방법이 있습니까?Visual Studio 디버거에서 변수 가져 오기

+0

왜 외부 프로그램으로 보내야합니까? VS에서 시각화 할 수 없습니까? –

+0

글쎄, 변수를 외부 프로그램에 보내고 MATLAB에 보내고 싶습니다. Visual C#에서 Visualizer를 작성하는 방법을 찾았지만 관리되지 않는 C++ 코드를 디버깅해야했습니다. C++ 변수를 보낼 수있는 방법이 있습니까? –

답변

2

이론적으로는 Debugger.GetExpression API를 사용하여 디버거에서 값을 읽어 MATLAB에 전송할 수 있지만, 비교적 큰 양의 데이터 (예 : 대형 행렬 또는 벡터)에 대해 말하면, 합리적인 성능을 가진이 솔루션은 다소 슬림합니다.

더 쉬운 솔루션은 디버거에서 자신의 메서드를 호출 할 수 있다는 사실을 활용하는 것입니다. 코드에서 데이터를 MATLAB으로 보내는 메서드를 정의하고 데이터가있는 동일한 위치에 정의되어 있는지 확인하십시오 (디버거가 접근성 문제에 대해 불평하지 않도록) 직렬화를 정의한 다음 Watch 또는 Immediate 창에서 해당 메서드를 실행하기 만하면됩니다.

0

이것은 외부 프로그램과 정확하게 일치하지는 않지만 그럼에도 불구하고 유용합니다. msdn docsan example (또는 sample for C++). 이제 절대적으로 프로그램이 배열에 액세스하기를 원한다면 아무 것도 시각화하지 않고 소켓/파이프를 통해 다른 프로그램으로 데이터를 전송할 수있는 사용자 정의 비주얼 라이저를 작성할 수 있습니다 (한 번이 원리를 사용하여 오디오 데이터가있는 배열을 표시했습니다. 디버깅 세션 중 Labview, 매우 편리).

+0

음, 시각화 할 관리되지 않는 C++ 코드가 있습니다. 그것을 할 방법이 있습니까? –

+0

C++에 대한 예제를 참조하십시오. 데이터를 그래프로 표시하는 외부 프로그램에 소켓을 통해 데이터를 전송하는 데 기본으로 사용했습니다. – stijn

관련 문제