[ << ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Here are some tools that you might find useful while developing code.
Tags are an index to the functions and global variables declared in a
program. Many editors, including Emacs and vi
, can use
them. The Makefile
in pintos/src
produces Emacs-style
tags with the command make TAGS
or vi
-style tags with
make tags
.
In Emacs, use M-. to follow a tag in the current window, C-x 4 . in a new window, or C-x 5 . in a new frame. If your cursor is on a symbol name for any of those commands, it becomes the default target. If a tag name has multiple definitions, M-0 M-. jumps to the next one. To jump back to where you were before you followed the last tag, use M-*.
The cscope
program also provides an index to functions and
variables declared in a program. It has some features that tag
facilities lack. Most notably, it can find all the points in a
program at which a given function is called.
The Makefile
in pintos/src
produces cscope
indexes when it is invoked as make cscope
. Once the index has
been generated, run cscope
from a shell command line; no
command-line arguments are normally necessary. Then use the arrow
keys to choose one of the search criteria listed near the bottom of
the terminal, type in an identifier, and hit Enter.
cscope
will then display the matches in the upper part of
the terminal. You may use the arrow keys to choose a particular
match; if you then hit Enter, cscope
will invoke the
default system editor(8) and position the
cursor on that match. To start a new search, type Tab. To exit
cscope
, type Ctrl-d.
Emacs and some versions of vi
have their own interfaces to
cscope
. For information on how to use these interface,
visit http://cscope.sourceforge.net, the cscope
home
page.
We require that you use git for this project. We have set up a repository at https://git.cs.vt.edu/gback/pintos-2017 which will serve as your 'upstream' repository.
One group member should fork this repository, which creates what we will refer to as the 'origin' repository on git.cs.vt.edu. Change this repository's visibility private, but do give all group members access.
Each group member can then clone this repository to the space on rlogin where they are working. These clones are called working repositories. To share updates, group members commit them to their working repositories, then push those updates to the shared origin, from which other group members pull.
Should updates to the base code be necessary, we will push them to the upstream directory. To merge those changes, a group member needs to fetch them from there and merge them into their working repository (resolving any conflicts in the process), then push the updated code.
Cygwin provides a Linux-compatible environment for Windows. It includes ssh client and an X11 server, Cygwin/X. If your primary work environment is Windows, you will find Cygwin/X extremely useful for these projects. Install Cygwin/X, then start the X server and open a new xterm. The X11 server also allows you to run pintos while displaying the bochs- or qemu-emulated console on your Windows desktop.
[ << ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |