gdb
Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| gdb [2024/12/12 08:02] – keremet | gdb [2024/12/17 20:24] (current) – keremet | ||
|---|---|---|---|
| Line 6: | Line 6: | ||
| cd binutils-gdb | cd binutils-gdb | ||
| git checkout gdb-15.2-release | git checkout gdb-15.2-release | ||
| + | |||
| + | Пропатченная версия | ||
| + | git clone https:// | ||
| Компиляция | Компиляция | ||
| - | | + | |
| - | tar xf gdb-15.2.tar.xz | + | |
| - | cd gdb-15.2 | + | |
| ./configure --prefix=/ | ./configure --prefix=/ | ||
| make | make | ||
| Line 25: | Line 26: | ||
| - | Для тестирования | + | Для тестирования |
| - | b exec_simple_query | + | b exec_simple_query |
| - | print *parsetree_list | + | print *parsetree_list |
| - | ------------ | + | |
| - | gdbtypes.c | + | |
| - | | + | |
| - | | + | |
| - | return type->code () == TYPE_CODE_STRUCT && type->num_fields () > 0 | + | |
| - | && | + | |
| - | && | + | |
| - | } | + | |
| - | + | ||
| - | static struct type * get_type_from_NodeTag(struct type *nodeType, CORE_ADDR addr) | + | |
| - | { | + | |
| - | struct type *typeNodeTag = check_typedef (nodeType-> | + | |
| - | LONGEST enumval = read_memory_unsigned_integer(addr, | + | |
| - | + | ||
| - | unsigned enumLen = typeNodeTag-> | + | |
| - | for (unsigned i = 0; i < enumLen; i++) | + | |
| - | if (enumval == typeNodeTag-> | + | |
| - | { | + | |
| - | const char *type_name = typeNodeTag-> | + | |
| - | if (strlen(type_name) <= 2 || type_name[0] != ' | + | |
| - | break; | + | |
| - | + | ||
| - | type_name += 2; | + | |
| - | return lookup_typename (current_language, | + | |
| - | } | + | |
| - | + | ||
| - | return nullptr; | + | |
| - | } | + | |
| - | /* Worker for resolved_dynamic_type. | + | |
| - | + | ||
| - | static struct type * | + | |
| - | resolve_dynamic_type_internal (struct type *type, | + | |
| - | | + | |
| - | const frame_info_ptr & | + | |
| - | 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-> | + | |
| - | { | + | |
| - | real_type = check_typedef (real_type-> | + | |
| - | if (type_is_Node(real_type)) | + | |
| - | { | + | |
| - | CORE_ADDR ptr; | + | |
| - | read_memory (addr_stack-> | + | |
| - | struct type *t = get_type_from_NodeTag(real_type, | + | |
| - | if (t == nullptr) | + | |
| - | return type; | + | |
| - | return lookup_pointer_type(t); | + | |
| - | } | + | |
| - | } | + | |
| - | else if (type_is_Node(real_type)) | + | |
| - | { | + | |
| - | struct type *t = get_type_from_NodeTag(real_type, | + | |
| - | if (t == nullptr) | + | |
| - | return type; | + | |
| - | return check_typedef(t); | + | |
| - | } | + | |
| - | + | ||
| - | if (!is_dynamic_type_internal (real_type, top_level)) | + | |
| - | return type; | + | |
| ---------- | ---------- | ||
| еще вариант, | еще вариант, | ||
| Line 156: | Line 94: | ||
| / | / | ||
| + | sudo apt-get install liblzma-devel-static libncurses-devel-static | ||
| + | ./configure --with-static-standard-libraries --without-zstd --disable-compressed-debug-sections --with-mpfr=/ | ||
| + | | ||
| + | wget https:// | ||
| + | tar xf gmp-6.3.0.tar.xz | ||
| + | cd gmp-6.3.0 | ||
| + | ./ | ||
| + | make -j`nproc` | ||
| + | make install | ||
| + | # find / | ||
| + | / | ||
| + | / | ||
| + | / | ||
| + | / | ||
| + | / | ||
| + | / | ||
| + | / | ||
| + | / | ||
| + | / | ||
| + | / | ||
| + | / | ||
| + | / | ||
| + | / | ||
| + | [root@7ea34f557e84 gmp-6.3.0]# | ||
| + | |||
| + | |||
| + | git clone https:// | ||
| + | cd mpfr | ||
| + | git checkout 4.2.1 | ||
| + | ./ | ||
| + | ./ | ||
| + | make -j`nproc` | ||
| + | make install | ||
| + | [root@7ea34f557e84 mpfr]# find / | ||
| + | / | ||
| + | / | ||
| + | / | ||
| + | / | ||
| + | / | ||
| + | / | ||
| + | / | ||
| + | / | ||
| + | / | ||
| + | / | ||
| + | / | ||
| + | / | ||
| + | / | ||
| + | / | ||
| + | / | ||
| + | / | ||
| + | / | ||
| + | / | ||
| + | / | ||
| + | / | ||
| + | / | ||
| + | / | ||
| + | / | ||
| + | / | ||
| + | / | ||
| + | / | ||
| + | / | ||
| + | / | ||
| + | / | ||
| + | [root@7ea34f557e84 mpfr]# | ||
| + | |||
| + | wget https:// | ||
| + | tar xf expat-2.6.4.tar.gz | ||
| + | cd expat-2.6.4/ | ||
| + | ./ | ||
| + | make -j`nproc` | ||
| + | sudo make install | ||
gdb.1733990571.txt.gz · Last modified: 2024/12/12 08:02 by keremet