[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 | %% ---------------------------------------------------------------- |
---|