Hoʻokuʻu ʻia ʻo GDB 11 debugger

Ua hōʻikeʻia ka hoʻokuʻuʻana o ka GDB 11.1 debugger (ʻo ka hoʻokuʻu mua o ka 11.x series, ua hoʻohanaʻia ka lālā 11.0 no ka hoʻomohalaʻana). Kākoʻo ʻo GDB i ka debugging pae kumu no kahi ākea o nā ʻōlelo papahana (Ada, C, C++, Objective-C, Pascal, Go, Rust, etc.) ma nā lako like ʻole (i386, amd64, ARM, Power, Sparc, RISC - V, a pēlā aku) a me nā pūnaewele polokalamu (GNU/Linux, *BSD, Unix, Windows, macOS).

Nā hoʻomaikaʻi nui:

  • Ua hoʻohui ka TUI (Text User Interface) i ke kākoʻo no nā hana ʻiole a me ka hiki ke ʻōwili i nā ʻike me ka huila ʻiole. Hiki ke hoʻouna i nā hui kī i GDB ʻaʻole i hana ʻia ma TUI.
  • Hoʻohui ʻia ke kākoʻo no ka mīkini ARMv8.5 MTE (MemTag, Memory Tagging Extension), kahi e hiki ai iā ʻoe ke hoʻopaʻa i nā hōʻailona i kēlā me kēia hana hoʻomanaʻo hoʻomanaʻo a hoʻonohonoho i kahi māka kuhikuhi i ka wā e komo ai i ka hoʻomanaʻo, pono e hoʻopili ʻia me ka hōʻailona pololei. Hāʻawi ka Remote Debug Control Protocol i ke kākoʻo no nā pūʻolo "qMemTags" a me "QMemTags" no ka hoʻopaʻa ʻana i nā hōʻailona i ka hoʻomanaʻo.
  • Ua hoʻololi ʻia ka loiloi no ka heluhelu ʻana i nā faila hoʻonohonoho. Ua nānā ʻia ka faila .gdbinit i kēia manawa: $XDG_CONFIG_HOME/gdb/gdbinit, $HOME/.config/gdb/gdbinit a me $ HOME/.gdbinit. ʻO kēlā mau. mua i ka config subdirectory, a laila wale nō ma ka papa kuhikuhi home.
  • Ma ke kauoha "break [...] inā CONDITION", hoʻopau ʻia ka hoʻopuka hewa inā ʻaʻole kūpono kahi kūlana ma kekahi mau wahi, inā kūpono ke kūlana ma ka liʻiliʻi o hoʻokahi hihia.
  • Kākoʻo hoʻohui ʻia no ka debugging core dumps i hana ʻia no nā polokalamu Cygwin i hōʻuluʻulu ʻia no ka hoʻolālā x86_64.
  • Hoʻohui ʻia ke kākoʻo no nā ʻano kiko paʻa, a me ka DW_AT_GNU_numerator a me DW_AT_GNU_denominator mau.
  • Hoʻohui ʻia ka hoʻonohonoho "hoʻomaka-noho mālie ma | hoʻopau"; i ka "on", e like me ke koho "-silent".
  • Hoʻohana ke kauoha "ptype" i nā koho /x" a me "/d" e koho i ka hexadecimal a i ʻole decimal ke hōʻike ʻia nā nui a me nā offset. Hoʻohui ʻia ka hoʻonohonoho "print type hex on | off" e hoʻohana i nā waiwai hexadecimal i ka puka o ke kauoha 'ptype'.
  • Ma ke kauoha "haʻahaʻa", ke kāhea ʻia me ka ʻole o nā hoʻopaʻapaʻa, hāʻawi ʻia ka hoʻopuka o ka mea debugging o kēia manawa (inferior).
  • Ua hana hou ʻia ka puka o ke kauoha "kumu kumu".
  • Hoʻohui ʻia ke kauoha "style version foreground | hope | intensity" e hoʻomalu i ke ʻano helu helu.
  • Hoʻohui i nā koho laina kauoha hou: "—early-init-command" ("-eix"), "—early-init-eval-command" ("-eiex"), "—qualified" (no nā kauoha '-break-insert ) ' a me '-dprintf-insert'), "--force-condition" (no nā kauoha '-break-insert' a me '-dprintf-insert'), "--force" (no ka '-break-condition ' kauoha).
  • ʻO ke kauoha "-file-list-exec-source-files" hiki iā ʻoe ke kuhikuhi i nā ʻōlelo maʻamau e kānana i nā faila kumu e hana ʻia. Ua hoʻohui ʻia kahi kahua 'debug-full-read' i ka hoʻopuka e hōʻike i ka nui o ka hoʻouka ʻana i ka ʻike debugging.
  • Ua hoʻomaikaʻi ʻia ka Python API. Hoʻohui ʻia nā ʻano hana hou gdb.Frame.level() a me db.PendingFrame.level() e hoʻihoʻi i ka pae ahu no kahi mea Frame. Ke hoʻomaka ʻia kahi catchpoint, hōʻoia ka Python API e hoʻouna ʻia ka gdb.BreakpointEvent ma kahi o gdb.StopEvent. Hoʻohui i nā hoʻonohonoho "python ignore-environment on|off" no ka nānā ʻole ʻana i nā ʻano hoʻololi kaiapuni a me "python dont-write-bytecode auto|on|off" e hoʻopau i ke kākau ʻana bytecode.
  • Ua hoʻomaikaʻi ʻia ka Guile API. Ua hoʻohui ʻia nā kaʻina hana hou i ka waiwai-hōʻike-waiwai, ka waiwai-rvalue-reference-value a me ka waiwai-const-value.
  • ʻO nā mea hilinaʻi hui e koi ʻia me ka waihona GMP (GNU Multiple Precision Arithmetic).
  • Ua hoʻopau ʻia ke kākoʻo no ka platform ARM Symbian (arm*-*-symbianelf*).

Source: opennet.ru

Pākuʻi i ka manaʻo hoʻopuka