рдкрд░рд┐рдЪрдп
PHP рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдореЗрдВ,
var_dump ,
debug_backtrace рдФрд░ рдЕрдиреНрдп рдЙрдкрдпреЛрдЧреА рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд╕рд╛рде рдбрд┐рдмрдЧрд┐рдВрдЧ рд╣рдореЗрд╢рд╛ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИ, рдФрд░ рдкреВрд░реНрдг рдбрд┐рдмрдЧрд░ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдпрд╣ рд▓реЗрдЦ рдЙрди рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рд╣реИ, рдЬреЛ рдХрд┐рд╕реА рдХрд╛рд░рдг рд╕реЗ IDE рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдЬреЛ рдиреЗрдЯ, рдпрд╛ PhpStorm рдЬреИрд╕реЗ PHP рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЛ рдбреАрдмрдЧрд┐рдВрдЧ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЗрди рдЙрджреНрджреЗрд╢реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП vim рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдФрд░ рджреВрд░рд╕реНрде рд╣реЛрд╕реНрдЯ рдкрд░ рдбрд┐рдмрдЧрд┐рдВрдЧ рд╣реЛрддреА рд╣реИред
Vim рдХреЗ рд▓рд┐рдП
DBGp рдХреНрд▓рд╛рдЗрдВрдЯ рдкреНрд▓рдЧрдЗрди рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдЖрдкрдХреЛ рдареАрдХ рд╕реЗ рдбреАрдмрдЧ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ рдЬрдм рджреВрд░рд╕реНрде рдФрд░ рд╕реНрдерд╛рдиреАрдп рдорд╢реАрдиреЛрдВ рдкрд░ рд╕рднреА рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд▓рд┐рдП рдкрде рд╕рдорд╛рди рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдПрдХ рд╕реНрдерд╛рдиреАрдп рдорд╢реАрди рд╣реИ:
/ рдШрд░ / рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ / рдЖрд╡реЗрджрди /
/ рдШрд░ / рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ / рдврд╛рдВрдЪрд╛ /рдФрд░ рджреВрд░рд╕реНрде рдорд╢реАрди рдореЗрдВ рд╡реЗ рд╕реНрдерд┐рдд рд╣реИрдВ:
/ var / www / html / рдЖрд╡реЗрджрди /
/ var / www / рд░реВрдкрд░реЗрдЦрд╛ /рддрдм рдЖрдк "DBGp рдХреНрд▓рд╛рдЗрдВрдЯ" рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдбрд┐рдмрдЧ рдирд╣реАрдВ рдХрд░ рдкрд╛рдПрдВрдЧреЗ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдЕрдиреНрдп рд╕реНрд░реЛрдд рд╕реНрдерд╛рди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреБрдЫ рднреА рдирд╣реАрдВ рдЬрд╛рдирддрд╛ рд╣реИред
рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ рд╣рдо рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВрдЧреЗ:
- рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ - рдЖрд╡реЗрджрди рдХреЗ рджреВрд░рд╕реНрде рдбрд┐рдмрдЧрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╕рдм рдХреБрдЫ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛ред
- рд╡рд┐рднрд┐рдиреНрди рд░рд╛рд╕реНрддреЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд▓рдЧрдЗрди рдХрд╛ рд╕рдВрд╢реЛрдзрдиред
- рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ - рдбрд┐рдмрдЧрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ред
рд╕реНрдерд╛рдкрдирд╛
рд╣рдо рд╕реНрдерд╛рдиреАрдп рд╣реЛрд╕реНрдЯ рдкрд░ рд╡рд┐рдо рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рддреЗ рд╣реИрдВ
рдкреНрд▓рдЧрдЗрди рдбрд╛рдЙрдирд▓реЛрдб рдФрд░ рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░реЗрдВ:
$ cd ~ / .vim
$ wget www.vim.org/scripts/download_script.php?src_id=7285 -O debugger.zip
$ рдЕрдирдЬрд╝рд┐рдк рдбреАрдмрдЧрд░ред рдЬрд╝рд┐рдк
$ rm рдбрд┐рдмрдЧрд░ред рдЬрд╝рд┐рдкрдзреНрдпрд╛рди рджреЗрдВ: рд╡рд┐рдо рдХреЛ рдЕрдЬрдЧрд░ рд╕рдорд░реНрдерди рдХреЗ рд╕рд╛рде рд╕рдВрдХрд▓рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рдЖрдк рдЗрд╕реЗ "
: рд╕рдВрд╕реНрдХрд░рдг " рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдЖрдЙрдЯрдкреБрдЯ рдореЗрдВ рд╕реНрдЯреНрд░рд┐рдВрдЧ "+ рдкрд╛рдпрдерди" рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред
рджреВрд░рд╕реНрде рд╣реЛрд╕реНрдЯ рдкрд░ Xdebug рд╕реНрдерд╛рдкрд┐рдд рдФрд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░реЗрдВ
рдЖрдкрдХреЗ рд▓рд┐рдП рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдХрд┐рд╕реА рднреА рддрд░рд╣ рд╕реЗ Xdebug рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░реЗрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдбреЗрдмрд┐рдпрди рдирд┐рдЪреЛрдбрд╝ рдкрд░, рдпрд╣ рдмрд╕ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:
# apt-get install php5-xdebugрд▓реЗрдХрд┐рди рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░,
рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рдЗрдВрд╕реНрдЯреЙрд▓реЗрд╢рди рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХреЛ рдкрдврд╝рдирд╛ рдмреЗрд╣рддрд░ рд╣реЛрддрд╛ рд╣реИред
рд╕реНрдерд╛рдиреАрдп рдбрд┐рдмрдЧ рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЗ рдХрдиреЗрдХреНрд╢рди рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░реЗрдВ - рдЗрд╕рдХреЗ рд▓рд┐рдП, php.ini рдореЗрдВ рдирд┐рдореНрди рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреЛ рд▓рд┐рдЦреЗрдВ, рд╕реНрдерд╛рдиреАрдп рдорд╢реАрди рдХреЗ рдЖрдИрдкреА рдХреЗ рд╕рд╛рде 192.168.1.110 рдХреА рдЬрдЧрд╣ (рдпрджрд┐ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ рддреЛ рдкреЛрд░реНрдЯ рдХреЛ рдлрд┐рд░ рд╕реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ):
xdebug.remote_enable = 1
xdebug.remote_port = 9000
xdebug.remote_host = 192.168.1.110рдлрд╝рд╛рдЗрд▓ рдорд┐рд▓рд╛рди рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдирд╛
рд╡рд┐рдЪрд╛рд░ рд╕рд░рд▓ рд╣реИ - рдбрд┐рдмрдЧрд░ рдХреЗ рд▓рд┐рдП рдЕрдиреБрд░реЛрдз рднреЗрдЬрддреЗ рд╕рдордп (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдмреНрд░реЗрдХрдкреЙрдЗрдВрдЯ рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП), рд╣рдореЗрдВ рджреВрд░рд╕реНрде рд╣реЛрд╕реНрдЯ рдкрд░ рдкрде рдХреЗ рд▓рд┐рдП рд╕реНрдерд╛рдиреАрдп рд╣реЛрд╕реНрдЯ рдкрд░ рдкрде рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛, рдФрд░ рдЗрд╕рдХреЗ рд╡рд┐рдкрд░реАрдд, рдЬрдм рдбрд┐рдмрдЧрд░ рд╕реЗ рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдХрд┐ рдпрд╣ рдЕрдм рдХреБрдЫ рд▓рд╛рдЗрди рдкрд░ рд╣реИ рдХреБрдЫ рдлрд╝рд╛рдЗрд▓), рд╣рдореЗрдВ рд░рд┐рд╡рд░реНрд╕ рд░реВрдкрд╛рдВрддрд░рдг рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред
рдирд┐рдореНрди рдХреЛрдб рдХреЛ рдбрд┐рдмрдЧрд░рдЬреАрд░реЛ рдлрд╝рд╛рдЗрд▓ рдХреЗ рдЕрдВрдд рдореЗрдВ рдЬреЛрдбрд╝реЗрдВ:
class FileMapping: def __init__(self, mapping_file): self.local_to_remote = {} self.remote_to_local = {} mapping = open(mapping_file, 'r') for line in mapping: local, remote = line.split(' ') local = local.strip() remote = remote.strip() if not (local in self.local_to_remote): self.local_to_remote[local] = [] self.local_to_remote[local].append(remote) if not (remote in self.remote_to_local): self.remote_to_local[remote] = [] self.remote_to_local[remote].append(local) def local_to_remote_file(self, local): for local_path in self.local_to_remote.keys(): if local.startswith(local_path):
рдФрд░
рдореИрдкрд┐рдВрдЧ рдлрд╝рд╛рдЗрд▓ (
/ home / alexey / рдорд╛рдирдЪрд┐рддреНрд░рдг - рдЗрд╕реЗ рдЕрдкрдиреЗ рдкрде рд╕реЗ рдмрджрд▓реЗрдВ) рдореЗрдВ, рд╣рдо рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╕реНрдерд╛рдиреАрдп рдФрд░ рджреВрд░рд╕реНрде рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреЗ рдмреАрдЪ рдкрддреНрд░рд╛рдЪрд╛рд░ рд▓рд┐рдЦрддреЗ рд╣реИрдВ:
/ рдШрд░ / alexey / рд░реВрдкрд░реЗрдЦрд╛ / var / www / рд░реВрдкрд░реЗрдЦрд╛
/ рдШрд░ / alexey / рдЖрд╡реЗрджрди / var / www / htmlрд╣рдо рдЙрди рд╕реНрдерд╛рдиреЛрдВ рдХреА рддрд▓рд╛рд╢ рдореЗрдВ рдкреНрд▓рдЧрдЗрди рдХреЛрдб рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рджреЗрдЦрддреЗ рд╣реИрдВ рдЬрд╣рд╛рдВ рдлрд╝рд╛рдЗрд▓ рдирд╛рдо Xdebug рд╕реЗ рдЖрддреЗ рд╣реИрдВред рдирддреАрдЬрддрди, рд╡реЗ рд╕рднреА рдПрдХ рд╡рд┐рдзрд┐ - set_srcview рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдмрд▓рддреЗ рд╣реИрдВ, рдЬрд┐рд╕рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ рд╣рдо рдлрд╝рд╛рдЗрд▓ рдирд╛рдо рдореЗрдВ рдПрдХ рдкрд░рд┐рд╡рд░реНрддрди рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ:
def set_srcview(self, file, line): """ set srcview windows to file:line and replace current sign """ file = file_mapping.remote_to_local_file(file)
рдЕрдм рд╣рдо рдЙрди рд╕реНрдерд╛рдиреЛрдВ рдХреА рддрд▓рд╛рд╢ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдЬрд╣рд╛рдВ рдЗрд╕рдХреЗ рд╡рд┐рдкрд░реАрдд, рдлрд╝рд╛рдЗрд▓ рдирд╛рдо рдбреАрдмрдЧ рдХреНрд▓рд╛рдЗрдВрдЯ рд╕реЗ Xdebug рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред рдРрд╕реЗ рджреЛ рд╕реНрдерд╛рди рд╣реИрдВ:
1. рдбреАрдмрдЧрд░ рд╡рд░реНрдЧ, рд░рди рд╡рд┐рдзрд┐, рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЛ рдмрджрд▓реЗрдВ
'-t line -f ' + self.breakpt.getfile(bno) + ' -n ' + str(self.breakpt.getline(bno)) + ' -s enabled', \
рдкрд░
'-t line -f ' + file_mapping.local_to_remote_file(self.breakpt.getfile(bno)) + ' -n ' + str(self.breakpt.getline(bno)) + ' -s enabled', \
2. рдбреАрдмрдЧрд░ рд╡рд░реНрдЧ, рдорд╛рд░реНрдХ рд╡рд┐рдзрд┐, рд▓рд╛рдЗрди рдХреЛ рдмрджрд▓реЗрдВ:
'-t line -f ' + self.breakpt.getfile(bno) + ' -n ' + str(self.breakpt.getline(bno)), \
рдкрд░
'-t line -f ' + file_mapping.local_to_remote_file(self.breakpt.getfile(bno)) + ' -n ' + str(self.breakpt.getline(bno)), \
рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╕реБрдзрд░реА рд╣реБрдИ рдбрд┐рдмрдЧрд░ рдПрд░реЗрдореНрдХреЛ
рдпрд╣рд╛рдВ рд▓реА рдЬрд╛ рд╕рдХрддреА
рд╣реИ ред
рдХреЗ рдЙрдкрдпреЛрдЧ
рдбрд┐рдмрдЧрд┐рдВрдЧ рдЪрд▓рд╛рдПрдВ
рд╡реЗрдм рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдбрд┐рдмрдЧ рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ vim рд╢реБрд░реВ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рдФрд░ <F5> рджрдмрд╛рдирд╛ рд╣реЛрдЧрд╛ред
рдЕрдЧрд▓рд╛, 5 рд╕реЗрдХрдВрдб рдХреЗ рднреАрддрд░ (рдЕрдВрддрд░рд╛рд▓ рдХреЛ рдиреАрдЪреЗ рдХреИрд╕реЗ рдмрдврд╝рд╛рдпрд╛ рдЬрд╛рдП), рдЖрдкрдХреЛ 1 рд╕реЗ GET рдХреЗ рдорд╛рди рдХреЗ рд╕рд╛рде XDEBUG_SESSION_START рдЪрд░ рдкрд╛рд╕ рдХрд░рдХреЗ рдХреБрдЫ PHP рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЪрд▓рд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдХреЗрд╡рд▓ рдПрдХ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рд╕рдВрдмрдВрдзрд┐рдд рдкреГрд╖реНрда рдЦреЛрд▓рдирд╛, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:
webdev / debug.php? XDEBUG_SESSION_START = 1рд╡реИрдХрд▓реНрдкрд┐рдХ рд░реВрдк рд╕реЗ, рдЖрдк
xpebug.remote_autostart рдЪрд░ рдХреЛ php.ini рдореЗрдВ рд╕реЗрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рдХрд┐рд╕реА рднреА PHP рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдЪрд▓рд╛рдиреЗ рдХреЗ рджреМрд░рд╛рди, Xdebug рдбрд┐рдмрдЧ рдХреНрд▓рд╛рдЗрдВрдЯ рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдЧрд╛ред
рдЖрдзрд┐рдХрд╛рд░рд┐рдХ Xdebug рдкреНрд░рд▓реЗрдЦрди рдореЗрдВ рдФрд░ рдкрдврд╝реЗрдВред
рдкрд░рд┐рдгрд╛рдо рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП - рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рдЪрд▓рд╛рдпреА рдЬрд╛рдиреЗ рд╡рд╛рд▓реА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЦреБрд▓рдиреА рдЪрд╛рд╣рд┐рдП:

рджрд╛рдИрдВ рдУрд░ рд╡рд┐рдВрдбреЛрдЬ - рдКрдкрд░ рд╕реЗ рдиреАрдЪреЗ рддрдХ:
- рджреЗрдЦреЛ рдЦрд┐рдбрд╝рдХреА - рд╕рдВрджрд░реНрдн рджреЗрдЦреЗрдВ
- рд╣реЗрд▓реНрдк рд╡рд┐рдиреНрдбреЛрдЬрд╝ - рд╕рдВрдХреНрд╖рд┐рдкреНрдд рд╡рд┐рд╡рд░рдг
- рд╕реНрдЯреИрдХ рд╡рд┐рдВрдбреЛ - рдлрд╝рдВрдХреНрд╢рди рдХреЙрд▓ рд╕реНрдЯреИрдХ
- TRACE WINDOW - рдбрд┐рдмрдЧ рдХреНрд▓рд╛рдЗрдВрдЯ рд╕рдВрдЪрд╛рд░ Xdebug рдХреЗ рд╕рд╛рде рд▓реЙрдЧ рдЗрди рдХрд░реЗрдВ, рдпрд╣ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдбреАрдмрдЧрд┐рдВрдЧ рдиреЗ рдХрд╛рдо рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИ
рдЕрдкрдиреЗ рд▓рд┐рдП рдЕрдиреБрдХреВрд▓рди
рдЯрд╛рдЗрдордЖрдЙрдЯ рдХреЛ рдЙрд╕реА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ debugger.py рдореЗрдВ рд▓рд╛рдЗрди рдвреВрдВрдврдХрд░ рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:
serv.listen(5)
рдФрд░ рдЖрдкрдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЗ рдЕрдиреБрд╕рд╛рд░ 5 рд╕реЗрдХрдВрдб рдХреА рдЬрдЧрд╣ред
рдкреНрд░рдореБрдЦ рд╕рдВрдпреЛрдЬрди рдбреАрдмрдЧрд░ рдореЗрдВ рд╕реЗрдЯ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ <"F5> рдХреЛ рджрдмрд╛рдиреЗ рдХреЗ рд▓рд┐рдП", рдбреНрд░ "" рджрд┐рдпрд╛:
рдирдХреНрд╢рд╛, рдбреЙ: рдЕрдЬрдЧрд░ рдбреАрдмрдЧрд░_рд░реБрди () <cr>рд╣реЗрд▓реНрдк рд╡рд┐рдиреНрдбреЛ рдХреНрд▓рд╛рд╕ рдореЗрдВ on_create рдореЗрдердб рдореЗрдВ HELP WINDOW рдХреЗ рдЯреЗрдХреНрд╕реНрдЯ рдХреЛ рдмрджрд▓рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рдХреЛрдб рдиреЗрд╡рд┐рдЧреЗрд╢рди
рдореИрдВ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рд╡рд░реНрдгрди рдирд╣реАрдВ рдХрд░реВрдВрдЧрд╛, рдЕрдиреНрдп рдбреАрдмрдЧрд░реНрд╕ рд╕реЗ рдорддрднреЗрдж рдпрд╣рд╛рдВ рдХрдо рд╕реЗ рдХрдо рд╣реИрдВ:
- рдЪрд░рдг рдореЗрдВ (<F2>) - рдПрдХ рдХрджрдо рдЕрдВрджрд░ рдХрд╛рд░реНрдп рдХрд░рдиреЗ рдХреЗ рд╕рд╛рдеред
- рд╕реНрдЯреЗрдк рдУрд╡рд░ (<F3>) - рдлрдВрдХреНрд╢рдиреНрд╕ рдХреЗ рдЕрдВрджрд░ рдЬрд╛рдиреЗ рдХреЗ рдмрд┐рдирд╛ рдПрдХ рд╕реНрдЯреЗрдкред
- рд╕реНрдЯреЗрдк рдЖрдЙрдЯ (<F4>) - рд╕реНрдЯреИрдХ рдХреЗ рдлрдВрдХреНрд╢рди рд╕реЗ рдмрд╛рд╣рд░ рдирд┐рдХрд▓реЗрдВред
- рд░рди (<F5>) - рдЕрдЧрд▓реЗ рдмреНрд░реЗрдХрдкреЙрдЗрдВрдЯ рддрдХ рдирд┐рд╖реНрдкрд╛рджрди рдЬрд╛рд░реА рд░рдЦреЗрдВред
- рд╕реНрдЯреИрдХ рдЕрдк (: рдКрдкрд░) - рд╕реНрдЯреИрдХ рдКрдкрд░ рд▓реЗ рдЬрд╛рдПрдВ (рд╕реНрдЯреИрдХ рд╡рд┐рдВрдбреЛ рджреЗрдЦреЗрдВ)ред
- рд╕реНрдЯреИрдХ рдбрд╛рдЙрди (: Dn) - рд╕реНрдЯреИрдХ рдиреАрдЪреЗ рдЬрд╛рдПрдВ (STACK WINDOW рджреЗрдЦреЗрдВ)ред
рд╡рд░реНрддрдорд╛рди рд╕реНрдерд┐рддрд┐ рджреЗрдЦреЗрдВ
- рд╕рдВрдкрддреНрддрд┐ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ (<F12>) - рдЪрд░ рдХрд╛ рдореВрд▓реНрдп рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ (рдЖрдкрдХреЛ рд╡рд╛рдВрдЫрд┐рдд рдЪрд░ рдкрд░ рдХрд░реНрд╕рд░ рд░рдЦрдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИ рдФрд░ <F12 рджрдмрд╛рдПрдВ)ред
- рд╕рдВрджрд░реНрдн рдорд┐рд▓рддрд╛ рд╣реИ (<F11>) - рд╕рдВрдкреВрд░реНрдг рд╡рд░реНрддрдорд╛рди рд╕рдВрджрд░реНрдн рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ (рдореЛрдЯреЗ рддреМрд░ рдкрд░, рдЗрд╕ рд╕рдВрджрд░реНрдн рдореЗрдВ рдЙрдкрд▓рдмреНрдз рд╕рднреА рдЪрд░)ред
- Eval (, e) - рд╡рд░реНрддрдорд╛рди рд╕рдВрджрд░реНрдн рдореЗрдВ рдПрдХ рдордирдорд╛рдирд╛ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░реЗрдВ рдФрд░ рдЙрд╕рдХрд╛ рдореВрд▓реНрдп рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВред
рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ рдореЗрдВ - рд╕рдВрджрд░реНрдн рдХреЗ рд╕рд╛рде рдШрдбрд╝реА рдЦрд┐рдбрд╝рдХреА рдФрд░ рдирд┐рд╖реНрдХрд╛рд╕рд┐рдд рдирд┐рд╖реНрдХрд╛рд╕рди:

рдмреНрд░реЗрдХрдкреЙрдЗрдВрдЯ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ
рдмреНрд░реЗрдХрдкреЙрдЗрдВрдЯ рдЯреЙрдЧрд▓ рдХрд░реЗрдВ (: рдмреАрдкреА) - рд╡рд░реНрддрдорд╛рди рд▓рд╛рдЗрди рдореЗрдВ рдмреНрд░реЗрдХрдкреЙрдЗрдВрдЯ рд╕реЗрдЯ рдХрд░реЗрдВ, рдпрд╛ рдкрд╣рд▓реЗ рд╕реЗ рдореМрдЬреВрдж рд╣реЛрдиреЗ рдкрд░ рд╣рдЯрд╛ рджреЗрдВред
рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ рдореЗрдВ - рд╣рд░реА рд░реЗрдЦрд╛ рдмреНрд░реЗрдХрдкреЙрдЗрдВрдЯ рд╡рд╛рд▓реА рд░реЗрдЦрд╛ рд╣реИ, рд▓рд╛рд▓ рд╡рд░реНрддрдорд╛рди рд░реЗрдЦрд╛ рд╣реИ:

рдЖрдХрд╛рд░ рдмрджрд▓реЗрдВ
рдЗрд╕рдХреЗ рдЕрддрд┐рд░рд┐рдХреНрдд, <F1> рджреНрд╡рд╛рд░рд╛ рдЖрдк рджреЛ рдореЛрдб рдХреЗ рдмреАрдЪ рд╕реНрд╡рд┐рдЪ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ - рдкреВрд░реНрдг, рдЬрдм рд╡рд┐рднрд┐рдиреНрди рд╕рд╣рд╛рдпрдХ рд╡рд┐рдВрдбреЛ рдХреЛ рджрд╛рдИрдВ рдУрд░ рджрд┐рдЦрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рд╕рд░рд▓ - рдЬрдм рдХреЗрд╡рд▓ рдХреЛрдб рд╡рд╛рд▓реА рд╡рд┐рдВрдбреЛ рд░рд╣рддреА рд╣реИред