User Tools

Site Tools


gdb

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
gdb [2024/12/11 17:06] keremetgdb [2024/12/17 20:24] (current) keremet
Line 2: Line 2:
  
 Официальный сайт https://www.sourceware.org/gdb/ Официальный сайт https://www.sourceware.org/gdb/
 +
 +  git clone https://sourceware.org/git/binutils-gdb.git
 +  cd binutils-gdb
 +  git checkout gdb-15.2-release
 +
 +Пропатченная версия
 +  git clone https://github.com/keremet/binutils-gdb -b gpdb6
  
 Компиляция Компиляция
  
-  wget https://ftp.gnu.org/gnu/gdb/gdb-15.2.tar.xz +  cd binutils-gdb
-  tar xf gdb-15.2.tar.xz  +
-  cd gdb-15.2+
   ./configure --prefix=/usr/local/gdb   ./configure --prefix=/usr/local/gdb
   make   make
Line 21: Line 26:
  
  
-Для тестирования \\ +Для тестирования 
-b exec_simple_query \\ +  b exec_simple_query 
-print *parsetree_list  +  print *parsetree_list  
------------- +  b ExecProcNode 
-gdbtypes.c +  p node->ps->plan
-  static struct type * +
-  resolve_dynamic_type_internal (struct type *type, +
-         struct property_addr_info *addr_stack, +
-         const frame_info_ptr &frame, +
-         bool top_level) +
-  { +
-    struct type *real_type = check_typedef (type); +
-    struct type *resolved_type = nullptr; +
-    struct dynamic_prop *prop; +
-    CORE_ADDR value; +
-   +
-    if (real_type->code () == TYPE_CODE_STRUCT && real_type->num_fields () > 0  +
-     && strcmp(real_type->field (0).name (), "type") == 0 +
-     && strcmp(real_type->field (0).type ()->name (), "NodeTag") == 0) +
-  { +
-  return check_typedef (lookup_typename (current_language, "SelectStmt", NULL, 0)); +
-  // struct type *type0 = check_typedef (type->field (0).type ()); +
-  // struct value *v0 = val->primitive_field (0, 0, type); +
-  // const gdb_byte *valaddr = v0->contents_for_printing ().data (); +
-  //  +
-  // LONGEST enumval = unpack_long (type0, valaddr); +
-  //  +
-  // unsigned int len0 = type0->num_fields (); +
-  // for (unsigned int i0 = 0; i0 < len0; i0++) +
-  // if (enumval == type0->field (i0).loc_enumval ()) +
-  // { +
-  // const char *tname = type0->field (i0).name (); +
-  // if (strlen(tname) <= 2 || tname[0] != 'T' || tname[1] != '_'+
-  // break; +
-  // +
-  // tname += 2; +
-  // } +
-  } +
-  return lookup_pointer_type(lookup_typename (current_language, "SelectStmt", NULL, 0)); +
 ---------- ----------
 еще вариант, но он не работает с IDE еще вариант, но он не работает с IDE
Line 124: Line 94:
  /lib64/ld-linux-x86-64.so.2 (0x00007f4bb01d3000)  /lib64/ld-linux-x86-64.so.2 (0x00007f4bb01d3000)
  
 +  sudo apt-get install liblzma-devel-static libncurses-devel-static
 +  ./configure --with-static-standard-libraries --without-zstd --disable-compressed-debug-sections --with-mpfr=/opt/stalin/mpfr-4.2.1 --with-gmp=/opt/stalin/gmp-6.3.0
 +  
 + wget https://ftp.gnu.org/gnu/gmp/gmp-6.3.0.tar.xz
 + tar xf gmp-6.3.0.tar.xz 
 + cd gmp-6.3.0
 + ./configure --disable-shared --prefix=/opt/stalin/gmp-6.3.0
 + make -j`nproc`
 + make install
 + # find /opt/stalin/gmp-6.3.0
 + /opt/stalin/gmp-6.3.0
 + /opt/stalin/gmp-6.3.0/include
 + /opt/stalin/gmp-6.3.0/include/gmp.h
 + /opt/stalin/gmp-6.3.0/share
 + /opt/stalin/gmp-6.3.0/share/info
 + /opt/stalin/gmp-6.3.0/share/info/gmp.info-1
 + /opt/stalin/gmp-6.3.0/share/info/gmp.info
 + /opt/stalin/gmp-6.3.0/share/info/gmp.info-2
 + /opt/stalin/gmp-6.3.0/lib
 + /opt/stalin/gmp-6.3.0/lib/libgmp.a
 + /opt/stalin/gmp-6.3.0/lib/pkgconfig
 + /opt/stalin/gmp-6.3.0/lib/pkgconfig/gmp.pc
 + /opt/stalin/gmp-6.3.0/lib/libgmp.la
 + [root@7ea34f557e84 gmp-6.3.0]# 
 +
 +
 + git clone https://gitlab.inria.fr/mpfr/mpfr.git
 + cd mpfr
 + git checkout 4.2.1
 + ./autogen.sh
 + ./configure --with-gmp=/opt/stalin/gmp-6.3.0 --disable-shared --prefix=/opt/stalin/mpfr-4.2.1
 + make -j`nproc`
 + make install
 + [root@7ea34f557e84 mpfr]# find /opt/stalin/mpfr-4.2.1
 + /opt/stalin/mpfr-4.2.1
 + /opt/stalin/mpfr-4.2.1/include
 + /opt/stalin/mpfr-4.2.1/include/mpf2mpfr.h
 + /opt/stalin/mpfr-4.2.1/include/mpfr.h
 + /opt/stalin/mpfr-4.2.1/share
 + /opt/stalin/mpfr-4.2.1/share/doc
 + /opt/stalin/mpfr-4.2.1/share/doc/mpfr
 + /opt/stalin/mpfr-4.2.1/share/doc/mpfr/TODO
 + /opt/stalin/mpfr-4.2.1/share/doc/mpfr/NEWS
 + /opt/stalin/mpfr-4.2.1/share/doc/mpfr/COPYING.LESSER
 + /opt/stalin/mpfr-4.2.1/share/doc/mpfr/COPYING
 + /opt/stalin/mpfr-4.2.1/share/doc/mpfr/FAQ.html
 + /opt/stalin/mpfr-4.2.1/share/doc/mpfr/BUGS
 + /opt/stalin/mpfr-4.2.1/share/doc/mpfr/AUTHORS
 + /opt/stalin/mpfr-4.2.1/share/doc/mpfr/examples
 + /opt/stalin/mpfr-4.2.1/share/doc/mpfr/examples/sample.c
 + /opt/stalin/mpfr-4.2.1/share/doc/mpfr/examples/ReadMe
 + /opt/stalin/mpfr-4.2.1/share/doc/mpfr/examples/divworst.c
 + /opt/stalin/mpfr-4.2.1/share/doc/mpfr/examples/threads.c
 + /opt/stalin/mpfr-4.2.1/share/doc/mpfr/examples/rndo-add.c
 + /opt/stalin/mpfr-4.2.1/share/doc/mpfr/examples/can_round.c
 + /opt/stalin/mpfr-4.2.1/share/doc/mpfr/examples/version.c
 + /opt/stalin/mpfr-4.2.1/share/info
 + /opt/stalin/mpfr-4.2.1/share/info/mpfr.info
 + /opt/stalin/mpfr-4.2.1/lib
 + /opt/stalin/mpfr-4.2.1/lib/libmpfr.a
 + /opt/stalin/mpfr-4.2.1/lib/pkgconfig
 + /opt/stalin/mpfr-4.2.1/lib/pkgconfig/mpfr.pc
 + /opt/stalin/mpfr-4.2.1/lib/libmpfr.la
 + [root@7ea34f557e84 mpfr]# 
 +
 + wget https://github.com/libexpat/libexpat/releases/download/R_2_6_4/expat-2.6.4.tar.gz
 + tar xf expat-2.6.4.tar.gz
 + cd expat-2.6.4/
 + ./configure --prefix=/opt/stalin/expat-2.6.4 --disable-shared
 + make -j`nproc`
 + sudo make install
gdb.1733936787.txt.gz · Last modified: 2024/12/11 17:06 by keremet