jirentabu / crashrpt

Automatically exported from code.google.com/p/crashrpt
0 stars 0 forks source link

PECompact compressed exe file #39

Closed GoogleCodeExporter closed 9 years ago

GoogleCodeExporter commented 9 years ago
The Release exe file compressed with PECompact (probably other compressors
also) doesn show the line where the program crushes. Normal exe show the
line, but when I compress it with PECompact id doesnt.

I tried to run the dump file with compresed exe, and uncompresed but in
eihter cases it doesn show the error line.

Im using CrachRpt 1.2.4

How can CrachRpt and PECompact work together?

Original issue reported on code.google.com by tajemnic...@gmail.com on 26 May 2010 at 11:16

GoogleCodeExporter commented 9 years ago
You need to have the uncompressed EXE file and a PDB file generated for that 
EXE. You
also need to have the source code that you used when building the EXE. I suppose
these should be enough to read the minidump. 

Original comment by zexspect...@gmail.com on 26 May 2010 at 4:41

GoogleCodeExporter commented 9 years ago
I performed the following experiment with the standart test application 
CrashRptTest:

1. Downloaded CrashRpt v.1.2.4.
2. Compiled the solution CrashRpt in Release configuration. This generated EXE 
and
PDB files.
3. Created a copy of bin folder (named it 'Copy of bin')
4. Downloaded UPX compressor (http://upx.sourceforge.net/). Unzipped it. Copied
upx.exe to the bin folder.
5. Typed 'upx.exe -9 CrashRptTest.exe'. This compressed CrashRptTest.exe and 
redused
it size from 131072 to 44032 bytes.
6. Ran CrashRptTest.exe and pressed the 'Win32 null pointer exception' button. 
This
generated a error report. I exported the report to some folder using the 
'Export...'
button on the Error Report Details dialog. 
7. Unzipped the error report and copied crasdump.dmp to the 'Copy of bin' 
folder.
8. Double-clicked the copied crashdump.dmp file. This opened it in Visual 
Studio.
9. Eventually, I see that the crash occurred on line 668 of crashrpt.cpp:

// Access violation
int *p = 0;
*p = 0; 

So, it is the right place. Seems it works ok.

Does the same technique work for you? Was you able to resolve the issue?

Original comment by zexspect...@gmail.com on 27 May 2010 at 4:17

GoogleCodeExporter commented 9 years ago
I compressed the CrashRptTest.exe with PECompact and it worked, the dump 
pointed me
the error line. But on my application it doesnt work, meaby I didnt set some 
options
to CrashRpt on compiling?

Original comment by tajemnic...@gmail.com on 28 May 2010 at 9:41

GoogleCodeExporter commented 9 years ago
Do you have any optimizations enabled (/O compiler switch)? If so, this may be 
the
reason. Try to disable optimizations and read a minidump. 

Original comment by zexspect...@gmail.com on 28 May 2010 at 10:11

GoogleCodeExporter commented 9 years ago
It seems there is nothing to fix here. PECompact doesn't seem to affect 
minidump.

Original comment by zexspect...@gmail.com on 26 Jun 2010 at 12:23

GoogleCodeExporter commented 9 years ago
the crashrpttest works ok, but my application after compressing doesnt. Meaby 
its because of TLS?

Original comment by liko...@gmail.com on 22 Oct 2010 at 8:30

GoogleCodeExporter commented 9 years ago
Please create a new issue and describe how do you determine your application 
doesn't work? What do you expect to see and what do you see instead?

Original comment by zexspect...@gmail.com on 23 Oct 2010 at 11:32

GoogleCodeExporter commented 9 years ago
Please create a new issue and describe how do you determine your application 
doesn't work? What do you expect to see and what do you see instead?

Original comment by zexspect...@gmail.com on 23 Oct 2010 at 11:32