I'm currently working on an application that uses DcmSCU and DcmSCP classes to retrieve DICOM files from a PACS.
Everything worked well but we have recently enabled C++11 and since then, I have got a segmentation fault whenever I add a presentation context to the DcmSCP class.
This is a small main that I have created to illustrate my problem :
Code: Select all
#include <dcmtk/config/osconfig.h>
#include <dcmtk/dcmnet/diutil.h>
#include <dcmtk/dcmdata/dcdict.h>
#include <dcmtk/dcmnet/scp.h>
#include <stdlib.h>
int main(int argc, char** argv)
{
// Load dictionary
dcmDataDict.wrlock().loadDictionary("/home/ctroesch/dicom.dic");
dcmDataDict.unlock();
// Set transfer syntaxes
OFList < OFString > transferSyntaxes;
transferSyntaxes.push_back(UID_LittleEndianExplicitTransferSyntax);
// Create SCP
DcmSCP scp;
// Trigger Segfault
scp.addPresentationContext(UID_CTImageStorage, transferSyntaxes);
return EXIT_SUCCESS;
}
Code: Select all
Program received signal SIGSEGV, Segmentation fault.
0x00007ffff74f426b in OFListBase::base_insert (this=0x6f17b0, pos=0x454b5f53545f4e45, newElem=0x6ae2e0) at /home/ctroesch/Workspace/FW4SPL/bp-vp-dev-cmake/build/dcmtk/dcmtk-prefix/src/dcmtk/ofstd/libsrc/oflist.cc:57
57 newElem->prev = pos->prev;
(gdb) bt
#0 0x00007ffff74f426b in OFListBase::base_insert (this=0x6f17b0, pos=0x454b5f53545f4e45, newElem=0x6ae2e0) at /home/ctroesch/Workspace/FW4SPL/bp-vp-dev-cmake/build/dcmtk/dcmtk-prefix/src/dcmtk/ofstd/libsrc/oflist.cc:57
#1 0x00007ffff77410e0 in OFList<DcmPresentationContextItem>::insert (this=0x6f17b0, position=..., x=...) at /home/ctroesch/Workspace/FW4SPL/bp-vp-dev-cmake/build/dcmtk/dcmtk-prefix/src/dcmtk/ofstd/include/dcmtk/ofstd/oflist.h:294
#2 0x00007ffff7740edb in OFList<DcmPresentationContextItem>::push_back (this=0x6f17b0, x=...) at /home/ctroesch/Workspace/FW4SPL/bp-vp-dev-cmake/build/dcmtk/dcmtk-prefix/src/dcmtk/ofstd/include/dcmtk/ofstd/oflist.h:393
#3 0x00007ffff774073c in DcmPresentationContextMap::add (this=0x6f16a8, key=0x7ffff77ca633 "DCMSCP_GEN_PC_KEY", abstractSyntaxUID=0x6f1420 "1.2.840.10008.5.1.4.1.1.2", transferSyntaxKey=0x7ffff77ca621 "DCMSCP_GEN_TS_KEY")
at /home/ctroesch/Workspace/FW4SPL/bp-vp-dev-cmake/build/dcmtk/dcmtk-prefix/src/dcmtk/dcmnet/libsrc/dccfpcmp.cc:107
#4 0x00007ffff773c53b in DcmAssociationConfiguration::addPresentationContext (this=0x6f1690, key=0x7ffff77ca633 "DCMSCP_GEN_PC_KEY", abstractSyntaxUID=0x6f1420 "1.2.840.10008.5.1.4.1.1.2",
transferSyntaxKey=0x7ffff77ca621 "DCMSCP_GEN_TS_KEY") at /home/ctroesch/Workspace/FW4SPL/bp-vp-dev-cmake/build/dcmtk/dcmtk-prefix/src/dcmtk/dcmnet/libsrc/dcasccfg.cc:61
#5 0x00007ffff77b9726 in DcmSCP::addPresentationContext (this=0x7fffffffd890, abstractSyntax=..., xferSyntaxes=..., role=ASC_SC_ROLE_DEFAULT, profile=...)
at /home/ctroesch/Workspace/FW4SPL/bp-vp-dev-cmake/build/dcmtk/dcmtk-prefix/src/dcmtk/dcmnet/libsrc/scp.cc:1707
#6 0x0000000000401eab in main (argc=1, argv=0x7fffffffda28) at /home/ctroesch/Workspace/FW4SPL/CTR-VRRenderExt/src/f4s-ext/Utilities/SCPTest/src/main.cpp:26
Thanks a lot.
Regards
Clement