doc/GDB.md
author Jan Vrany <jan.vrany@fit.cvut.cz>
Mon, 18 Feb 2019 10:49:02 +0000
changeset 176 e734c17e7c37
parent 161 4e020e46a29c
child 181 33b61ec94acf
permissions -rw-r--r--
Use `View >> pushEvent:` or `ApplicationModel >> enqueueMessage:` to post events ...rather than asking for a window sensor and then talking to it. This allows for more flexibility as the object (subscription receiver) can decide how to handle posting of events.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
161
4e020e46a29c Added some documentation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     1
4e020e46a29c Added some documentation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     2
Welcome file
4e020e46a29c Added some documentation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     3
4e020e46a29c Added some documentation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     4
4e020e46a29c Added some documentation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     5
# Building GDB for use with *libgdbs*
4e020e46a29c Added some documentation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     6
4e020e46a29c Added some documentation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     7
As of today, *libgdbs* require a very recent version of GDB. This is because
4e020e46a29c Added some documentation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     8
*libgdbs* requires various patches. Some of them are are already upstreamed
4e020e46a29c Added some documentation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     9
to [GDB's master branch][1], some of them are in process.
4e020e46a29c Added some documentation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    10
4e020e46a29c Added some documentation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    11
Therefore you may need to compile suitable GDB yourself. A git repository with
4e020e46a29c Added some documentation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    12
all the patches can be found at [https://bitbucket.org/janvrany/binutils-gdb][2]
4e020e46a29c Added some documentation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    13
*in branch `users/jv/vdb`* (note the branch!)
4e020e46a29c Added some documentation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    14
4e020e46a29c Added some documentation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    15
## Linux
4e020e46a29c Added some documentation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    16
4e020e46a29c Added some documentation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    17
Following recipe has been tested on Debian Buster as of 2018-11-26.
4e020e46a29c Added some documentation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    18
4e020e46a29c Added some documentation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    19
### Preparing build environment
4e020e46a29c Added some documentation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    20
4e020e46a29c Added some documentation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    21
    apt-get install build-essentials texinfo python3-dev flex bison libfl libexpat-dev
4e020e46a29c Added some documentation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    22
4e020e46a29c Added some documentation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    23
### Preparing build environment
4e020e46a29c Added some documentation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    24
4e020e46a29c Added some documentation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    25
    git clone https://bitbucket.org/janvrany/binutils-gdb.git
4e020e46a29c Added some documentation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    26
    cd binutils-gdb
4e020e46a29c Added some documentation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    27
    ./configure \
4e020e46a29c Added some documentation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    28
        --disable-werror \
4e020e46a29c Added some documentation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    29
        --with-guile=no \
4e020e46a29c Added some documentation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    30
        --with-python=/usr/bin/python3 \
4e020e46a29c Added some documentation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    31
        --enable-targets="i686-pc-linux-gnu,x86_64-pc-linux-gnu,i686-w64-mingw32,x86_64-w64-mingw32,riscv64-pc-linux-gnu,ppc-pc-linux-gnu"
4e020e46a29c Added some documentation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    32
    make -j4
4e020e46a29c Added some documentation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    33
4e020e46a29c Added some documentation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    34
4e020e46a29c Added some documentation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    35
You may want to tweak target list to fot your needs, the above list includes
4e020e46a29c Added some documentation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    36
both i686 and x86_64 Linux, both i686 and x86_64 Windows,PowerPC and RISC-V 64 
4e020e46a29c Added some documentation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    37
Linux.
4e020e46a29c Added some documentation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    38
4e020e46a29c Added some documentation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    39
## Windows using MSYS2 and MINGW64
4e020e46a29c Added some documentation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    40
4e020e46a29c Added some documentation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    41
Following recipe has been tested on Windows 7 anc Windows 10 using [MSYS2][3] 
4e020e46a29c Added some documentation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    42
and `MinGW 64`. 
4e020e46a29c Added some documentation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    43
4e020e46a29c Added some documentation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    44
### Preparing build environment
4e020e46a29c Added some documentation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    45
4e020e46a29c Added some documentation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    46
In order to build GDB from source, you need to install [MSYS2][3] and `MinGW 64`
4e020e46a29c Added some documentation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    47
toolchain: 
4e020e46a29c Added some documentation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    48
4e020e46a29c Added some documentation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    49
 * Install [MSYS2][3] from [https://msys2.github.io][3]. Make sure to install 
4e020e46a29c Added some documentation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    50
   it to `C:\MSYS64`. Once installer finishes, update packages: 
4e020e46a29c Added some documentation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    51
4e020e46a29c Added some documentation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    52
       C:\msys64\usr\bin\pacman.exe -Sy pacman
4e020e46a29c Added some documentation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    53
       C:\msys64\usr\bin\pacman.exe -Syu
4e020e46a29c Added some documentation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    54
       C:\msys64\usr\bin\pacman.exe -Su
4e020e46a29c Added some documentation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    55
       
4e020e46a29c Added some documentation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    56
    Note: during `pacman -Syu` you maybe asked to close command prompt window. 
4e020e46a29c Added some documentation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    57
    Don't forget to close it otherwise you will have to start from beginning. 
4e020e46a29c Added some documentation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    58
4e020e46a29c Added some documentation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    59
 * Add `C:\msys64\usr\bin` to your `PATH`: 
4e020e46a29c Added some documentation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    60
4e020e46a29c Added some documentation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    61
       setx PATH "%PATH%;c:\msys64\usr\bin"
4e020e46a29c Added some documentation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    62
4e020e46a29c Added some documentation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    63
 * Install `MinGW 64` toolchain and other dev tools:
4e020e46a29c Added some documentation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    64
4e020e46a29c Added some documentation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    65
       pacman -S git bison flex texinfo mingw-w64-x86_64-gcc mingw-w64-x86_64-SDL mingw-w64-x86_64-libexpat mingw-w64-x86_64-python3
4e020e46a29c Added some documentation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    66
4e020e46a29c Added some documentation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    67
### Compiling GDB
4e020e46a29c Added some documentation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    68
4e020e46a29c Added some documentation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    69
    git clone https://bitbucket.org/janvrany/binutils-gdb.git
4e020e46a29c Added some documentation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    70
    cd binutils-gdb
4e020e46a29c Added some documentation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    71
    set "PATH=%PATH%;C:\msys64\mingw64\bin"
4e020e46a29c Added some documentation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    72
    bash configure --build=x86_64-w64-mingw32 --disable-werror --with-guile=no --with-python=C:\msys64\mingw64\bin\python3 --enable-targets="i686-w64-mingw32,x86_64-w64-mingw32"
4e020e46a29c Added some documentation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    73
    make -j4
4e020e46a29c Added some documentation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    74
4e020e46a29c Added some documentation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    75
[1]: https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;a=summary
4e020e46a29c Added some documentation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    76
[2]: https://bitbucket.org/janvrany/binutils-gdb
4e020e46a29c Added some documentation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    77
[3]: https://msys2.github.io/
4e020e46a29c Added some documentation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    78