code: public static LineNumberNode findLineNumberForInstruction(InsnList insnList, AbstractInsnNode insnNode) {
          Validate.notNull(insnList);
          Validate.notNull(insnNode);
          
          int idx = insnList.indexOf(insnNode);
          Validate.isTrue(idx != -1);
          
          // Get index of labels and insnNode within method
          ListIterator<AbstractInsnNode> insnIt = insnList.iterator(idx);
          while (insnIt.hasPrevious()) {
              AbstractInsnNode node = insnIt.previous();
              
              if (node instanceof LineNumberNode) {
                  return (LineNumberNode) node;
              }
          }
          
          return null;
      }
docs: Find line number associated with an instruction.
  @param insnList instruction list for method
  @param insnNode instruction within method being searched against
  @throws NullPointerException if any argument is {@code null} or contains {@code null}
  @throws IllegalArgumentException if arguments aren't all from the same method
  @return line number node associated with the instruction, or {@code null} if no line number exists