[1b34b87] | 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 |
|
---|
| 75 | The goal of this work is to add GNU Debugger support for the language \uC and \CFA. To
|
---|
| 76 | achieve this goal for \uC, new extensions are written to provide additional
|
---|
| 77 | support 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
|
---|
| 79 | demangler.
|
---|
| 80 |
|
---|
| 81 | This report assumes the reader has basic knowledge of compiler construction.
|
---|
| 82 | Background knowledge about how the GNU Debugger works and specific features of \uC and
|
---|
| 83 | \CFA
|
---|
| 84 | are 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 |
|
---|
| 96 | I would like to thank Professor Peter Buhr and Thierry
|
---|
| 97 | Delisle for their guidance throughout the development of this project. The
|
---|
| 98 | GNU Debugger's internal manual \cite{Reference5} is used as a guide for the development of
|
---|
| 99 | adding a demangler for \CFA, and \CFA's main page \cite{Reference13} for
|
---|
| 100 | background 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 | %% ----------------------------------------------------------------
|
---|