@@ -1842,10 +1842,11 @@ static void print_block(struct ptxed_decoder *decoder,
1842
1842
diagnose (decoder , ip , "reconstruct error" , - pte_nosync );
1843
1843
}
1844
1844
1845
- static void check_block (const struct pt_block * block ,
1846
- struct pt_image_section_cache * iscache ,
1845
+ static void check_block (struct ptxed_decoder * decoder ,
1846
+ const struct pt_block * block ,
1847
1847
uint64_t offset )
1848
1848
{
1849
+ struct pt_image_section_cache * iscache ;
1849
1850
struct pt_insn insn ;
1850
1851
xed_address_width_enum_t addr_width ;
1851
1852
xed_machine_mode_enum_t mode ;
@@ -1856,7 +1857,7 @@ static void check_block(const struct pt_block *block,
1856
1857
uint16_t ninsn ;
1857
1858
int errcode ;
1858
1859
1859
- if (!block ) {
1860
+ if (!decoder || ! block ) {
1860
1861
printf ("[internal error]\n" );
1861
1862
return ;
1862
1863
}
@@ -1874,6 +1875,7 @@ static void check_block(const struct pt_block *block,
1874
1875
mode = to_xed_mode (block -> mode );
1875
1876
xed_state_init2 (& xed , mode , addr_width );
1876
1877
1878
+ iscache = decoder -> iscache ;
1877
1879
ip = block -> ip ;
1878
1880
do {
1879
1881
errcode = block_fetch_insn (& insn , block , ip , iscache );
@@ -1978,7 +1980,6 @@ static void decode_block(struct ptxed_decoder *decoder,
1978
1980
const struct ptxed_options * options ,
1979
1981
struct ptxed_stats * stats )
1980
1982
{
1981
- struct pt_image_section_cache * iscache ;
1982
1983
struct pt_block_decoder * ptdec ;
1983
1984
uint64_t offset , sync , time ;
1984
1985
@@ -1987,7 +1988,6 @@ static void decode_block(struct ptxed_decoder *decoder,
1987
1988
return ;
1988
1989
}
1989
1990
1990
- iscache = decoder -> iscache ;
1991
1991
ptdec = decoder -> variant .block ;
1992
1992
offset = 0ull ;
1993
1993
sync = 0ull ;
@@ -2062,7 +2062,7 @@ static void decode_block(struct ptxed_decoder *decoder,
2062
2062
offset , time );
2063
2063
2064
2064
if (options -> check )
2065
- check_block (& block , iscache ,
2065
+ check_block (decoder , & block ,
2066
2066
offset );
2067
2067
}
2068
2068
break ;
@@ -2078,7 +2078,7 @@ static void decode_block(struct ptxed_decoder *decoder,
2078
2078
offset , time );
2079
2079
2080
2080
if (options -> check )
2081
- check_block (& block , iscache , offset );
2081
+ check_block (decoder , & block , offset );
2082
2082
}
2083
2083
2084
2084
/* We're done when we reach the end of the trace stream. */
0 commit comments