1
저는 arma Matrix를 사용 중이며 디버깅 중 값을보고 싶습니다. 그래서 나는 다음과 같은 natvis 파일을 추가 :Visual Studio 2015에서 .natvis 파일로 다차원 배열 디버깅을 사용자 정의하십시오.
<?xml version="1.0" encoding="utf-8"?>
<AutoVisualizer xmlns="http://schemas.microsoft.com/vstudio/debugger/natvis/2010">
<Type Name="arma::Mat<*>">
<DisplayString>{{ Size = {n_rows} x {n_cols} }}</DisplayString>
<Expand>
<Item Name="[size]">n_elem</Item>
<ArrayItems>
<Direction>Backward</Direction>
<Rank>2</Rank>
<Size> $i==0?n_rows:n_cols </Size>
<ValuePointer>mem</ValuePointer>
</ArrayItems>
</Expand>
</Type>
</AutoVisualizer>
그러나, 그것은 전혀 작동하지 않습니다.
조만간 나는 문제가 그래서 다음 명령문의로 대체하려고
<Size> $i==0?n_rows:n_rows </Size>
수 있습니다 relize 나는 다음 문 중 하나를 시도하는 경우는, 그러나
<size> $i==0?5:8 </Size>
<size> $i==0?n_rows:8 </Size>
<Size> $i==0?5:n_cols</Size>
를 작동 , 나는 다시 아무것도 얻지 못한다.
<size> $i==0?n_rows:n_cols </Size>
<size> $i==0?n_rows:n_rows </Size>
그런데 나는 Natvis 진단 메시지를 돌렸다. 옵션에서 "오류"로 표시되지만 오류 목록에는 아무 것도 없습니다. 어떤 도움 주조
내 이해가되지 오류가 될 것입니다, 그냥 디버거 창을 인식 할 수 있음을 의미 ArrayItems 아래의 특정 태그/속성 매개 변수에 대한 자세한 내용은 여기에서 "ArrayItems Expansion"을 사용하는 방법에 대한이 샘플을 참조하십시오. https://code.msdn.microsoft.com/windowsdesktop/Writing-type-visualizers-2eae77a2 –
Thanks Jack, 그러나 그것은 단지 1D 배열의 예제를 제공합니다. 게다가 나는 MSDN 설명을 읽었으며 에서 크기 [$ i]를 사용했습니다. 즉, if 문없이 호출 할 수 있도록 크기를 1 * 2 배열에 저장했습니다. 그러나, 나는 armadillo를 사용하고 있으며, 행렬 크기는 배열 대신에 두 개의 int로 정의됩니다. –
user3003238
하나의 드라이브를 사용하여 간단한 샘플을 나에게 공유 할 수 있습니까? 나는 당신과 같은 환경을 사용하여 내 편에서 그것을 디버깅 할 것이다. –