def find(pattern, from, length = :unlimited, rel: false)
      return Nil.instance unless load?

      dumper.find(pattern, from, length, rel)
    end
def find(pattern, from, length = :unlimited, rel: false)
      return Nil.instance unless load?

      dumper.find(pattern, from, length, rel)
    end
Gdb-like command.

 Search a specific value/string/regexp in memory.
 @param [Integer, String, Regexp] pattern
   The desired search pattern, can be value(+Integer+), string, or regular expression.
 @param [Integer, String, Symbol] from
   Start address for searching, can be segment(+Symbol+) or segments with offset.
   See examples for more information.
 @param [Integer] length
   The search length limit, default is unlimited,
   which will search until pattern found or reach unreadable memory.
 @param [Boolean] rel
   To show relative offset of +from+ or absolute address.
 @return [Integer, nil] The first matched address, +nil+ is returned when no such pattern found.
 @example
   h.find(0xdeadbeef, 'heap+0x10', 0x1000)
   #=> 6299664 # 0x602010
   h.find(/E.F/, 0x400000, 4)
   #=> 4194305 # 0x400001
   h.find(/E.F/, 0x400000, 3)
   #=> nil
   sh_offset = h.find('/bin/sh', :libc) - h.libc
   #=> 1559771 # 0x17ccdb
   h.find('/bin/sh', :libc, rel: true) == h.find('/bin/sh', :libc) - h.libc
   #=> true