Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [cdt-dev] Neon.2 does not start GDB 7.12 on macOS

> From: cdt-dev-bounces@xxxxxxxxxxx <cdt-dev-bounces@xxxxxxxxxxx> on behalf of Liviu Ionescu <ilg@xxxxxxxxxx>
> Sent: January 31, 2017 10:32
> To: CDT General developers list.
> Subject: Re: [cdt-dev] Neon.2 does not start GDB 7.12 on macOS
>  
> > On 30 Jan 2017, at 22:40, Marc Khouzam <marc.khouzam@xxxxxxxxxxxx> wrote:
> > 
> > Can you try the build at:
> > https://ci.eclipse.org/cdt/job/cdt-9.2/35/artifact/releng/org.eclipse.cdt.repo/target/org.eclipse.cdt.repo.zip
> I did the following tests:
> # macOS 10.12.2, GDB 7.10 (since 7.12 crashes on macOS)

Just to mark off issues, we agree that GDB 7.12 crashing on Mac is not related to CDT.

> - install eclipse-java-neon-2-macosx-cocoa-x86_64.tar.gz (installing cpp-neon-2 did not allow to update CDT)
> - install from https://ci.eclipse.org/cdt/job/cdt-9.2/35/artifact/releng/org.eclipse.cdt.repo/target/org.eclipse.cdt.repo.zip
>     C/C++ Development Tools     9.2.0.201701301723
>     C/C++ GDB Hardware Debugging        9.2.0.201701301723
> - install GNU ARM Eclipse plug-ins from a local folder (IGdbDebugConstants.GDB_PROCESS_CREATION_VALUE)
> - start a QEMU debug session, halt in main()
> Results (with GDB 7.10):
> - the '${cross_prefix}gdb${cross_suffix} (???)' console (new one) reads:
> ```
> GNU gdb (GNU Tools for ARM Embedded Processors) 7.10.1.20160923-cvs
> Copyright (C) 2015 Free Software Foundation, Inc.
> License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
> This is free software: you are free to change and redistribute it.
> There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
> and "show warranty" for details.
> This GDB was configured as "--host=x86_64-apple-darwin10 --target=arm-none-eabi".
> Type "show configuration" for configuration details.
> For bug reporting instructions, please see:
> <http://www.gnu.org/software/gdb/bugs/>.
> Find the GDB manual and other documentation resources online at:
> <http://www.gnu.org/software/gdb/documentation/>.
> For help, type "help".
> Type "apropos word" to search for commands related to "word".
> Temporary breakpoint 1, main (argc=1, argv=0x20000234 <argv_buf>) at ../src/main.cpp:138
> 138     {
> ```
> - the 'arm-none-eabi-gdb' console (old one) does not exist

So I finally understand that we've been talking about different things.
When you say 'old console' you mean the console shown in the Console view.
While the 'new console' is the one shown in the Debugger Console.
I had mis-understood that.  Let's stick to that terminology.

For clarity, we also have a concept of "full GDB console" and "basic GDB console" which
and I was thinking "new" == "full console" while "old" == "basic console", which caused
my confusion. Again, let's stick to the terminology you are using.
Your plugins only use the "basic" console.

BTW, the "full GDB console" is the real improvement that I called "awesome".
It provides a complete command-line experience to the user with:
- (gdb) prompt
- <tab> completion
- command editing (arrow left/right, and other shortcuts)
- command history (arrow up/down)
- smart command-repetition
- and more

So the old console has been removed, for the GDB process -only-, and has been moved to the 
Debugger Console view.  This should have minimal impact but allow users to look at both
the GDB console (in the Debugger console view) and the program's output.  And if they
don't care to do that, they can stack the views one on top of the other and only look
at the console view.


> - single step, breakpoint, suspend, terminate, restart ok
> - click on the 'arm-none-eabi-gdb' process does nothing.

What do you expect it to do?
Considering the GDB console is in the Debugger console view, there is nothing else for CDT to do.

> # Windows 8, x64, GDB 7.12 and GDB 7.10
> - install eclipse-java-neon-2-win32-x86_64.zip
> - install from https://ci.eclipse.org/cdt/job/cdt-9.2/35/artifact/releng/org.eclipse.cdt.repo/target/org.eclipse.cdt.repo.zip
>     C/C++ Development Tools     9.2.0.201701301723
>     C/C++ GDB Hardware Debugging        9.2.0.201701301723
> - install GNU ARM Eclipse plug-ins from a local folder (IGdbDebugConstants.GDB_PROCESS_CREATION_VALUE)
> - start a QEMU debug session, halt in main()
> Results (with GDB 7.12):
> - the '${cross_prefix}gdb${cross_suffix} (???)' console (new one) reads:
> ```
> GNU gdb (GNU Tools for ARM Embedded Processors) 7.12.0.20161204-git
> Copyright (C) 2016 Free Software Foundation, Inc.
> License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
> This is free software: you are free to change and redistribute it.
> There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
> and "show warranty" for details.
> This GDB was configured as "--host=i686-w64-mingw32 --target=arm-none-eabi".
> Type "show configuration" for configuration details.
> For bug reporting instructions, please see:
> <http://www.gnu.org/software/gdb/bugs/>.
> Find the GDB manual and other documentation resources online at:
> <http://www.gnu.org/software/gdb/documentation/>.
> For help, type "help".
> Type "apropos word" to search for commands related to "word".
> Temporary breakpoint 1, main (argc=1, argv=0x20000004 <argv>) at ../src/main.cpp:133
> 133     {
> ```
> - the 'arm-none-eabi-gdb' console (old one) does not exist

Same comment as for mac

> - single step, breakpoint, suspend, restart ok.
> - terminate triggers a windows error dialog box ('arm-none-eabi-gdb.exe has stopped working')

This is new.  Can you open a bug if you feel it could be CDT related.

> - click on the 'arm-none-eabi-gdb' process does nothing.

Same comment as for mac
 
> Results (with GDB 7.10):
> - single step, breakpoint, suspend, terminate, restart ok.
> - click on the 'arm-none-eabi-gdb' process does nothing.

Same comment as for mac

> # Ubuntu 14LTS, x64, GDB 7.12 and GDB 7.10
> - install eclipse-java-neon-2-linux-gtk-x86_64.tar.gz
> - install from https://ci.eclipse.org/cdt/job/cdt-9.2/35/artifact/releng/org.eclipse.cdt.repo/target/org.eclipse.cdt.repo.zip
>     C/C++ Development Tools     9.2.0.201701301723
>     C/C++ GDB Hardware Debugging        9.2.0.201701301723
> - install GNU ARM Eclipse plug-ins from a local folder (IGdbDebugConstants.GDB_PROCESS_CREATION_VALUE)
> - start a QEMU debug session, halt in main()
> Results (with GDB 7.12):
> - the '${cross_prefix}gdb${cross_suffix} (???)' console (new one) reads:
> ```
> GNU gdb (GNU Tools for ARM Embedded Processors) 7.12.0.20161204-git
> Copyright (C) 2016 Free Software Foundation, Inc.
> License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
> This is free software: you are free to change and redistribute it.
> There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
> and "show warranty" for details.
> This GDB was configured as "--host=x86_64-linux-gnu --target=arm-none-eabi".
> Type "show configuration" for configuration details.
> For bug reporting instructions, please see:
> <http://www.gnu.org/software/gdb/bugs/>.
> Find the GDB manual and other documentation resources online at:
> <http://www.gnu.org/software/gdb/documentation/>.
> For help, type "help".
> Type "apropos word" to search for commands related to "word".
> Temporary breakpoint 1, main (argc=1, argv=0x20000234 <argv_buf>) at ../src/main.cpp:138
> ```
> - the 'arm-none-eabi-gdb' console (old one) does not exist

Same comment as for mac
 
> - single step, breakpoint, suspend, terminate, restart ok.
> - click on the 'arm-none-eabi-gdb' process does nothing.

Same comment as for mac
 
> Results (with GDB 7.10);
> - the '${cross_prefix}gdb${cross_suffix} (???)' console (new one) reads:
> ```
> GNU gdb (GNU Tools for ARM Embedded Processors) 7.10.1.20160923-cvs
> Copyright (C) 2015 Free Software Foundation, Inc.
> License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
> This is free software: you are free to change and redistribute it.
> There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
> and "show warranty" for details.
> This GDB was configured as "--host=i686-linux-gnu --target=arm-none-eabi".
> Type "show configuration" for configuration details.
> For bug reporting instructions, please see:
> <http://www.gnu.org/software/gdb/bugs/>.
> Find the GDB manual and other documentation resources online at:
> <http://www.gnu.org/software/gdb/documentation/>.
> For help, type "help".
> Type "apropos word" to search for commands related to "word".
> Temporary breakpoint 2, main (argc=1, argv=0x20000234 <argv_buf>) at ../src/main.cpp:138
> 138     {
> ```
> - the 'arm-none-eabi-gdb' console (old one) does not exist

Same comment as for mac

> - single step, breakpoint, suspend, terminate, restart ok.
> - click on the 'arm-none-eabi-gdb' process does nothing.

Same comment as for mac
 
> Problems:
> - the new console title is not right, macro substitutions were not performed.

This may be a modification in your plugin that does not work with the Debugger
console view change.  Should be easy to fix.  I can have a quick look.

> - on Windows, terminating the 7.12 session crashes GDB

See above about reporting a bug.

> - click on the 'arm-none-eabi-gdb' process does nothing, non-consistent with the other processes, which select the corresponding Tab console.

See above

> I also did another series of tests with the attribute IGdbDebugConstants.GDB_PROCESS_CREATION_VALUE **not set** for the GDB process.
> Except that, on Windows, the GDB process no longer crashed on Terminate, on macOS the console output was split between two tabs:

That's an interesting detail for the bug to track the crashing GDB.

> - the 'arm-none-eabi-gdb' console (old one) reads:
> ```
> GNU gdb (GNU Tools for ARM Embedded Processors) 7.10.1.20160923-cvs
> Copyright (C) 2015 Free Software Foundation, Inc.
> For bug reporting instructions, please see:
> 138     {
> ```
> - the '${cross_prefix}gdb${cross_suffix} (???)' console (new one) reads:
> ```
> License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
> This is free software: you are free to change and redistribute it.
> There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
> and "show warranty" for details.
> This GDB was configured as "--host=x86_64-apple-darwin10 --target=arm-none-eabi".
> Type "show configuration" for configuration details.<http://www.gnu.org/software/gdb/bugs/>.
> Find the GDB manual and other documentation resources online at:
> <http://www.gnu.org/software/gdb/documentation/>.
> For help, type "help".
> Type "apropos word" to search for commands related to "word".
> Temporary breakpoint 1, main (argc=1, argv=0x20000234 <argv_buf>) at ../src/main.cpp:138
> ```
> As you said, not setting the attribute is probably not the right way to disable the new console.
> Regards,
> Liviu



Back to the top