docs: def post_mortem(trace_back=None, exc_info=None):
      """ Breaks on a traceback and send all execution information to the debugger 
      client. If the interpreter is handling an exception at this traceback, 
      exception information is sent to _line_tracer() which will transmit it to 
      the debugging client.
      Caller can also pass an *exc_info* that will be used to extract exception
      information. If passed exc_info has precedence over traceback.
  
      This method is useful for integrating with systems that manage exceptions. 
      Using it, you can setup a developer mode where unhandled exceptions 
      are sent to the developer.
      
      Once user resumes execution, control is returned to caller. IKP3db is 
      just used to "pretty" display the execution environment.
      
      To call post_mortem() use:
      
      .. code-block:: python
  
          import ikp3db
          ...
          ikp3db.postmortem(any_traceback) 
      
      
      :param trace_back: The traceback at which to break on.
      :type trace_back: traceback
      
      :param exc_info: Complete description of the raised Exception as 
                       returned by sys.exc_info.
      :type exc_info: tuple
      
      :return: An error message or None is everything went fine.
      :rtype: str or None
      """
      if not ikpdb:
          return "Error: IKP3db must be launched before calling ikpd.post_mortem()."
      
      if exc_info:
          trace_back = exc_info[2]
      elif trace_back and not exc_info:
          if sys.exc_info()[2] == trace_back:
              exc_info = sys.exc_info()
      else:
          return "missing parameter trace_back or exc_info"
  
      pm_traceback = trace_back
      while pm_traceback.tb_next:
          pm_traceback = pm_traceback.tb_next      
      ikpdb._line_tracer(pm_traceback.tb_frame, exc_info=exc_info)
      _logger.g_info("Post mortem processing finished.")
      return None