wxWidgets and string & iostream
Fibre Optic
fibre_optic at go2.pl
Tue Sep 5 04:32:05 PDT 2006
Teo Fonrouge wrote:
>
> Yes, I used to have lots of cout's to make tracelogs. Now I use the
> wxWidgets wxLog* classes, are more powerfull & portable to do program
> tracelogs.
>
> Have you tried to use a debug utility to do a trace ?.
> Is your cout iostream a valid one ? ( maybe a full or invalid device is
> causing the seg fault).
>
> By the way :), what platform & libs versions are you using ?, could be
> useful to know your current environment settings.
>
>> Regards,
>> Fibre Optic
>
> best regards
> Teo Fonrouge
platform: win32 + mingw port of GCC
wxWidgets lib: i have compiled/linked the library from sources of CVS
repository
the code is as follows:
#include <wx/wx.h>
#include <wx/regex.h>
#include <stdio.h>
#include <iostream>
#include <string>
int main(int argc, int arg[])
{
char regex[255];
wxString cookieField =
wxT("Njky=gg6435345b at APC216@172.16.1.15 at D34fD$F$F$F");
std::cout << "cookieField: " << cookieField.mb_str() << std::endl;
wxString userID;
char *p;
printf("Enter cookie RegEx and press enter: ");
fgets(regex, sizeof(regex), stdin);
//now remove \n
if ((p = strchr(regex, '\n')) != NULL);
*p = '\0';
wxRegEx cookieRegEx(wxT(regex));
if (cookieRegEx.Matches(cookieField)) {
userID = cookieRegEx.GetMatch(cookieField, 1);
printf("User ID: %s\n", userID.c_str());
}
}
and here is stack trace:
wxRegEx-Test.exe caused an Access Violation at location 7c918fea in
module ntdll.dll Writing to location 00000010.
Registers:
eax=00000000 ebx=00000000 ecx=00000000 edx=73dae7b0 esi=73dae7b0
edi=00000000
eip=7c918fea esp=0023fc1c ebp=0023fc90 iopl=0 nv up ei pl nz na
pe nc
cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000
efl=00000202
Call stack:
7C918FEA ntdll.dll:7C918FEA RtlpWaitForCriticalSection
7C90104B ntdll.dll:7C90104B RtlEnterCriticalSection
77C40E8B msvcrt.dll:77C40E8B fputc
005BB47F wxRegEx-Test.exe:005BB47F _GLOBAL__D_main wxRegEx-Test.cpp:32
...
}
...
005D4F8C wxRegEx-Test.exe:005D4F8C _GLOBAL__D_main wxRegEx-Test.cpp:32
...
}
...
005E60F2 wxRegEx-Test.exe:005E60F2 _GLOBAL__D_main wxRegEx-Test.cpp:32
...
}
...
004013BA wxRegEx-Test.exe:004013BA main wxRegEx-Test.cpp:17
...
char *p;
> printf("Enter cookie RegEx and press enter: ");
fgets(regex, sizeof(regex), stdin);
...
00401237 wxRegEx-Test.exe:00401237
00401288 wxRegEx-Test.exe:00401288
7C816FD7 kernel32.dll:7C816FD7 RegisterWaitForInputIdle
If I have overlooked something let me know.
Regards,
Fibre Optic
More information about the wx-users
mailing list