"General Protection Fault" using Lexmark E210 printer (Dolphin - wallback gpFault)

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
5 messages Options
Reply | Threaded
Open this post in threaded view
|

"General Protection Fault" using Lexmark E210 printer (Dolphin - wallback gpFault)

Theo Pronk
I've been printing happily using my old printer (Panasonic KX-P6100 in
GDI mode), but it is quite old now and not printing too well.
Therefore, I've purchased a new Lexmark E210 which works quite well in
other applications (MS Word, Excel and various other applications
including Smalltalk Express), but causes a GP fault with Dolphin.

The following code fails on the "p startDoc" line when using the E210,
but works fine on the Panasonic, can anyone help?

Note: it also works fine on a HP930C.


" ============== test a  printer ================="
f:= Font name: 'Arial' pointSize:20.

p:= PrinterCanvas choose.
p startDoc.
p startPage.
p font: f;  text: 'Hallo test printer' at: 200@200.
(OLEPicture fromFile: 'c:\my documents\data\tpro\forms\podage4w.bmp')
        drawOn: p
        at: 30@30
        extent: 100@100.
p endPage.
p endDoc.
"=================end test========================="

"====================wallback======================"
Contents of wallback variables:
exceptionRecordBytes
#[5 0 0 192 0 0 0 0 0 0 0 0 1 37 172 7 2 0 0 0 0 0 0 0 255 255 255 255
31 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 112 18 255 255
0 0 255 255 255 255 255 255 0 0 0 0 0 0 0 0 44 249 211 0]

exceptionRecord
an EXCEPTION_RECORD(ExceptionCode=3221225477 ExceptionFlags=0
ExceptionAddress=an ExternalAddress(16r7AC2501) NumberParameters=2
ExceptionInformation=
a DWORDArray(0 4294967295 65567 0 0 0 0 0 0
4294906480 4294901760 4294967295 0 0 13891884))

Copy of wallback data:
=====================start data==============================
07:37:44, Friday, 30 August 2002: 'Invalid access to memory location.
Reading 0xFFFFFFFF, IP 0x7AC2501 (C:\WINDOWS\SYSTEM\SSGS3UM.DLL)'
ProcessorScheduler>>gpFault:
[] in ProcessorScheduler>>vmi:list:no:with:
BlockClosure>>ifCurtailed:
ProcessorScheduler>>vmi:list:no:with:
GDILibrary(ExternalLibrary)>>invalidCall
GDILibrary>>startDoc:lpdi:
PrinterCanvas>>startDoc
UndefinedObject>>{unbound}doIt
CompiledExpression>>value:
SmalltalkWorkspace>>evaluateRange:ifFail:debug:
SmalltalkWorkspace>>evaluateItIfFail:debug:
SmalltalkWorkspace>>evaluateItIfFail:
SmalltalkWorkspace>>evaluateIt
Symbol>&
gt;forwardTo:
CommandDescription>>performAgainst:
[] in Command>>value
BlockClosure>>ifCurtailed:
BlockClosure>>ensure:
Command>>value
ShellView>>performCommand:
SmalltalkWorkspaceDocument(Shell)>>performCommand:
CommandQuery>>perform
DelegatingCommandPolicy(CommandPolicy)>>route:
[] in ShellView(View)>>onCommand:
BlockClosure>>ifCurtailed:
BlockClosure>>ensure:
Cursor>>showWhile:
ShellView(View)>>onCommand:
ShellView(View)>>wmCommand:wParam:lParam:
ShellView(View)>>dispatchMessage:wParam:lParam:
[] in InputState>>wndProc:message:wParam:lParam:cookie:
BlockClosure>>ifCurtailed:
ProcessorScheduler>>callback:evaluate:
InputState>>wndProc:message:wParam:lParam:cookie:
ShellView>>translateAccelerator:
ShellView>>preTranslateKeyboardInput:
ShellView(View)>>preTranslateMessage:<
br>InputState>>preTranslateMessage:
InputState>>pumpMessage:
InputState>>loopWhile:
InputState>>mainLoop
[] in InputState>>forkMain
ExceptionHandler(ExceptionHandlerAbstract)>>markAndTry
[] in ExceptionHandler(ExceptionHandlerAbstract)>>try:
BlockClosure>>ifCurtailed:
BlockClosure>>ensure:
ExceptionHandler(ExceptionHandlerAbstract)>>try:
BlockClosure>>on:do:
[] in BlockClosure>>newProcess
=====================end data/wallback=================



Thanks,
Theo Pronk
================================
[hidden email]
TPRO Consulting Pty Ltd
================================


Reply | Threaded
Open this post in threaded view
|

Re: "General Protection Fault" using Lexmark E210 printer (Dolphin - wallback gpFault)

Ian Bartholomew-17
Theo,

> The following code fails on the "p startDoc" line when using the E210,
> but works fine on the Panasonic, can anyone help?

This is just a vague possibility but I had an Epson printer that failed (I
can't remember if it gpf'd or just refused to print) if it wasn't given a
document name.  I had to add the following method and use this, with any
String, as a replacement for #startDoc.

PrinterCanvas>>startDocNamed: aString
    GDILibrary default
        startDoc: self asParameter
        lpdi: ((DOCINFO new)
            lpszDocName: aString;
            yourself)

Worth a try anyway....

Regards
    Ian


Reply | Threaded
Open this post in threaded view
|

Re: "General Protection Fault" using Lexmark E210 printer (Dolphin - wallback gpFault)

Theo Pronk
Hi Ian,

As unbelievable as it may seem the #startDocNamed: method has solved the
problem! Now I can print "no problems" to the Lexmark printer!

When vague problems like this occur it's great to be able to rely on
those individual that have taken the time to dissect and analyse
problems like this.

Thanks heaps...
Theo Pronk
=========================================



Ian Bartholomew wrote:

> Theo,
>
>
>>The following code fails on the "p startDoc" line when using the E210,
>>but works fine on the Panasonic, can anyone help?

>
> This is just a vague possibility but I had an Epson printer that failed (I
> can't remember if it gpf'd or just refused to print) if it wasn't given a
> document name.  I had to add the following method and use this, with any
> String, as a replacement for #startDoc.
>
> PrinterCanvas>>startDocNamed: aString
>     GDILibrary default
>         startDoc: self asParameter
>         lpdi: ((DOCINFO new)
>             lpszDocName: aString;
>             yourself)
>
> Worth a try anyway....
>
> Regards
>     Ian
>
>
>
>
>


Reply | Threaded
Open this post in threaded view
|

Re: "General Protection Fault" using Lexmark E210 printer (Dolphin - wallback gpFault)

Ian Bartholomew-17
Theo,

> As unbelievable as it may seem the #startDocNamed: method has solved the
> problem! Now I can print "no problems" to the Lexmark printer!

I'm glad that it solved your problem.

On further reflection though I think that (shock, horror!) it's a bug in
Dolphin. Normally the api documentation for a parameter that can, for
example, be either a pointer to a string or null to indicate a default
always tells you what the null value signifies. In this case DOCINFO doesn't
mention what happens if null is passed as #lpszDocName and, because of that,
I would assume that the documentation is saying that you *must* always pass
a String.  The fact that most printer drivers will check for null values
doesn't really matter if there are some that, legitimately, will not.

Andy/Blair. It look to me like Dolphin should implement #startDocNamed: (or
whatever) and that #startDoc should then use that, passing a default String
argument.

Regards
    Ian


Reply | Threaded
Open this post in threaded view
|

Re: "General Protection Fault" using Lexmark E210 printer (Dolphin - wallback gpFault)

Andy Bower
Ian,

> > As unbelievable as it may seem the #startDocNamed: method has solved the
> > problem! Now I can print "no problems" to the Lexmark printer!
>
> I'm glad that it solved your problem.
>
> On further reflection though I think that (shock, horror!) it's a bug in
> Dolphin. Normally the api documentation for a parameter that can, for
> example, be either a pointer to a string or null to indicate a default
> always tells you what the null value signifies. In this case DOCINFO
doesn't
> mention what happens if null is passed as #lpszDocName and, because of
that,
> I would assume that the documentation is saying that you *must* always
pass
> a String.  The fact that most printer drivers will check for null values
> doesn't really matter if there are some that, legitimately, will not.
>
> Andy/Blair. It look to me like Dolphin should implement #startDocNamed:
(or
> whatever) and that #startDoc should then use that, passing a default
String
> argument.

This has been recorded as #1045: "GP fault when printing to some printers"
and this should be addressed in the next patch release.

Best Regards,

Andy Bower
Dolphin Support
http://www.object-arts.com
---
Are you trying too hard?
http://www.object-arts.com/Relax.htm
---