def dump(*args, limit: 1, &block)
      pid = fork { handle_child(*args) }
      Handler.new(pid).handle(limit, &block)
    end
def dump(*args, limit: 1, &block)
      pid = fork { handle_child(*args) }
      Handler.new(pid).handle(limit, &block)
    end
Main bpf dump function.
 Yield seccomp bpf whenever find a +prctl(SET_SECCOMP)+ call.

 @param [Array<String>] args
   The arguments for target execution file.
 @param [Integer] limit
   By default, +dump+ will only dump the first +SET_SECCOMP+ call.
   Set +limit+ to the number of calling +prctl(SET_SECCOMP)+ then the child process will be killed when number of
   calling +prctl+ reaches +limit+.

   Negative number for unlimited.
 @yieldparam [String] bpf
   Seccomp bpf in raw bytes.
 @yieldparam [Symbol] arch
   Architecture of the target process.
 @return [Array<Object>, Array<String>]
   Return the block returned. If block is not given, array of raw bytes will be returned.
 @example
   dump('ls', '-l', '-a')
   #=> []
   dump('spec/binary/twctf-2016-diary') { |c| c[0, 10] }
   #=> [" \x00\x00\x00\x00\x00\x00\x00\x15\x00"]
 @todo
   +timeout+ option.