source: doc/theses/lynn_tran_SE499/se499-report.tex @ 4db0140

Last change on this file since 4db0140 was 1b34b87, checked in by Peter A. Buhr <pabuhr@…>, 6 years ago

Lynn's GDB essay

  • Property mode set to 100644
File size: 9.0 KB
Line 
1% https://github.com/lynnt/SE499-report
2
3%% ----------------------------------------------------------------
4%% Thesis.tex -- MAIN FILE (the one that you compile with LaTeX)
5%% ----------------------------------------------------------------
6
7% Set up the document
8\documentclass[legalpaper, 11pt, oneside]{Thesis}  % Use the "Thesis" style, based on the ECS Thesis style by Steve Gunn
9\graphicspath{Figures/}  % Location of the graphics files (set up for graphics to be in PDF format)
10
11% Include any extra LaTeX packages required
12\usepackage{times}
13\usepackage[square, numbers, comma, sort&compress]{natbib}  % Use the "Natbib" style for the references in the Bibliography
14\usepackage{verbatim}  % Needed for the "comment" environment to make LaTeX comments
15\usepackage{vector}  % Allows "\bvec{}" and "\buvec{}" for "blackboard" style bold vectors in maths
16\usepackage[pagewise]{lineno}
17\usepackage{listings}
18
19\usepackage{etoolbox} % for robustify
20\usepackage[dvipsnames]{xcolor}
21\usepackage{listings}
22\lstset{moredelim=**[is][\color{red}]{`}{`}}
23\hypersetup{urlcolor=blue, colorlinks=true}  % Colours hyperlinks in blue, but this can be distracting if there are many links.
24%\urlstyle{sf}
25%% ----------------------------------------------------------------
26\newcommand{\CFAIcon}{\textsf{C}\raisebox{\depth}{\rotatebox{180}{\textsf{A}}}\xspace} % Cforall symbolic name
27\newcommand{\CFA}{\protect\CFAIcon}             % safe for section/caption
28\newcommand{\CC}{\textrm{C}\kern-.1em\hbox{+\kern-.25em+}\xspace} % C++ symbolic name
29\newcommand{\uC}{$\mu$\CC}
30
31
32\begin{document}
33\frontmatter      % Begin Roman style (i, ii, iii, iv...) page numbering
34%\linenumbers    % TODO: remove this please
35% Set up the Title Page
36\title{GNU Debugger support for \uC and \CFA}
37\authors  {\texorpdfstring
38            {\href{tmltran@uwaterloo.ca}{Thi My Linh Tran}}
39            {Thi My Linh Tran}
40            }
41\emails{tmltran@uwaterloo.ca}
42\addresses  {\groupname\\\deptname\\\univname}  % Do not change this here, instead these must be set in the "Thesis.cls" file, please look through it instead
43\date       {\today}
44\subject    {}
45\keywords   {}
46\maketitle
47\setcounter{page}{2}
48%% ----------------------------------------------------------------
49
50\setstretch{1.3}  % It is better to have smaller font and larger line spacing than the other way round
51
52% Define the page headers using the FancyHdr package and set up for one-sided printing
53\fancyhead{}  % Clears all page headers and footers
54\rhead{\thepage}  % Sets the right side header to show the page number
55\lhead{}  % Clears the left side page header
56
57%  Reduce size of section titles
58\makeatletter
59\renewcommand\section{\@startsection{section}{1}{\z@}{-1.0ex \@plus -1ex \@minus -.2ex}{1.0ex \@plus .2ex}{\normalfont\large\bfseries}}
60\renewcommand\subsection{\@startsection{subsection}{2}{\z@}{-1.0ex \@plus -1ex \@minus -.2ex}{1.0ex \@plus .2ex}{\normalfont\normalsize\bfseries}}
61\renewcommand\subsubsection{\@startsection{subsubsection}{3}{\z@}{-1.0ex \@plus -1ex \@minus -.2ex}{1.0ex \@plus .2ex}{\normalfont\normalsize\bfseries}}
62\renewcommand\paragraph{\@startsection{paragraph}{4}{\z@}{-2.0ex \@plus -1ex \@minus -.2ex}{-1em}{\normalfont\normalsize\bfseries}}
63\makeatother
64
65\lstset{numberstyle=\scriptsize\sffamily}
66
67\pagestyle{fancy}  % Finally, use the "fancy" page style to implement the FancyHdr headers
68
69%% ----------------------------------------------------------------
70% The Abstract Page
71\addtotoc{Preface}  % Add the "Abstract" page entry to the Contents
72\preface{
73\addtocontents{toc}{\vspace{1em}}  % Add a gap in the Contents, for aesthetics
74
75The goal of this work is to add GNU Debugger support for the language \uC and \CFA. To
76achieve this goal for \uC, new extensions are written to provide additional
77support for high-level constructs that are unknown to the GNU Debugger. In addition to the work done for
78\uC, many hooks are added in the GNU Debugger to enable the addition of a \CFA
79demangler.
80
81This report assumes the reader has basic knowledge of compiler construction.
82Background knowledge about how the GNU Debugger works and specific features of \uC and
83\CFA
84are provided in the report.
85}
86
87\clearpage  % Abstract ended, start a new page
88%% ----------------------------------------------------------------
89
90\setstretch{1.3}  % Reset the line-spacing to 1.3 for body text (if it has changed)
91
92% The Acknowledgements page, for thanking everyone
93\acknowledgements{
94\addtocontents{toc}{\vspace{1em}}  % Add a gap in the Contents, for aesthetics
95
96I would like to thank Professor Peter Buhr and Thierry
97Delisle for their guidance throughout the development of this project. The
98GNU Debugger's internal manual \cite{Reference5} is used as a guide for the development of
99adding a demangler for \CFA, and \CFA's main page \cite{Reference13} for
100background knowledge and examples.
101}
102\clearpage  % End of the Acknowledgements
103%% ----------------------------------------------------------------
104
105\pagestyle{fancy}  %The page style headers have been "empty" all this time, now use the "fancy" headers as defined before to bring them back
106
107
108%% ----------------------------------------------------------------
109\lhead{\emph{Contents}}  % Set the left side page header to "Contents"
110\addcontentsline{toc}{chapter}{Listings}
111\tableofcontents  % Write out the Table of Contents
112
113%% ----------------------------------------------------------------
114%\lhead{\emph{List of Figures}}  % Set the left side page header to "List if Figures"
115%\listoffigures  % Write out the List of Figures
116
117%% ----------------------------------------------------------------
118%\lhead{\emph{List of Tables}}  % Set the left side page header to "List of Tables"
119%\listoftables  % Write out the List of Tables
120
121%% ----------------------------------------------------------------
122\lhead{\emph{List of Listings}}  % Set the left side page header to "List of Listings"
123\lstlistoflistings
124
125%% ----------------------------------------------------------------
126\setstretch{1.5}  % Set the line spacing to 1.5, this makes the following tables easier to read
127%\clearpage  % Start a new page
128%\lhead{\emph{Abbreviations}}  % Set the left side page header to "Abbreviations"
129%\listofsymbols{ll}  % Include a list of Abbreviations (a table of two columns)
130%{
131% \textbf{Acronym} & \textbf{W}hat (it) \textbf{S}tands \textbf{F}or \\
132%\textbf{LAH} & \textbf{L}ist \textbf{A}bbreviations \textbf{H}ere \\
133%\textbf{GDB} & GNU Debugger \\
134%\textbf{API} & Application Programming Interface \\
135%}
136
137%% ----------------------------------------------------------------
138\clearpage  % Start a new page
139%% ----------------------------------------------------------------
140% End of the pre-able, contents and lists of things
141% Begin the Dedication page
142
143\setstretch{1.3}  % Return the line spacing back to 1.3
144
145\addtocontents{toc}{\vspace{2em}}  % Add a gap in the Contents, for aesthetics
146
147
148%% ----------------------------------------------------------------
149\mainmatter       % Begin normal, numeric (1,2,3...) page numbering
150\pagestyle{fancy}  % Return the page headers back to the "fancy" style
151
152% Include the chapters of the thesis, as separate files
153% Just uncomment the lines as you write the chapters
154
155\lhead{\emph{Introduction}}  % Set the left side page header to "Abbreviations"
156\input{Chapters/Introduction} % Introduction
157% Background
158\clearpage  % Start a new page
159\lhead{\emph{\uC}}  % Set the left side page header to "Abbreviations"
160\input{Chapters/uCPP}
161\clearpage  %Start a new page
162\lhead{\emph{GNU Debugger}}  % Set the left side page header to "Abbreviations"
163\input{Chapters/GDB}
164\clearpage  %Start a new page
165\lhead{\emph{\CFA}}  % Set the left side page header to "Abbreviations"
166\input{Chapters/CFA}
167\clearpage  %Start a new page
168
169% Real work done
170
171\lhead{\emph{GNU Debugger Extensions for \uC}}  % Set the left side page header to "Abbreviations"
172\input{Chapters/Extensions}
173\clearpage  %Start a new page
174\lhead{\emph{\CFA Demangler}}  % Set the left side page header to "Abbreviations"
175\input{Chapters/Demangler}
176\clearpage  %Start a new page
177
178\lhead{\emph{Conclusion}}  % Set the left side page header to "Abbreviations"
179\input{Chapters/Conclusion} % Conclusion
180
181%% ----------------------------------------------------------------
182% Now begin the Appendices, including them as separate files
183
184\addtocontents{toc}{\vspace{2em}} % Add a gap in the Contents, for aesthetics
185
186\appendix % Cue to tell LaTeX that the following 'chapters' are Appendices
187
188%\input{Appendices/AppendixA}   % Appendix Title
189
190%\input{Appendices/AppendixB} % Appendix Title
191
192%\input{Appendices/AppendixC} % Appendix Title
193
194\addtocontents{toc}{\vspace{2em}}  % Add a gap in the Contents, for aesthetics
195\backmatter
196
197%% ----------------------------------------------------------------
198\label{Bibliography}
199\lhead{\emph{Bibliography}}  % Change the left side page header to "Bibliography"
200\bibliographystyle{unsrtnat}  % Use the "unsrtnat" BibTeX style for formatting the Bibliography
201\bibliography{Bibliography}  % The references (bibliography) information are stored in the file named "Bibliography.bib"
202
203\end{document}  % The End
204%% ----------------------------------------------------------------
Note: See TracBrowser for help on using the repository browser.