Public bug reported:

I noticed random looking SIGSEGV to application when trying to continue
execution after first breakpoint. I now seem to have narrowed the issue
to SIMD instruction with memory operand as first breakpoint location. I
haven't managed to figure out why the SIGSEGV is delivered to the
debugger application.

It is important have first breakpoint exactly at a problematic
instructions. If I first break on a different instruction then later
breakpoints won't reproduce that crash

I haven't tested if this is a hardware specific issue.

I managed to write a simple test case which reproduces the crash if
breakpoint is set. I attached the test.cc which includes compilation and
testing instructions. test.cc is supposed to generate a simple main
function like:

Dump of assembler code for function main():
=> 0x0000555555554520 <+0>:     vmovdqa 0x1af8(%rip),%xmm0        # 
0x555555556020 <foo>
   0x0000555555554528 <+8>:     vmovd  %xmm0,%eax
   0x000055555555452c <+12>:    retq

I set breakpoint with:
b main

Then either continue or stepping causes SIGSEGV to the debugged
application.

This was happening already with disco. I only now figured out enough
details to make a simple test case which is worth a bug report.

ProblemType: Bug
DistroRelease: Ubuntu 19.10
Package: gdb 8.3-0ubuntu1
ProcVersionSignature: Ubuntu 5.3.0-19.20-generic 5.3.1
Uname: Linux 5.3.0-19-generic x86_64
NonfreeKernelModules: nvidia_modeset nvidia
ApportVersion: 2.20.11-0ubuntu8
Architecture: amd64
CurrentDesktop: GNOME
Date: Tue Oct 29 09:44:52 2019
InstallationDate: Installed on 2037-12-25 (-6632 days ago)
InstallationMedia: Lubuntu 16.04 LTS "Xenial Xerus" - Release amd64 (20160420.1)
SourcePackage: gdb
UpgradeStatus: Upgraded to eoan on 2019-10-27 (1 days ago)

** Affects: gdb (Ubuntu)
     Importance: Undecided
         Status: New


** Tags: amd64 apport-bug eoan

** Attachment added: "A simple test case which crashes if first breakpoint is 
in main"
   https://bugs.launchpad.net/bugs/1850258/+attachment/5301095/+files/test.cc

** Description changed:

  I noticed random looking SIGSEGV to application when trying to continue
  execution after first breakpoint. I now seem to have narrowed the issue
  to SIMD instruction with memory operand as first breakpoint location. I
  haven't managed to figure out why the SIGSEGV is delivered to the
  debugger application.
  
  It is important have first breakpoint exactly at a problematic
  instructions. If I first break on a different instruction then later
  breakpoints won't reproduce that crash
  
  I haven't tested if this is a hardware specific issue.
  
  I managed to write a simple test case which reproduces the crash if
  breakpoint is set. I attached the test.cc which includes compilation and
  testing instructions. test.cc is supposed to generate a simple main
  function like:
  
  Dump of assembler code for function main():
  => 0x0000555555554520 <+0>:   vmovdqa 0x1af8(%rip),%xmm0        # 
0x555555556020 <foo>
-    0x0000555555554528 <+8>:   vmovd  %xmm0,%eax
-    0x000055555555452c <+12>:  retq   
+    0x0000555555554528 <+8>:   vmovd  %xmm0,%eax
+    0x000055555555452c <+12>:  retq
  
  I set breakpoint with:
  b main
  
  Then either continue or stepping causes SIGSEGV to the debugged
  application.
+ 
+ This was happening already with disco. I only now figured out enough
+ details to make a simple test case which is worth a bug report.
  
  ProblemType: Bug
  DistroRelease: Ubuntu 19.10
  Package: gdb 8.3-0ubuntu1
  ProcVersionSignature: Ubuntu 5.3.0-19.20-generic 5.3.1
  Uname: Linux 5.3.0-19-generic x86_64
  NonfreeKernelModules: nvidia_modeset nvidia
  ApportVersion: 2.20.11-0ubuntu8
  Architecture: amd64
  CurrentDesktop: GNOME
  Date: Tue Oct 29 09:44:52 2019
  InstallationDate: Installed on 2037-12-25 (-6632 days ago)
  InstallationMedia: Lubuntu 16.04 LTS "Xenial Xerus" - Release amd64 
(20160420.1)
  SourcePackage: gdb
  UpgradeStatus: Upgraded to eoan on 2019-10-27 (1 days ago)

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1850258

Title:
  First breakpoint at AVX instruction with memory operand causes SIGSEGV
  when tring to continue execution

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/gdb/+bug/1850258/+subscriptions

-- 
ubuntu-bugs mailing list
ubuntu-bugs@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to