[Qt-creator] Odd QtCreator hang

Murphy, Sean smurphy at walbro.com
Tue Apr 17 14:27:07 CEST 2018


> > I've got an odd hang with QtCreator when debugging my software.
> Oh, as you are on Windows, that's the third platform that show
> clipboard-related strage effects.
> 
> We already have QTCREATORBUG-20262 and QTBUG-67729. Can you please
> check
> these?

I had stumbled upon QTBUG-67729 yesterday when searching for this issue, and I 
think I read this line from it differently than I am today: " We consistently get a hang 
when we hit a breakpoint if we happen to copy text to the clipboard before we hit
the breakpoint". I dismissed that as different than what I was doing, but this morning
I think it might be essentially the same. What I was doing was setting a breakpoint 
well above the QClipboard::setText() call (which is why I thought it wasn't quite the same),
but then I was stepping one line at a time through my code including over that line,
which I'm now guessing is effectively the same as setting a breakpoint after the copy.

I didn't find QTCREATORBUG-20262 yesterday, but I just built it and ran it as the reporter
described. They didn't post the .pro file used, so I'm not sure if all of those build settings were
the same. Anyways, when I ran it Qt Creator didn't lock up, but I did get the attached popup. If I 
switch the QClipboard::setImage() call in his example to QClipboard::setText(), leaving the 
breakpoint on the qDebug() line, Creator again doesn't hang, but it does drop into the 
disassembler (relevant info pasted below).

I'm realizing that I neglected to mention that I am using the mingw toolchain on Windows,
so maybe it's a gdb issue?

Call stack when disassembler hit
	1 ntdll!DbgBreakPoint                 0x7741000d 
	2 ntdll!DbgUiRemoteBreakin            0x7749f306 
	3 ??                                  0x6ac2b5ef 
	4 KERNEL32!BaseThreadInitThunk        0x76be343d 
	5 ntdll!RtlInitializeExceptionChain   0x77439832 
	6 ntdll!RtlInitializeExceptionChain   0x77439805 
	7 ??                                             

Disassembler
0x7741000c                   cc              int3
0x7741000d  <+0x0001>        c3              ret
0x7741000e  <+0x0002>        90              nop
0x7741000f  <+0x0003>        90              nop
0x77410010  <+0x0004>        90              nop
0x77410011  <+0x0005>        90              nop
0x77410012  <+0x0006>        90              nop
0x77410013  <+0x0007>        90              nop
0x77410014  <+0x0008>        90              nop
0x77410015  <+0x0009>        90              nop
0x77410016  <+0x000a>        90              nop
0x77410017  <+0x000b>        90              nop
0x77410018  <+0x000c>        90              nop
0x77410019  <+0x000d>        90              nop
0x7741001a  <+0x000e>        90              nop
0x7741001b  <+0x000f>        90              nop
0x7741001c  <+0x0010>        90              nop
0x7741001d  <+0x0011>        90              nop
0x7741001e  <+0x0012>        90              nop
0x7741001f  <+0x0013>        90              nop
0x77410020  <+0x0014>        90              nop
0x77410021  <+0x0015>        90              nop
0x77410022  <+0x0016>        90              nop
0x77410023  <+0x0017>        90              nop
0x77410024  <+0x0018>        90              nop
0x77410025  <+0x0019>        90              nop
0x77410026  <+0x001a>        90              nop
0x77410027  <+0x001b>        90              nop
0x77410028  <+0x001c>        90              nop
0x77410029  <+0x001d>        90              nop
0x7741002a  <+0x001e>        90              nop
0x7741002b  <+0x001f>        90              nop
0x7741002c  <+0x0020>        90              nop
0x7741002d  <+0x0021>        90              nop
0x7741002e  <+0x0022>        90              nop
0x7741002f  <+0x0023>        90              nop
0x77410030  <+0x0024>        90              nop
0x77410031  <+0x0025>        90              nop
0x77410032  <+0x0026>        90              nop
0x77410033  <+0x0027>        90              nop
0x77410034  <+0x0028>        90              nop
0x77410035  <+0x0029>        90              nop
0x77410036  <+0x002a>        90              nop
0x77410037  <+0x002b>        90              nop
0x77410038  <+0x002c>        90              nop
0x77410039  <+0x002d>        90              nop
0x7741003a  <+0x002e>        90              nop
0x7741003b  <+0x002f>        90              nop
0x7741003c  <+0x0030>        90              nop
0x7741003d  <+0x0031>        90              nop
0x7741003e  <+0x0032>        90              nop
0x7741003f  <+0x0033>        90              nop
0x77410040  <+0x0034>        8b 4c 24 04     mov    0x4(%esp),%ecx
0x77410044  <+0x0038>        f6 41 04 06     testb  $0x6,0x4(%ecx)
0x77410048  <+0x003c>        74 05           je     0x7741004f <ntdll!DbgBreakPoint+67>
0x7741004a  <+0x003e>        e8 a1 1d 01 00  call   0x77421df0 <ntdll!ZwTestAlert>
0x7741004f  <+0x0043>        b8 01 00 00 00  mov    $0x1,%eax
0x77410054  <+0x0048>        c2 10 00        ret    $0x10
0x77410057  <+0x004b>        90              nop

> Regards,
> André
> 
> [1] https://bugreports.qt.io/browse/QTCREATORBUG-20262
> [2] https://bugreports.qt.io/browse/QTBUG-67729
> 
> >
> > I've got the following function where I'm trying to copy the data out of a
> QTableView to the clipboard in a format that will allow the resulting data to
> be pasted directly into an Excel spreadsheet. Here's the function:
> > void plotContainerWidget::slotCopyTableToClipboard()
> > {
> >      // select everything in table copy it to text string with
> >      // '\t' separating columns and '\n' separating rows
> >      if(mModel == 0)
> >      {
> >          return;
> >      }
> >
> >      int rows = mModel->rowCount();
> >      int cols = mModel->columnCount();
> >
> >      QString tableString;
> >      for(int i=0; i < cols; ++i)
> >      {
> >          tableString += mModel->headerData(i, Qt::Horizontal).toString();
> >          tableString += "\t";
> >      }
> >      tableString.chop(1); // remove extraneous tab
> >      tableString += "\n";
> >
> >      for(int i=0; i < rows; ++i)
> >      {
> >          for(int j=0; j < cols; ++j)
> >          {
> >              tableString += mModel->data(mModel->index(i, j),
> Qt::DisplayRole).toString();
> >              tableString += "\t";
> >          }
> >          tableString.chop(1); // remove extraneous tab
> >          tableString += "\n";
> >      }
> >      tableString.chop(1); // remove extraneous newline
> >      qDebug() << tableString;
> >      QClipboard* clippy = QApplication::clipboard();
> >      if (!clippy)
> >      {
> >          return;
> >      }
> >      clippy->setText(tableString); // *** QT CREATOR HANGS HERE ***
> >      qDebug() << "copied table to clipboard";
> > }
> >
> > When I execute this chunk of code within the debugger, it hangs at that
> QClipboard::setText() line. I first encountered it executing my code within
> the debugger, but without any breakpoints set. During that session, Qt
> Creator hung, and I had to force quit. After re-launching QtCreator, I set a
> breakpoint in this function and stepped through my code. The parsing is fine
> up until that line, the string looks good, but then Qt Creator hangs when that
> line setText() is executed. So this issue seems to happen whether I have any
> breakpoints set or not and interestingly this code does NOT hang when I
> choose "Run" from within Qt Creator, only when I choose "Start Debugging",
> even though that should still be executing the debug build of my application,
> just not running inside the debugger.
> >
> > Qt version 5.3.2 (yes, I know this is ancient...)
> > Qt Creator 4.5.2 (at least this isn't!)
> > Windows 7 64-bit
> >
> > Any ideas?
> > Sean
> >
> >
> > This message has been scanned for malware by Forcepoint.
> www.forcepoint.com
> > _______________________________________________
> > Qt-creator mailing list
> > Qt-creator at qt-project.org
> > http://lists.qt-project.org/mailman/listinfo/qt-creator
> >
> >
> 
> 
> --
> Dipl.-Ing. (FH) André Hartmann
> Softwareentwicklung / Software Development
> 
> E-Mail: andre.hartmann at iseg-hv.de | Tel: +49 351 26996-43 | Fax: +49 351
> 26996-21
> 
> iseg Spezialelektronik GmbH - HIGH VOLTAGE. EXACTLY.
> iseg-hv.de | iseg-hv.com | download.iseg-hv.com
> 
> Bautzner Landstr. 23, 01454 Radeberg / Rossendorf, Germany
> Geschäftsführer / Managing directors: Dr. Frank Gleisberg, Dr. Joachim
> Pöthig
> Amtsgericht / Lower district court: Dresden HRB 16250
> Umsatzsteuer-Id: / VAT-ID: DE812508942
> 
> News / Information
> https://iseg-hv.com/en/products/control#isegControl2 isegControl2 -
> Unified Control Software
> https://iseg-hv.com/en/products/detail/EHS EHS FLEX - Customize and keep
> the price
> https://iseg-hv.com/en/products/detail/EHS EHS STACK - Perfect for GEM
> Detectors
> https://iseg-hv.com/files/iseg-high-voltage-power-supplies.pdf NEW!
> Product catalog 2017 / 2018 released
> https://iseg-hv.com/en/products/detail/NHR NHR - NIM HV-Supply with
> reversible polarity
> 
> Links
> https://www.linkedin.com/company/12726924 iseg on LINKEDIN | Let's stay
> connected!
> https://www.youtube.com/channel/UC5AL-ZgOqSim_1gYNnndyzQ iseg on
> YOUTUBE
> | Tutorials and more ...
> https://www.twitter.com/iseg_hv iseg on TWITTER | please follow!
> https://iseg-hv.com/files/iseg-high-voltage-power-supplies.pdf iseg
> CATALOG | download product catalog as PDF
> http://download.iseg-hv.com/ iseg DOWNLOADS | manuals, software,
> firmware and more...
> 
> Diese E-Mail enthält vertrauliche und/oder rechtlich geschützte
> Informationen. Wenn Sie nicht der richtige
> Adressat sind oder diese E-Mail irrtümlich erhalten haben, informieren
> Sie bitte sofort den Absender und
> vernichten Sie diese Mail. Das unerlaubte Kopieren sowie die unbefugte
> Weitergabe dieser Mail ist nicht
> gestattet.
> 
> This e-mail may contain confidential and/or privileged information. If
> you are not the intended recipient
> (or have received this e-mail in error) please notify the sender
> immediately and destroy this e-mail.
> Any unauthorized copying, disclosure or distribution of the material in
> this e-mail is strictly forbidden.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 2018-04-17 08_02_43-GDB Not Responding.png
Type: image/png
Size: 30531 bytes
Desc: 2018-04-17 08_02_43-GDB Not Responding.png
URL: <http://lists.qt-project.org/pipermail/qt-creator/attachments/20180417/edcf0d9f/attachment.png>


More information about the Qt-creator mailing list