рд╡рд░реНрддрдорд╛рди рдореЗрдВ рд╡реАрдПрд╕ рдХреЛрдб рдХреЗ рд▓рд┐рдП рд▓рд┐рдирдХреНрд╕ рдкрд░ рдПрд▓рдПрд▓рдбреАрдмреА рд╕рдорд░реНрдерди рдХреА рдХрдореА рд╣реИред рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред
рдпрд╛ рддреЛ vscode-cpptools рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд▓рд┐рдирдХреНрд╕ рдкрд░ Clang рдХреЗ рд╕рд╛рде рдЖрд░рдВрдн рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреЛрдИ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рджрд╕реНрддрд╛рд╡реЗрдЬ рдирд╣реАрдВ рд╣реИред
рд▓рд┐рдирдХреНрд╕ рдкрд░ Clang / LLDB рдХреЗ рд▓рд┐рдП рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рд╕рдорд░реНрдерди рдЬреЛрдбрд╝рдирд╛ рдмрд┐рд▓реНрдХреБрд▓ рднрдпрд╛рдирдХ рд╣реЛрдЧрд╛ред рд╡реНрдпрд╛рдкрдХ рд░реВрдк рд╕реЗ рд╡рд┐рдВрдбреЛрдЬ рдПрд▓рдПрд▓рд╡реАрдПрдо рдХреЗ рдХреНрд░реЙрд╕-рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рдкреНрд░рдХреГрддрд┐ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдзрдиреНрдпрд╡рд╛рдж рд╣реЛрдЧрд╛ред
рд╣рд╛рдБ, рдпрд╣ https://code.visualstudio.com/docs/cpp/config-clang-mac (рд▓рд┐рдирдХреНрд╕ рдореЗрдВ рдореИрдХ рд╕рдВрджрд░реНрдн рдкрд░рд┐рд╡рд░реНрддрди рдХреЗ рд╕рд╛рде) рдФрд░ https://code.visualstudio.com/docs/ рдХрд╛ рдХреЙрдореНрдмреЛ рд╣реЛрдиреЗ рдХреА рддрд░рд╣ рд╣реЛрдЧрд╛ @WardenGnaw рдХреЛ рдкрддрд╛ рд╣реЛрдЧрд╛)ред
рд▓рд┐рдирдХреНрд╕ рдкрд░ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрд▓рдПрд▓рдбреАрдмреА рдбрд┐рдмрдЧрд┐рдВрдЧ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП lldb-mi
рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЧреНрдп рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред
рдПрдХ рдмрд╛рд░ рдЬрдм рдЖрдк рдРрд╕рд╛ рдХрд░ рд▓реЗрддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ launch.json
рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЗ рд╕рд╛рде рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛:
{
...
"miDebuggerPath": "path/to/lldb-mi".
"miMode": ''lldb"
}
рдзрдиреНрдпрд╡рд╛рдж @ рд╢реЙрди- mcmanus
рд╣реЗ @WardenGnaw , рдореИрдВрдиреЗ рджреЗрдЦрд╛ рдХрд┐ рдЖрдкрдиреЗ рдПрдХ рдкреБрд░рд╛рдиреЗ рдмрдВрдж рдЯрд┐рдХрдЯ рдкрд░ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдореИрдВ рдХрднреА рднреА рдЕрдкрдиреА рдорд╢реАрди рдкрд░ рд╡рд╣ рдХрд╛рдо рдХрд░рдиреЗ рдореЗрдВ рдХрд╛рдордпрд╛рдм рдирд╣реАрдВ рд╣реБрдЖред
рдореИрдВрдиреЗ lldb-mi
/usr/bin/
рдореЗрдВ рдкрд╛рдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЬрдм рдореИрдВ рдЗрд╕реЗ "miDebuggerPath": "usr/bin/lldb-mi"
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд▓рдХреНрд╖реНрдп рдмрдирд╛рдиреЗ рдореЗрдВ рдЕрд╕рдорд░реНрде рдерд╛ред lldb-mi-10
рдЦреЛрдЬрдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдирд╣реАрдВ рд╣реЛрдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреБрдЫ?
рдХреНрдпрд╛ рдЗрд╕рд╕реЗ рдХреЛрдИ рдШрдВрдЯреА рдмрдЬреЗрдЧреА?
рдУрд╣ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдЙрдмрдВрдЯреВ рдХреА рддрд░рдл рдПрдХ рдмрдЧ рд╣реИ https://bugs.launchpad.net/ubuntu/+source/llvm-toolchain-10/+bug/1872387
рдЪреВрдВрдХрд┐ рдЙрдмрдВрдЯреВ 20.04 рдкреИрдХреЗрдЬ рдХреЛ рднреВрд▓ рдЧрдП рд╣реИрдВ рд▓рдЧрддрд╛ рд╣реИ lldb-mi-10
рдХреЗ рд╕рд╛рде lldb
рдореИрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА "miDebuggerPath": "usr/bin/lldb-mi-9"
рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж lldb-9
, рд▓реЗрдХрд┐рди рдХреЛрдИ рд▓рд╛рдн рдирд╣реАрдВ рд╣реБрдЖред
@WardenGnaw рдЖрдк рдЕрдЧрд░ рдкреБрд╖реНрдЯрд┐ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ "miDebuggerPath": "usr/bin/lldb-mi-9"
рдЖрдк рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ? рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рдмрдЧрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдХреНрдпрд╛ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ "miDebuggerPath": "usr/bin/lldb-mi"
рд╣реЛрдирд╛ рдЬрд░реВрд░реА рд╣реИ?
рдЗрд╕рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ "usr / bin / lldb-mi" рд╣реЛрдирд╛ рдЬрд╝рд░реВрд░реА рдирд╣реАрдВ рд╣реИ, рдмрд╕ рдЗрд╕реЗ рдПрдХ рдорд╛рдиреНрдп рдбреАрдмрдЧрд░ рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рдЬреЛ mi рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред
рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХрд╛ рдПрдХ рддрд░реАрдХрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдмрд╛рдЗрдирд░реА рдХреЛ рдЪрд▓рд╛рдПрдВ рдФрд░ рджреЗрдЦреЗрдВ рдХрд┐ рдХреНрдпрд╛ рдпрд╣ -interpreter-exec console "version"
рдЬрд╡рд╛рдм рджреЗрддрд╛ рд╣реИ
@WardenGnaw рдРрд╕рд╛ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ lldb-mi рдЕрдм рдЙрдмрдВрдЯреВ рдореЗрдВ рд╕рдорд░реНрдерд┐рдд рд╣реЛрдиреЗ рдЬрд╛ рд░рд╣рд╛ рд╣реИ:
https://bugs.launchpad.net/ubuntu/+source/llvm-toolchain-10/+bug/1822387
рдХреНрдпрд╛ рдЗрд╕рдХрд╛ рдХреЛрдИ рд╕рдорд╛рдзрд╛рди рд╣реИ? рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕рд░рд╛рд╣рдирд╛ рдХреА рдЬрд╛рдПрдЧреА рдЕрдЧрд░ рд╣рдо VS рдХреЛрдб рдХреЗ рд╕рд╛рде lldb рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдЬреИрд╕рд╛ рдХрд┐ рдпрд╣ рдХрд╣рд╛ рдЧрдпрд╛ рд╣реИ рдХрд┐ рд╣рдо рд╡реАрдПрд╕ рдХреЛрдб рдХреЗ рд╕рд╛рде lldb рдХреЗ рдкреБрд░рд╛рдиреЗ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реАрдорд┐рдд рд╣реИрдВ, рдФрд░ рд╕реНрдкрд╖реНрдЯ рд╣реИ рдХрд┐ рдореИрдВ VS рдХреЛрдб рдХреЗ рд╕рд╛рде Ubuntu 20.04 рдкрд░ рдареАрдХ рд╕реЗ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП lldb-mi-9 рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдирд╣реАрдВ рдерд╛ред
MacOS рдХреЗ рд▓рд┐рдП, рд╣рдо LLDB-MI рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХреЗ рд▓рд┐рдП рдЕрдкрдиреА рдЦреБрдж рдХреА рдХреЙрдкреА
рдПрдХ рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рдЕрдкрдиреА рдХреЙрдкреА рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдФрд░ miDebuggerPath
рд╕рд╛рде рдЕрдкрдиреЗ рд▓реЙрдиреНрдЪ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реЛрдЧрд╛ред рдореИрдВ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рдПрдХ рд╕реНрдерд╛рдкрд┐рдд lldb рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рддреЛ рд▓рд┐рдирдХреНрд╕ рдкрд░ рдПрдХ рдкреНрд░рддрд┐ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдЕрдЧрд░ рдореИрдВ рдЬрд╛рдБрдЪ рдХрд░реЗрдВрдЧреЗред
рдЕрджреНрдпрддрди: рдореИрдВ рд╕рд┐рд░реНрдл Ubuntu 20.04 рдХреЗ рд▓рд┐рдП lldb-mi
рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рд░рдирдЯрд╛рдЗрдо рдореБрджреНрджреЛрдВ рдХрд╛ рдПрдХ рд╕рдореВрд╣ рдмрди рдЧрдпрд╛ рд╣реВрдВред
рдЗрд╕ рдмрд┐рд▓реНрдб рдХреЛ liblldb.so рдФрд░ lldb-server рд╢рд┐рдк рдХрд░рдирд╛ рдкрдбрд╝ рд╕рдХрддрд╛ рд╣реИред
рдорд╢реАрди рдкрд░ рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рд╣реЛрдЧрд╛:
_ рдЬрд╛рдБрдЪ рдкрдбрд╝рддрд╛рд▓_
рдореИрдВ рдПрдХ рдРрд╕реА рд╣реА рд╕реНрдерд┐рддрд┐ рд╕реЗ рднреА рдорд┐рд▓рд╛ рдЬрдм рдореИрдВрдиреЗ рд▓рд┐рдирдХреНрд╕ (рдЙрдмрдВрдЯреВ 20.04) рдкрд░ vscode рдореЗрдВ рдХреНрд▓реИрдВрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рдФрд░ рдпрд╣ рдмрддрд╛рддрд╛ рд╣реИ рдХрд┐ miDebuggerPath рдПрдХ рдЕрдорд╛рдиреНрдп рдкрде рд╣реИред рддреЛ рдХреНрдпрд╛ рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдХ рдмрдЧ рд╣реИ?
@zbhxlj llvm рд╕рдореВрд╣ рдиреЗ llvm-toolchain-10 рдХреЗ рд╕рд╛рде lldb-mi
рд╢рд┐рдк рдирд╣реАрдВ рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ рд╣реИред
рдХреНрд▓реИрдВрдЧ рдФрд░ рдПрд▓рдПрд▓рдбреАрдмреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рдЕрдкрдиреЗ рд╕реНрд░реЛрдд рд╕реЗ lldb-mi рдмрдирд╛рдиреЗ рдФрд░ miDebuggerPath
lldb-mi
ред
@WardenGnaw рдЖрдк рдмрд┐рдирд╛ рдХрд┐рд╕реА рдЕрдЬрдЧрд░ рдФрд░ рдХрд┐рд╕реА рд╢рд╛рдк рдХреЗ рд╕рд╛рде рд╕рдВрдХрд▓рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдХреНрдпрд╛ рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХреЗ рдиреНрдпреВрдирддрдо рд╕реЗрдЯ рдХреЛ рдкреВрд░рд╛ рдХрд░рддрд╛ рд╣реИред
рдХреНрд▓реИрдВрдЧ рдХреЗ рд▓рд┐рдП, рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдЗрд╕рдХреА рдЕрдиреБрдЪрд┐рдд рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рдПрд▓рдПрд▓рдбреАрдмреА-рдПрдордЖрдИ рдХреЗ рд╕рд╛рде рдЗрд╕реНрддреЗрдорд╛рд▓ рдХреЗ рд▓рд┐рдП рдХреНрд▓реИрдВрдЧ рдореМрдЬреВрдж рд╣реИ
рдареАрдХ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рдПрдХ рдмрд╛рд░ рдлрд┐рд░ рд╕реЗ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ рд╣реИ рдФрд░ рдореИрдВрдиреЗ рдЗрд╕реЗ рдЙрдмрдВрдЯреВ 18.04 рдкрд░ рдХрд╛рдо рдХрд░ рд▓рд┐рдпрд╛ рд╣реИред
рдРрд╕реЗ:
apt
рдорд╛рдзреНрдпрдо рд╕реЗ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкреИрдХреЗрдЬ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВsudo apt install clang-10 llvm-10-dev liblldb-10-dev
sudo ln -s /usr/bin/clang-10 /usr/bin/clang
sudo ln -s /usr/bin/clang++-10 /usr/bin/clang++
sudo ln -s /usr/bin/lldb-10 /usr/bin/lldb
# This one is a bit strange but VSCode only looks for the name `lldb-server-10.0.0` but not `lldb-server-10`
sudo ln -s /usr/bin/lldb-server-10 /usr/bin/lldb-server-10.0.0
lldb-mi
рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЧреНрдп рдмрдирд╛рдПрдБgit clone https://github.com/lldb-tools/lldb-mi.git
cd lldb-mi
cmake .
cmake --build .
sudo cp src/lldb-mi /usr/bin/
рдпреЗ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдФрд░ рдпрд╣рд╛рдБ рдореЗрд░рд╛ launch.json
ред рдореВрд▓ рд░реВрдк рд╕реЗ clang++
рдкреНрд░реАрд╕реЗрдЯ рд╕реЗ рдХреЗрд╡рд▓ рдПрдХ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╣реИ рдФрд░ рдпрджрд┐ рдореБрдЭреЗ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдпрд╛рдж рд╣реИ рддреЛ рдХреБрдЫ рднреА рдирд╣реАрдВ рдмрджрд▓рд╛ рд╣реИред
{
// Use IntelliSense to learn about possible attributes.
// Hover to view descriptions of existing attributes.
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "clang++ - Build and debug active file",
"type": "cppdbg",
"request": "launch",
"program": "${fileDirname}/${fileBasenameNoExtension}",
"args": [],
"stopAtEntry": false,
"cwd": "${workspaceFolder}",
"environment": [],
"externalConsole": false,
"MIMode": "lldb",
"setupCommands": [
{
"description": "Enable pretty-printing for gdb",
"text": "-enable-pretty-printing",
"ignoreFailures": true
}
],
"preLaunchTask": "C/C++: clang++ build active file",
"miDebuggerPath": "/usr/bin/lldb-mi"
}
]
}
@WardenGnaw рдЖрдк рдЗрд╕реЗ
рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА
рдареАрдХ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рдПрдХ рдмрд╛рд░ рдлрд┐рд░ рд╕реЗ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ рд╣реИ рдФрд░ рдореИрдВрдиреЗ рдЗрд╕реЗ рдЙрдмрдВрдЯреВ 18.04 рдкрд░ рдХрд╛рдо рдХрд░ рд▓рд┐рдпрд╛ рд╣реИред
рдРрд╕реЗ:
apt
рдорд╛рдзреНрдпрдо рд╕реЗ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкреИрдХреЗрдЬ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВlldb-mi
рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЧреНрдп рдмрдирд╛рдПрдБрдпреЗ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдФрд░ рдпрд╣рд╛рдБ рдореЗрд░рд╛
launch.json
ред рдореВрд▓ рд░реВрдк рд╕реЗclang++
рдкреНрд░реАрд╕реЗрдЯ рд╕реЗ рдХреЗрд╡рд▓ рдПрдХ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╣реИ рдФрд░ рдпрджрд┐ рдореБрдЭреЗ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдпрд╛рдж рд╣реИ рддреЛ рдХреБрдЫ рднреА рдирд╣реАрдВ рдмрджрд▓рд╛ рд╣реИред@WardenGnaw рдЖрдк рдЗрд╕реЗ