from __future__ import print_function
import gdb
import pwndbg.regs

class segment(gdb.Function):
    """Get the flat address of memory based off of the named segment register.
    """
    def __init__(self, name):
        super(segment, self).__init__(name)
        self.name = name
    def invoke(self, arg=0):
        result = getattr(pwndbg.regs, self.name)
        return result + arg

segment('fsbase')
segment('gsbase')

from __future__ import print_function
import gdb
import pwndbg.regs
import pwndbg.commands

class segment(gdb.Function):
    """Get the flat address of memory based off of the named segment register.
    """
    def __init__(self, name):
        super(segment, self).__init__(name)
        self.name = name
    def invoke(self, arg=0):
        result = getattr(pwndbg.regs, self.name)
        return result + arg

segment('fsbase')
segment('gsbase')

@pwndbg.commands.OnlyWhenRunning
@pwndbg.commands.ParsedCommand
def fsbase():
    """
    Prints out the FS base address.  See also $fsbase.
    """
    print(hex(pwndbg.regs.fsbase))


@pwndbg.commands.OnlyWhenRunning
@pwndbg.commands.ParsedCommand
def gsbase():
    """
    Prints out the GS base address.  See also $gsbase.
    """
    print(hex(pwndbg.regs.gsbase))

Add fsbase and gsbase commands
Add fsbase and gsbase commands

  from __future__ import print_function
  import gdb
  import pwndbg.regs
+ import pwndbg.commands
  
  class segment(gdb.Function):
      """Get the flat address of memory based off of the named segment register.
      """
      def __init__(self, name):
          super(segment, self).__init__(name)
          self.name = name
      def invoke(self, arg=0):
          result = getattr(pwndbg.regs, self.name)
          return result + arg
  
  segment('fsbase')
  segment('gsbase')
  
+ @pwndbg.commands.OnlyWhenRunning
+ @pwndbg.commands.ParsedCommand
+ def fsbase():
+     """
+     Prints out the FS base address.  See also $fsbase.
+     """
+     print(hex(pwndbg.regs.fsbase))
+ 
+ 
+ @pwndbg.commands.OnlyWhenRunning
+ @pwndbg.commands.ParsedCommand
+ def gsbase():
+     """
+     Prints out the GS base address.  See also $gsbase.
+     """
+     print(hex(pwndbg.regs.gsbase))
+ 
Add fsbase and gsbase commands
## Code Before:
from __future__ import print_function
import gdb
import pwndbg.regs

class segment(gdb.Function):
    """Get the flat address of memory based off of the named segment register.
    """
    def __init__(self, name):
        super(segment, self).__init__(name)
        self.name = name
    def invoke(self, arg=0):
        result = getattr(pwndbg.regs, self.name)
        return result + arg

segment('fsbase')
segment('gsbase')

## Instruction:
Add fsbase and gsbase commands
## Code After:
from __future__ import print_function
import gdb
import pwndbg.regs
import pwndbg.commands

class segment(gdb.Function):
    """Get the flat address of memory based off of the named segment register.
    """
    def __init__(self, name):
        super(segment, self).__init__(name)
        self.name = name
    def invoke(self, arg=0):
        result = getattr(pwndbg.regs, self.name)
        return result + arg

segment('fsbase')
segment('gsbase')

@pwndbg.commands.OnlyWhenRunning
@pwndbg.commands.ParsedCommand
def fsbase():
    """
    Prints out the FS base address.  See also $fsbase.
    """
    print(hex(pwndbg.regs.fsbase))


@pwndbg.commands.OnlyWhenRunning
@pwndbg.commands.ParsedCommand
def gsbase():
    """
    Prints out the GS base address.  See also $gsbase.
    """
    print(hex(pwndbg.regs.gsbase))
