On Mon, 2020-05-18 at 16:30 +0100, Maxim Blinov via Gcc-help wrote: > Hi everyone, > > I am currently in the process of debugging some RTL-emitting code. > Specifically, I'm implementing an md template to get picked up by > emit_conditional_cmov. Now that is all fine and dandy, however during > debug I eventually single-step to the following function: > > insn_operand_matches (enum insn_code icode, unsigned int opno, rtx operand) > { > return (!insn_data[(int) icode].operand[opno].predicate > || (insn_data[(int) icode].operand[opno].predicate > (operand, insn_data[(int) icode].operand[opno].mode))); > } > > When we make the call into the predicate, GDB switches the view into > the corresponding machine description file. This is really not what I > want - I just want to step through the honest-to-god C code in the > generated insn-preds.c file. > > Is there a switch one can give to GDB to stop being "too clever"? I'm not aware of one. This is triggered by the #line directives in the generated insn-whatever.c file. What I typically do when I want to debug this stuff is strip out the line directives from the insn-whatever.c file :-) jeff