Bug #4012

Get segmentation fault when trying to call method from 3rd party's API

Added by Jing Li about 5 years ago. Updated almost 3 years ago.

Assignee:Masaki Suketa
ruby -v:ruby 1.9.2p0 (2010-08-18) [i386-mingw32] Backport:


I tried to call a method in an interface from 3rd party's API. The interface has been successfully found by ole_query_interface, while at next step of calling the method inside, I got a segmentation fault. And I think the parameters I passed into the method are correct.

This implementation is using HP Quality Center Open Test Architecture API.
Interface: ISupportCopyPaste
Public Method: CopyToClipBoard
Syntax (Visual Basic):
Public Function CopyToClipBoard( _
ByVal IDSFilter As String, _
Optional ByVal mode As Long = 0, _
Optional ByVal Path As String = "" _
) As String
Either comma separated list of ID numbers or a TDFilter.Text that qualifies the items to be copied.
Use when copying a folder. The path of the folder.
Return Type:
The data copied to the clipboard.

Codes Snippet:
iscp = tstsf.ole_query_interface(iid_ISupportCopyPaste)
clipboard = iscp.CopyToClipBoard(copied_id)
# or replace above one with below
# clipboard = iscp.CopyToClipBoard(copied_id, 0, "")

Error info:
-- control frame ----------
c:0004 p:---- s:0025 b:0025 l:000024 d:000024 CFUNC :method_missing
c:0003 p:0612 s:0023 b:0023 l:00118c d:001980 EVAL qc.rb:76
c:0002 p:---- s:0004 b:0004 l:000003 d:000003 FINISH
c:0001 p:0000 s:0002 b:0002 l:00118c d:00118c TOP

-- Ruby level backtrace information ----------------------------------------
qc.rb:76:in <main>'

qc.rb Magnifier - code (3.13 KB) Jing Li, 11/02/2010 12:48 AM


#1 Updated by Luis Lavena about 5 years ago


Since I don't have HP installed tools (or will be without knowing exactly from where and which one to get)

Can you inspect that copied_id is what the type of object expected?

Also, as the example you provided, can remove the 0, "" optionals just for testing?

Thank you.

#2 Updated by Jing Li about 5 years ago

Hi Luis,

Sorry for lack of information. The 'copied_id' is a Fixnum and here is 25511 for each running. Actually I've tried both the fixnum itself and to_s as the parameter, while the result is the same. And according to HP's spec, this should be alright.

As in my comments, remove the optional parameters 0, "" has the same error as with these parameters.

Thanks a lot.

#3 Updated by Jing Li about 5 years ago

In the spec of parameter, it's said:
IDSFilter: Either comma separated list of ID numbers or a TDFilter.Text that qualifies the items to be copied.

So I also tried a bit TDFilter.Text type, it doesn't work either.

copied_id = tdcon.TestSetTreeManager.NodeByPath("#{path_1}\wk30\Component").FindTestSets("BAT_2010_0808").Item(1).TSTestFactory.Filter.Text

Here the copied_id is String and its value is "[Filter]".

#4 Updated by Yui NARUSE over 4 years ago

  • Status changed from Open to Assigned
  • Assignee set to Masaki Suketa
  • Target version set to 1.9.3

#5 Updated by Masaki Suketa over 4 years ago

Sorry for being too late to reply.
I would like to know the value of iid_ISupportCopyPaste.
Could you tell me the value?

p iid_ISupportCopyPaste # I would to know the result of this line.
iscp = tstsf.ole_query_interface(iid_ISupportCopyPaste)

#6 Updated by Motohiro KOSAKI over 4 years ago

  • Target version changed from 1.9.3 to 1.9.4
  • Status changed from Assigned to Feedback

#7 Updated by Yui NARUSE almost 3 years ago

  • Target version changed from 1.9.4 to next minor

Also available in: Atom PDF