Static blocks and synchronization
Hi,
I have a question - I have a DAO class which basically caches some master data, and also reads a property file and caches the information. To do this I have written a static block :
Class MyDAO {
private static Properties sqlProp = null;
priate Hashtable countries = null;
static {
initialize();
private void initialize() {
sqlProp = new Properties();
//add values to sqlProp
countries = new Hashtable();
//add values in countries.
I understand that a static block gets executed only once when the class gets loaded. Now my question is do we have to synchronize this initialize process, will there be any concurrency issues with the above code.
If so how could I correct this , please let me know your suggestions..
Thanks in advance..
Thank you very much for the response..You are welcome. I hope you read my comment above as "Class initialization is thoroughly synchronized", which is what I intended :-)
Similar Messages
-
public class SubClass extends SuperClass {
static {
System.out.println("Sub class being called");
SuperClass.setS("TREX");
public class SuperClass {
protected static String s;
static {
System.out.println("Super being called ");
static public setS(String t) { s= t; }
static public String getS() { return s; }
public static void main(String[] args) {
System.out.println(SubClass.getS());
The above prints
"Super being called"
null
Why is "Sub class being called " not printed? It looks like
the subclass static block never gets called.?hi
may be i did not something catch right concerning static blocks and inheritence
(jdk1.5x)
please have a look at the following example.
1. static block in subclass is only executed if the static vars are not defined final. why is this?
2. why does not any subclass has its "own" hashtable colors?
thanks
hanspeter
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
import java.util.Hashtable;
abstract class ParentStaticBlock {
static final Hashtable<Integer, String> colors = new Hashtable<Integer, String>();
static void putColor(int colNumber, String colName) {
colors.put(colNumber, colName );
static String getColorNameFor(int colNumber) {
return colors.get(colNumber);
final class Child1StaticBlock extends ParentStaticBlock {
public final static int ROT = 0x00000D;
public final static int GELB = 0x00000E;
static {
System.out.println(" hello, here static block of Child1StaticBlock...");
putColor(ROT, "ROT");
putColor(GELB, "GELB");
final class Child2StaticBlock extends ParentStaticBlock {
public /*final*/ static int GRUEN = 0x00000A;
public /*final*/ static int BLAU = 0x00000B;
static {
System.out.println(" hello, here static block of Child2StaticBlock...");
putColor(GRUEN, "GR�N");
putColor(BLAU, "BLAU");
public class TestChildStaticBlock {
* @param args
public static void main(String[] args) {
int colNo;
String colBez;
System.out.println("Static elements class Child1StaticBlock ->");
colNo = Child1StaticBlock.GELB ;
colBez = Child1StaticBlock.getColorNameFor(colNo);
System.out.println("color yellow has number >" + colNo + "< and label >" + colBez + "<");
System.out.println("");
System.out.println("Static elements class Child2StaticBlock ->");
colNo = Child2StaticBlock.BLAU ;
colBez = Child2StaticBlock.getColorNameFor(colNo);
System.out.println("color blue has number >" + colNo + "< and label >" + colBez + "<");
System.out.println("");
System.out.println("contents of hashtable(s) ->");
System.out.println("ParentStaticBlock.colors:" + ParentStaticBlock.colors);
System.out.println("Child1StaticBlock.colors:" + Child1StaticBlock.colors);
System.out.println("Child2StaticBlock.colors:" + Child2StaticBlock.colors); -
Can we have try/catch in a static block in a class?
hi All
i have a question about put a try/catch block in a static block in a class to catch exceptions that maybe thrown from using System.xxxx(). in my custom class, i have a static block to initialize some variables using System.xxx(). in case of any error/exception, i need to be able to catch it and let the caller know about it. i tried to put a try/catch block in the static block, and tried to rethrow the exception. but it is not allowed, how would i handle situation like this? thanks for your help and advise in advance.You could just swallow the exception inside try/catch
block, and instead of throwing it out, just set a
static variable to allow checking from outside
whether the initialization succeeded, or check within
the constructor / methods of this class for
successful initialization, and throw the exception
then. You could even save that exception in a static
variable for later.Ouch, ouch, you're hurting my brain. This would allow someone to ignore a (presumably) fatal error. Throw a RuntimeException as indicated. You can wrap a checked exception in an unchecked one if need be. -
Problem in static block execution
Hi all
i have a class which has a static block and a static method.For the first time i call the static method in the class its strange that its excuting a part of the static block and entering the method later and agian turning back to static block.
but for the secon time when i call the static method in that class its fine that static block is not executed..
here is the code of the class which contains static block and static method
public class LogServices
private static String propFilename="plas.properties";
private static String file="vdvd";
static
System.out.println("Inside static block");
try
System.out.println("Inside static block of Plasma Log Services ");
file=PropertyProvider.getProperty(propFilename,"Log4jprops"); // here i am calling another method in another class to get some string from properties
System.out.println("\n File is ********************************** "+file);
catch(Exception e)
System.out.println("Exception encountered the following Exception ["+e.getMessage()+"]");
System.out.println("Finished static block");
public static Logger initLog()
Logger logger=Logger.getLogger(PlasmaLogServices.class);
System.out.println("File in method is:"+file);
return logger;
and in my main program i am calling this
LogServices.initLog(); and the output i observed on the screen is
Inside static block
Inside static block of Plasma Log Services
File in method is:vdvd
File is ********************************** log.properties
Finished static block
if u look at the output after " Inside static block of Plasma Log Services" (part of static block) its enetering method where " File in method is:vdvd" is printed .
After some debugging i came to know that if i remove the line
file=PropertyProvider.getProperty(propFilename,"Log4jprops"); and replace it by file="log.properties";(mean hardcoded) then the static block executes and later that method executes.
can any one pls help me in this regard???The first time you instantiate a class
LogServices, it's static block is being
executed.
After you've instantiated the class, you call its
static method.
If you call the static method again, the
LogServices have their static block already
executed, so it won't be executed again.
I think that the execution of static block and static
method is not mixed, as you thought. I think it is
rather a logging issue. Most loggers do not guarantee
that logging-messages are output in correct order.
Regards, TomHello sir
tahnks for ur reply and i got that .the problem was in the propertyprovider class i had a static variable logger =PlasmaLogservices.initLog() ; and hence after that it was by passing to that static method and coming back again .
thanks for looking in to this -
Code::Blocks and gdb's Debug Attach to process; crash
Hello!
I've just started using Code::Blocks and very happy with it, but there is one problem: say I have a binary file with debugging symbols, then I try to attach to it using Code::Blocks (Debug>Attach to process); when I enter the PID and press "OK" button - IDE crashes.
Here is the stacktrace of codeblocks itself from gdb:
[user@host ~]$ gdb codeblocks
GNU gdb (GDB) 7.4
Copyright (C) 2012 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law. Type "show copying"
and "show warranty" for details.
This GDB was configured as "i686-pc-linux-gnu".
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>...
Reading symbols from /usr/bin/codeblocks...(no debugging symbols found)...done.
(gdb) run
Starting program: /usr/bin/codeblocks
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/libthread_db.so.1".
[New Thread 0xb1881b40 (LWP 8035)]
Initialize EditColourSet .....
[New Thread 0xae6c4b40 (LWP 8036)]
[New Thread 0xadec3b40 (LWP 8037)]
[New Thread 0xad6c2b40 (LWP 8038)]
[New Thread 0xacec1b40 (LWP 8039)]
Initialize EditColourSet: done.
Loading toolbar...
OpenFilesList: loaded
ThreadSearch: loaded
lib_finder: loaded
EnvVars: loaded
CodeStat: loaded
ClassWizard: loaded
HeaderFixup: loaded
BYOGames: loaded
CodeSnippets: loaded
cbDragScroll: loaded
SymTab: loaded
CB_Koders: loaded
HelpPlugin: loaded
Compiler: loaded
Debugger: loaded
wxSmithAui: loaded
Autosave: loaded
wxSmith: loaded
wxSmithMime: loaded
Profiler: loaded
ScriptedWizard: loaded
Valgrind: loaded
RegExTestbed: loaded
wxSmithContribItems: loaded
CppCheck: loaded
ToDoList: loaded
[New Thread 0xab9b8b40 (LWP 8040)]
CodeCompletion: loaded
FilesExtensionHandler: loaded
Cccc: loaded
Exporter: loaded
AStylePlugin: loaded
AutoVersioning: loaded
IncrementalSearch: loaded
ProjectsImporter: loaded
cbKeyBinder: loaded
MouseSap: loaded
BrowseTracker: loaded
HexEditor: loaded
copystrings: loaded
Open files list plugin activated
ThreadSearch plugin activated
Library finder plugin activated
Environment variables plugin activated
Code statistics plugin activated
Class wizard plugin activated
Header Fixup plugin activated
BYO Games plugin activated
Code snippets plugin activated
DragScroll plugin activated
Symbol Table Plugin plugin activated
Koders query plugin activated
Help plugin plugin activated
Added compiler "GNU GCC Compiler"
Added compiler "Intel C/C++ Compiler"
Added compiler "SDCC Compiler"
Added compiler "Tiny C Compiler"
Added compiler "GDC D Compiler"
Added compiler "Digital Mars D Compiler"
Added compiler "GNU ARM GCC Compiler"
Added compiler "GNU AVR GCC Compiler"
Added compiler "GNU GCC Compiler for PowerPC"
Added compiler "GNU GCC Compiler for TriCore"
Compiler plugin activated
Debugger plugin activated
wxSmith - Aui plugin activated
Autosave plugin activated
wxSmith plugin activated
wxSmith - MIME plugin plugin activated
Code profiler plugin activated
Project wizard added for 'Empty project'
Project wizard added for 'Console application'
Project wizard added for 'D application'
Project wizard added for 'FLTK project'
Project wizard added for 'GLFW project'
Project wizard added for 'GLUT project'
Project wizard added for 'GTK+ project'
Project wizard added for 'Irrlicht project'
Project wizard added for 'Lightfeather project'
Project wizard added for 'OpenGL project'
Project wizard added for 'Ogre project'
Project wizard added for 'Code::Blocks plugin'
Project wizard added for 'QT4 project'
Project wizard added for 'SDL project'
Project wizard added for 'SFML project'
Project wizard added for 'Static library'
Project wizard added for 'Shared library'
Project wizard added for 'wxWidgets project'
Build-target wizard added for 'Console'
Build-target wizard added for 'Static library'
Build-target wizard added for 'wxWidgets'
Project wizard added for 'ARM Project'
Project wizard added for 'AVR Project'
Project wizard added for 'TriCore Project'
Project wizard added for 'PowerPC Project'
File(s) wizard added for 'Empty file'
File(s) wizard added for 'C/C++ source'
File(s) wizard added for 'C/C++ header'
Scripted wizard plugin activated
Valgrind plugin activated
Regular expressions testbed plugin activated
wxSmith - Contrib Items plugin activated
CppCheck plugin activated
Todo List plugin activated
Code completion plugin activated
Files extension handler plugin activated
Cccc plugin activated
Source Exporter plugin activated
Source code formatter (AStyle) plugin activated
AutoVersioning plugin activated
IncrementalSearch plugin activated
Foreign projects importer plugin activated
Keyboard shortcuts plugin activated
MouseSap plugin activated
BrowseTracker plugin activated
HexEditor plugin activated
Copy Strings to clipboard plugin activated
Initializing plugins...
[New Thread 0xaaddcb40 (LWP 8047)]
Program received signal SIGSEGV, Segmentation fault.
0xb75237aa in wxStringBase::operator=(wxStringBase const&) () from /usr/lib/libwx_baseu-2.8.so.0
(gdb) backtrace
#0 0xb75237aa in wxStringBase::operator=(wxStringBase const&) () from /usr/lib/libwx_baseu-2.8.so.0
#1 0xabee2133 in DebuggerGDB::Debug() () from /usr/lib/codeblocks/plugins/libdebugger.so
#2 0xabed197b in DebuggerGDB::OnAttachToProcess(wxCommandEvent&) () from /usr/lib/codeblocks/plugins/libdebugger.so
#3 0xb74ce9f8 in wxAppConsole::HandleEvent(wxEvtHandler*, void (wxEvtHandler::*)(wxEvent&), wxEvent&) const () from /usr/lib/libwx_baseu-2.8.so.0
#4 0xb755e59a in wxEvtHandler::ProcessEventIfMatches(wxEventTableEntryBase const&, wxEvtHandler*, wxEvent&) () from /usr/lib/libwx_baseu-2.8.so.0
#5 0xb755e71b in wxEventHashTable::HandleEvent(wxEvent&, wxEvtHandler*) () from /usr/lib/libwx_baseu-2.8.so.0
#6 0xb755ead1 in wxEvtHandler::ProcessEvent(wxEvent&) () from /usr/lib/libwx_baseu-2.8.so.0
#7 0xb755ea61 in wxEvtHandler::ProcessEvent(wxEvent&) () from /usr/lib/libwx_baseu-2.8.so.0
#8 0xb755ea61 in wxEvtHandler::ProcessEvent(wxEvent&) () from /usr/lib/libwx_baseu-2.8.so.0
#9 0xb755ea61 in wxEvtHandler::ProcessEvent(wxEvent&) () from /usr/lib/libwx_baseu-2.8.so.0
#10 0xb755ea61 in wxEvtHandler::ProcessEvent(wxEvent&) () from /usr/lib/libwx_baseu-2.8.so.0
#11 0xb755ea61 in wxEvtHandler::ProcessEvent(wxEvent&) () from /usr/lib/libwx_baseu-2.8.so.0
#12 0xb755ea61 in wxEvtHandler::ProcessEvent(wxEvent&) () from /usr/lib/libwx_baseu-2.8.so.0
#13 0xb755ea61 in wxEvtHandler::ProcessEvent(wxEvent&) () from /usr/lib/libwx_baseu-2.8.so.0
#14 0xb755ea61 in wxEvtHandler::ProcessEvent(wxEvent&) () from /usr/lib/libwx_baseu-2.8.so.0
#15 0xb755ea61 in wxEvtHandler::ProcessEvent(wxEvent&) () from /usr/lib/libwx_baseu-2.8.so.0
#16 0xb755ea61 in wxEvtHandler::ProcessEvent(wxEvent&) () from /usr/lib/libwx_baseu-2.8.so.0
#17 0xb755ea61 in wxEvtHandler::ProcessEvent(wxEvent&) () from /usr/lib/libwx_baseu-2.8.so.0
#18 0xb755ea61 in wxEvtHandler::ProcessEvent(wxEvent&) () from /usr/lib/libwx_baseu-2.8.so.0
#19 0xb755ea61 in wxEvtHandler::ProcessEvent(wxEvent&) () from /usr/lib/libwx_baseu-2.8.so.0
#20 0xb755ea61 in wxEvtHandler::ProcessEvent(wxEvent&) () from /usr/lib/libwx_baseu-2.8.so.0
#21 0xb755ea61 in wxEvtHandler::ProcessEvent(wxEvent&) () from /usr/lib/libwx_baseu-2.8.so.0
#22 0xb755ea61 in wxEvtHandler::ProcessEvent(wxEvent&) () from /usr/lib/libwx_baseu-2.8.so.0
#23 0xb755ea61 in wxEvtHandler::ProcessEvent(wxEvent&) () from /usr/lib/libwx_baseu-2.8.so.0
#24 0xb755ea61 in wxEvtHandler::ProcessEvent(wxEvent&) () from /usr/lib/libwx_baseu-2.8.so.0
#25 0xb755ea61 in wxEvtHandler::ProcessEvent(wxEvent&) () from /usr/lib/libwx_baseu-2.8.so.0
#26 0xb755ea61 in wxEvtHandler::ProcessEvent(wxEvent&) () from /usr/lib/libwx_baseu-2.8.so.0
#27 0xb755ea61 in wxEvtHandler::ProcessEvent(wxEvent&) () from /usr/lib/libwx_baseu-2.8.so.0
#28 0xb755ea61 in wxEvtHandler::ProcessEvent(wxEvent&) () from /usr/lib/libwx_baseu-2.8.so.0
#29 0xb755ea61 in wxEvtHandler::ProcessEvent(wxEvent&) () from /usr/lib/libwx_baseu-2.8.so.0
#30 0xb755ea61 in wxEvtHandler::ProcessEvent(wxEvent&) () from /usr/lib/libwx_baseu-2.8.so.0
#31 0xb755ea61 in wxEvtHandler::ProcessEvent(wxEvent&) () from /usr/lib/libwx_baseu-2.8.so.0
#32 0xb755ea61 in wxEvtHandler::ProcessEvent(wxEvent&) () from /usr/lib/libwx_baseu-2.8.so.0
#33 0xb755ea61 in wxEvtHandler::ProcessEvent(wxEvent&) () from /usr/lib/libwx_baseu-2.8.so.0
#34 0xb755ea61 in wxEvtHandler::ProcessEvent(wxEvent&) () from /usr/lib/libwx_baseu-2.8.so.0
#35 0xb778cfb7 in ?? () from /usr/lib/libwx_gtk2u_core-2.8.so.0
#36 0xb6a2016c in g_cclosure_marshal_VOID__VOID () from /usr/lib/libgobject-2.0.so.0
#37 0xb6a1ec5c in g_closure_invoke () from /usr/lib/libgobject-2.0.so.0
#38 0xb6a31a10 in ?? () from /usr/lib/libgobject-2.0.so.0
#39 0xb6a3a7a7 in g_signal_emit_valist () from /usr/lib/libgobject-2.0.so.0
#40 0xb6a3a913 in g_signal_emit () from /usr/lib/libgobject-2.0.so.0
#41 0xb6d7d6c5 in gtk_widget_activate () from /usr/lib/libgtk-x11-2.0.so.0
#42 0xb6c5b3c7 in gtk_menu_shell_activate_item () from /usr/lib/libgtk-x11-2.0.so.0
#43 0xb6c5b7d1 in ?? () from /usr/lib/libgtk-x11-2.0.so.0
#44 0xb6c4fb2d in ?? () from /usr/lib/libgtk-x11-2.0.so.0
#45 0xb6c46762 in ?? () from /usr/lib/libgtk-x11-2.0.so.0
#46 0xb6a1d6ad in ?? () from /usr/lib/libgobject-2.0.so.0
#47 0xb6a1ec5c in g_closure_invoke () from /usr/lib/libgobject-2.0.so.0
#48 0xb6a31858 in ?? () from /usr/lib/libgobject-2.0.so.0
#49 0xb6a3a5b9 in g_signal_emit_valist () from /usr/lib/libgobject-2.0.so.0
#50 0xb6a3a913 in g_signal_emit () from /usr/lib/libgobject-2.0.so.0
#51 0xb6d7e743 in ?? () from /usr/lib/libgtk-x11-2.0.so.0
#52 0xb6c4492e in gtk_propagate_event () from /usr/lib/libgtk-x11-2.0.so.0
#53 0xb6c44cc0 in gtk_main_do_event () from /usr/lib/libgtk-x11-2.0.so.0
#54 0xb6ab9078 in ?? () from /usr/lib/libgdk-x11-2.0.so.0
#55 0xb693907f in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0
#56 0xb69397b0 in ?? () from /usr/lib/libglib-2.0.so.0
#57 0xb6939dbb in g_main_loop_run () from /usr/lib/libglib-2.0.so.0
#58 0xb6c43a5f in gtk_main () from /usr/lib/libgtk-x11-2.0.so.0
#59 0xb772ad8a in wxEventLoop::Run() () from /usr/lib/libwx_gtk2u_core-2.8.so.0
#60 0xb77a6c1f in wxAppBase::MainLoop() () from /usr/lib/libwx_gtk2u_core-2.8.so.0
#61 0xb77a64af in wxAppBase::OnRun() () from /usr/lib/libwx_gtk2u_core-2.8.so.0
#62 0x08074566 in ?? ()
#63 0xb7504ac6 in wxEntry(int&, wchar_t**) () from /usr/lib/libwx_baseu-2.8.so.0
#64 0xb7504b66 in wxEntry(int&, char**) () from /usr/lib/libwx_baseu-2.8.so.0
#65 0x0806c597 in ?? ()
#66 0xb71db3d5 in __libc_start_main () from /lib/libc.so.6
#67 0x08073d3d in ?? ()
(gdb)
Here is the XML file (debug report) that CodeBlocks gave to me after crash:
<?xml version="1.0" encoding="utf-8"?>
<report version="1.0" kind="exception">
<system description="Linux 3.3.2-1-ARCH i686"/>
<modules>
<module path="/usr/bin/codeblocks" address="08048000" size="0008f000"/>
<module path="/usr/bin/codeblocks" address="080dc000" size="00003000"/>
<module path="[heap]" address="087ef000" size="0138e000"/>
<module path="/usr/share/fonts/TTF/DejaVuSansMono-Bold.ttf" address="aa53f000" size="0004d000"/>
<module path="/usr/lib/codeblocks/plugins/libHexEditor.so" address="aa5f7000" size="00001000"/>
<module path="/usr/lib/codeblocks/plugins/libHexEditor.so" address="aa5fb000" size="00001000"/>
<module path="/usr/lib/codeblocks/plugins/libBrowseTracker.so" address="aa631000" size="00002000"/>
<module path="/usr/lib/codeblocks/plugins/libMouseSap.so" address="aa634000" size="0000a000"/>
<module path="/usr/lib/codeblocks/plugins/libMouseSap.so" address="aa63f000" size="00001000"/>
<module path="/usr/lib/codeblocks/plugins/libkeybinder.so" address="aa676000" size="00002000"/>
<module path="/usr/lib/codeblocks/plugins/libprojectsimporter.so" address="aa679000" size="0002a000"/>
<module path="/usr/lib/codeblocks/plugins/libprojectsimporter.so" address="aa6a4000" size="00001000"/>
<module path="/usr/lib/codeblocks/plugins/libAutoVersioning.so" address="aa6de000" size="00002000"/>
<module path="/usr/lib/codeblocks/plugins/libastyle.so" address="aa6e1000" size="0003c000"/>
<module path="/usr/lib/codeblocks/plugins/libastyle.so" address="aa71e000" size="00001000"/>
<module path="/usr/lib/codeblocks/plugins/libexporter.so" address="aa7df000" size="00003000"/>
<module path="/usr/lib/codeblocks/plugins/libdefaultmimehandler.so" address="aa7e8000" size="00015000"/>
<module path="/usr/lib/codeblocks/plugins/libdefaultmimehandler.so" address="aa7ff000" size="00001000"/>
<module path="/usr/lib/codeblocks/plugins/libIncrementalSearch.so" address="aa902000" size="00013000"/>
<module path="/usr/lib/codeblocks/plugins/libIncrementalSearch.so" address="aa916000" size="00001000"/>
<module path="/usr/lib/codeblocks/plugins/libcodecompletion.so" address="ab118000" size="000a7000"/>
<module path="/usr/lib/codeblocks/plugins/libcodecompletion.so" address="ab1c2000" size="00001000"/>
<module path="/usr/lib/codeblocks/plugins/libtodo.so" address="ab1c4000" size="00023000"/>
<module path="/usr/lib/codeblocks/plugins/libtodo.so" address="ab1e8000" size="00002000"/>
<module path="/usr/lib/codeblocks/plugins/libCppCheck.so" address="ab1eb000" size="0000c000"/>
<module path="/usr/lib/codeblocks/plugins/libCppCheck.so" address="ab1f8000" size="00001000"/>
<module path="/usr/lib/wxSmithContribItems/libwxchartctrl.so.0.0.1" address="ab220000" size="00001000" version="0.0.1"/>
<module path="/usr/lib/wxSmithContribItems/libwxchartctrl.so.0.0.1" address="ab223000" size="00001000" version="0.0.1"/>
<module path="/usr/lib/codeblocks/plugins/libwxsmithcontribitems.so" address="ab24b000" size="00001000"/>
<module path="/usr/lib/codeblocks/plugins/libRegExTestbed.so" address="ab24e000" size="0000d000"/>
<module path="/usr/lib/codeblocks/plugins/libRegExTestbed.so" address="ab25c000" size="00001000"/>
<module path="/usr/lib/codeblocks/plugins/libscriptedwizard.so" address="ab2a9000" size="00004000"/>
<module path="/usr/lib/codeblocks/plugins/libProfiler.so" address="ab2ae000" size="0001a000"/>
<module path="/usr/lib/codeblocks/plugins/libProfiler.so" address="ab2c9000" size="00001000"/>
<module path="/usr/lib/libwxsmithlib.so.0.0.1" address="ab554000" size="00015000" version="0.0.1"/>
<module path="/usr/lib/codeblocks/plugins/libValgrind.so" address="ab581000" size="0000d000"/>
<module path="/usr/lib/codeblocks/plugins/libValgrind.so" address="ab58f000" size="00001000"/>
<module path="/usr/lib/codeblocks/plugins/libautosave.so" address="ab59d000" size="00001000"/>
<module path="/usr/lib/codeblocks/plugins/libwxSmithAui.so" address="ab59f000" size="00049000"/>
<module path="/usr/lib/codeblocks/plugins/libwxSmithAui.so" address="ab5e9000" size="00003000"/>
<module path="/usr/lib/codeblocks/plugins/libdebugger.so" address="ab5ef000" size="00097000"/>
<module path="/usr/lib/codeblocks/plugins/libdebugger.so" address="ab68c000" size="00001000"/>
<module path="/usr/lib/codeblocks/plugins/libcompiler.so" address="ab68e000" size="0011c000"/>
<module path="/usr/lib/codeblocks/plugins/libcompiler.so" address="ab7ad000" size="00001000"/>
<module path="/usr/lib/codeblocks/plugins/libhelp_plugin.so" address="ab7b0000" size="0010d000"/>
<module path="/usr/lib/codeblocks/plugins/libhelp_plugin.so" address="ab8be000" size="00004000"/>
<module path="/usr/lib/codeblocks/plugins/libcb_koders.so" address="ab8c8000" size="00012000"/>
<module path="/usr/lib/codeblocks/plugins/libcb_koders.so" address="ab8db000" size="00001000"/>
<module path="/usr/lib/codeblocks/plugins/libSymTab.so" address="ab8f6000" size="00001000"/>
<module path="/usr/lib/codeblocks/plugins/libdragscroll.so" address="ab8f8000" size="0001c000"/>
<module path="/usr/lib/codeblocks/plugins/libdragscroll.so" address="ab916000" size="00001000"/>
<module path="/usr/lib/codeblocks/plugins/libcodesnippets.so" address="aba1a000" size="00007000"/>
<module path="/usr/lib/codeblocks/plugins/libbyogames.so" address="aba25000" size="00027000"/>
<module path="/usr/lib/codeblocks/plugins/libbyogames.so" address="aba4f000" size="00001000"/>
<module path="/usr/lib/codeblocks/plugins/libheaderfixup.so" address="abb0b000" size="00002000"/>
<module path="/usr/lib/codeblocks/plugins/libclasswizard.so" address="abb0e000" size="00018000"/>
<module path="/usr/lib/codeblocks/plugins/libclasswizard.so" address="abb27000" size="00001000"/>
<module path="/usr/lib/codeblocks/plugins/libcodestat.so" address="abb3c000" size="00001000"/>
<module path="/usr/lib/wxSmithContribItems/libwxflatnotebook.so.0.0.1" address="abb3e000" size="0003e000" version="0.0.1"/>
<module path="/usr/lib/wxSmithContribItems/libwxflatnotebook.so.0.0.1" address="abb7e000" size="00002000" version="0.0.1"/>
<module path="/usr/lib/codeblocks/plugins/liblib_finder.so" address="abbf0000" size="00003000"/>
<module path="/usr/lib/codeblocks/plugins/libThreadSearch.so" address="abbf4000" size="0004a000"/>
<module path="/usr/lib/codeblocks/plugins/libThreadSearch.so" address="abc41000" size="00001000"/>
<module path="/usr/lib/codeblocks/plugins/libopenfileslist.so" address="abc43000" size="00009000"/>
<module path="/usr/lib/codeblocks/plugins/libopenfileslist.so" address="abc4d000" size="00001000"/>
<module path="/usr/share/fonts/TTF/DejaVuSansMono.ttf" address="abcae000" size="00052000"/>
<module path="/usr/lib/codeblocks/plugins/libcopystrings.so" address="abe00000" size="00007000"/>
<module path="/usr/lib/codeblocks/plugins/libcopystrings.so" address="abe08000" size="00001000"/>
<module path="/usr/lib/codeblocks/plugins/libenvvars.so" address="abe23000" size="00001000"/>
<module path="/usr/lib/wxSmithContribItems/libwxcustombutton.so.0.0.1" address="abe25000" size="0000a000" version="0.0.1"/>
<module path="/usr/lib/wxSmithContribItems/libwxcustombutton.so.0.0.1" address="abe30000" size="00001000" version="0.0.1"/>
<module path="/usr/share/mime/mime.cache" address="ade35000" size="0001f000"/>
<module path="/usr/lib/libgvfscommon.so.0.0.0" address="ade6a000" size="00001000" version="0.0.0"/>
<module path="/usr/lib/codeblocks/plugins/libCccc.so" address="ade6c000" size="00007000"/>
<module path="/usr/lib/codeblocks/plugins/libCccc.so" address="ade74000" size="00001000"/>
<module path="/usr/share/mime/mime.cache" address="ade76000" size="0001f000"/>
<module path="/usr/lib/gio/modules/libgvfsdbus.so" address="adebf000" size="00001000"/>
<module path="/usr/local/share/icons/hicolor/icon-theme.cache" address="adec1000" size="00091000"/>
<module path="/usr/share/icons/hicolor/icon-theme.cache" address="af2a9000" size="01357000"/>
<module path="/usr/lib/codeblocks/plugins/libwxsmith.so" address="b0701000" size="00002000"/>
<module path="/usr/lib/codeblocks/plugins/libwxsmith.so" address="b0704000" size="00001000"/>
<module path="/usr/share/fonts/TTF/DejaVuSans.ttf" address="b0721000" size="000b0000"/>
<module path="/usr/share/locale/ru/LC_MESSAGES/gdk-pixbuf.mo" address="b07d4000" size="00008000"/>
<module path="/dev/shm/pulse-shm-3776743730" address="b0fdd000" size="04001000"/>
<module path="/lib/libnsl-2.15.so" address="b4ff3000" size="00001000" version="2.15"/>
<module path="/usr/lib/libvorbisenc.so.2.0.9" address="b4ff7000" size="00166000" version="2.0.9"/>
<module path="/usr/lib/libvorbisenc.so.2.0.9" address="b516e000" size="00001000" version="2.0.9"/>
<module path="/usr/lib/libFLAC.so.8.2.0" address="b51be000" size="00001000" version="8.2.0"/>
<module path="/usr/lib/libasyncns.so.0.3.1" address="b51c4000" size="00001000" version="0.3.1"/>
<module path="/usr/lib/libsndfile.so.1.0.25" address="b51c6000" size="0006c000" version="1.0.25"/>
<module path="/usr/lib/libsndfile.so.1.0.25" address="b5233000" size="00001000" version="1.0.25"/>
<module path="/usr/lib/libdbus-1.so.3.5.9" address="b5238000" size="00048000" version="3.5.9"/>
<module path="/usr/lib/libdbus-1.so.3.5.9" address="b5281000" size="00001000" version="3.5.9"/>
<module path="/usr/lib/libpulsecommon-1.1.so" address="b52e7000" size="00001000" version="1.1"/>
<module path="/usr/lib/libpulse.so.0.13.5" address="b52e9000" size="0004c000" version="0.13.5"/>
<module path="/usr/lib/libpulse.so.0.13.5" address="b5336000" size="00001000" version="0.13.5"/>
<module path="/usr/lib/gdk-pixbuf-2.0/2.10.0/loaders/libpixbufloader-xpm.so" address="b533f000" size="00001000" version="xpm"/>
<module path="/usr/lib/libudev.so.0.13.1" address="b5341000" size="0000e000" version="0.13.1"/>
<module path="/usr/lib/libudev.so.0.13.1" address="b5350000" size="00001000" version="0.13.1"/>
<module path="/usr/lib/libcanberra-0.28/libcanberra-pulse.so" address="b5360000" size="00006000" version="pulse"/>
<module path="/usr/lib/libcanberra-0.28/libcanberra-pulse.so" address="b5367000" size="00001000" version="pulse"/>
<module path="/var/cache/fontconfig/f6b893a7224233d96cb72fd88691c0b4-le32d4.cache-3" address="b540d000" size="0002a000"/>
<module path="/var/cache/fontconfig/df311e82a1a24c41a75c2c930223552e-le32d4.cache-3" address="b5478000" size="00041000"/>
<module path="/usr/lib/gtk-2.0/2.10.0/engines/libclearlooks.so" address="b5519000" size="0002f000" version="2.0/2.10.0/engines/libclearlooks"/>
<module path="/usr/lib/gtk-2.0/2.10.0/engines/libclearlooks.so" address="b5549000" size="00001000" version="2.0/2.10.0/engines/libclearlooks"/>
<module path="/usr/lib/libltdl.so.7.3.0" address="b5553000" size="00001000" version="7.3.0"/>
<module path="/usr/lib/libtdb.so.1.2.9" address="b5555000" size="00011000" version="1.2.9"/>
<module path="/usr/lib/libtdb.so.1.2.9" address="b5567000" size="00001000" version="1.2.9"/>
<module path="/usr/lib/libogg.so.0.8.0" address="b556e000" size="00001000" version="0.8.0"/>
<module path="/usr/lib/libvorbis.so.0.4.6" address="b5599000" size="00001000" version="0.4.6"/>
<module path="/usr/lib/libvorbisfile.so.3.3.5" address="b559b000" size="00008000" version="3.3.5"/>
<module path="/usr/lib/libvorbisfile.so.3.3.5" address="b55a4000" size="00001000" version="3.3.5"/>
<module path="/usr/lib/libcanberra.so.0.2.5" address="b55b5000" size="00001000" version="0.2.5"/>
<module path="/usr/lib/libcanberra-gtk.so.0.1.8" address="b55b7000" size="00004000" version="0.1.8"/>
<module path="/usr/lib/libcanberra-gtk.so.0.1.8" address="b55bc000" size="00001000" version="0.1.8"/>
<module path="/lib/libnss_files-2.15.so" address="b55f3000" size="0000b000" version="2.15"/>
<module path="/lib/libnss_files-2.15.so" address="b55ff000" size="00001000" version="2.15"/>
<module path="/usr/lib/libjson.so.0.0.1" address="b5603000" size="00007000" version="0.0.1"/>
<module path="/usr/lib/libjson.so.0.0.1" address="b560b000" size="00001000" version="0.0.1"/>
<module path="/var/cache/fontconfig/a98d8961fa319a64d3cfd8640c79e62d-le32d4.cache-3" address="b561c000" size="00007000"/>
<module path="/usr/share/locale/ru/LC_MESSAGES/libc.mo" address="b5629000" size="0002e000"/>
<module path="/usr/lib/locale/locale-archive" address="b5788000" size="00200000"/>
<module path="/lib/libbz2.so.1.0.6" address="b598e000" size="0000f000" version="1.0.6"/>
<module path="/lib/libresolv-2.15.so" address="b599e000" size="00013000" version="2.15"/>
<module path="/lib/libresolv-2.15.so" address="b59b2000" size="00001000" version="2.15"/>
<module path="/usr/lib/libpixman-1.so.0.24.4" address="b59b5000" size="00093000" version="0.24.4"/>
<module path="/usr/lib/libpixman-1.so.0.24.4" address="b5a4c000" size="00001000" version="0.24.4"/>
<module path="/usr/lib/libfreetype.so.6.8.1" address="b5ae4000" size="00004000" version="6.8.1"/>
<module path="/usr/lib/libXdmcp.so.6.0.0" address="b5ae9000" size="00005000" version="6.0.0"/>
<module path="/usr/lib/libXdmcp.so.6.0.0" address="b5aef000" size="00001000" version="6.0.0"/>
<module path="/usr/lib/libXau.so.6.0.0" address="b5af1000" size="00002000" version="6.0.0"/>
<module path="/usr/lib/libXau.so.6.0.0" address="b5af4000" size="00001000" version="6.0.0"/>
<module path="/usr/lib/liblzma.so.5.0.3" address="b5b1a000" size="00001000" version="5.0.3"/>
<module path="/usr/lib/libuuid.so.1.3.0" address="b5b1c000" size="00004000" version="1.3.0"/>
<module path="/usr/lib/libuuid.so.1.3.0" address="b5b21000" size="00001000" version="1.3.0"/>
<module path="/usr/lib/libICE.so.6.3.0" address="b5b38000" size="00001000" version="6.3.0"/>
<module path="/usr/lib/libffi.so.5.0.10" address="b5b3c000" size="00005000" version="5.0.10"/>
<module path="/usr/lib/libffi.so.5.0.10" address="b5b42000" size="00001000" version="5.0.10"/>
<module path="/lib/librt-2.15.so" address="b5b44000" size="00007000" version="2.15"/>
<module path="/lib/librt-2.15.so" address="b5b4c000" size="00001000" version="2.15"/>
<module path="/usr/lib/libpcre.so.1.0.0" address="b5ba7000" size="00001000" version="1.0.0"/>
<module path="/usr/lib/libpcre.so.1.0.0" address="b5ba9000" size="00001000" version="1.0.0"/>
<module path="/usr/lib/libXdamage.so.1.1.0" address="b5bac000" size="00001000" version="1.1.0"/>
<module path="/usr/lib/libXcomposite.so.1.0.0" address="b5bae000" size="00002000" version="1.0.0"/>
<module path="/usr/lib/libXcomposite.so.1.0.0" address="b5bb1000" size="00001000" version="1.0.0"/>
<module path="/usr/lib/libXcursor.so.1.0.2" address="b5bbb000" size="00001000" version="1.0.2"/>
<module path="/usr/lib/libXrandr.so.2.2.0" address="b5bbe000" size="00007000" version="2.2.0"/>
<module path="/usr/lib/libXrandr.so.2.2.0" address="b5bc6000" size="00001000" version="2.2.0"/>
<module path="/usr/lib/libXi.so.6.1.0" address="b5bd5000" size="00001000" version="6.1.0"/>
<module path="/usr/lib/libXrender.so.1.3.0" address="b5bd7000" size="00009000" version="1.3.0"/>
<module path="/usr/lib/libXrender.so.1.3.0" address="b5be1000" size="00001000" version="1.3.0"/>
<module path="/usr/lib/libXext.so.6.4.0" address="b5bf3000" size="00001000" version="6.4.0"/>
<module path="/usr/lib/libgmodule-2.0.so.0.3000.2" address="b5bf5000" size="00003000" version="0.3000.2"/>
<module path="/usr/lib/libgmodule-2.0.so.0.3000.2" address="b5bf9000" size="00001000" version="0.3000.2"/>
<module path="/usr/lib/libfontconfig.so.1.4.4" address="b5bfb000" size="00033000" version="1.4.4"/>
<module path="/usr/lib/libfontconfig.so.1.4.4" address="b5c2f000" size="00001000" version="1.4.4"/>
<module path="/usr/lib/libpangoft2-1.0.so.0.2904.0" address="b5c5c000" size="00001000" version="0.2904.0"/>
<module path="/usr/lib/libgio-2.0.so.0.3000.2" address="b5c5e000" size="00140000" version="0.3000.2"/>
<module path="/usr/lib/libgio-2.0.so.0.3000.2" address="b5da0000" size="00001000" version="0.3000.2"/>
<module path="/usr/lib/libcairo.so.2.11000.2" address="b5da2000" size="000b4000" version="2.11000.2"/>
<module path="/usr/lib/libcairo.so.2.11000.2" address="b5e57000" size="00001000" version="2.11000.2"/>
<module path="/usr/lib/libatk-1.0.so.0.20209.1" address="b5e5a000" size="0001e000" version="0.20209.1"/>
<module path="/usr/lib/libatk-1.0.so.0.20209.1" address="b5e7a000" size="00001000" version="0.20209.1"/>
<module path="/usr/lib/libXfixes.so.3.1.0" address="b5e7c000" size="00004000" version="3.1.0"/>
<module path="/usr/lib/libXfixes.so.3.1.0" address="b5e81000" size="00001000" version="3.1.0"/>
<module path="/usr/lib/libpangocairo-1.0.so.0.2904.0" address="b5e8d000" size="00001000" version="0.2904.0"/>
<module path="/usr/lib/libxcb.so.1.1.0" address="b5e8f000" size="00020000" version="1.1.0"/>
<module path="/usr/lib/libxcb.so.1.1.0" address="b5eb0000" size="00001000" version="1.1.0"/>
<module path="/usr/lib/libexpat.so.1.6.0" address="b5ed7000" size="00001000" version="1.6.0"/>
<module path="/usr/lib/libexpat.so.1.6.0" address="b5eda000" size="00001000" version="1.6.0"/>
<module path="/usr/lib/libz.so.1.2.6" address="b5ef0000" size="00001000" version="1.2.6"/>
<module path="/usr/lib/libtiff.so.5.0.6" address="b5ef3000" size="0006f000" version="5.0.6"/>
<module path="/usr/lib/libtiff.so.5.0.6" address="b5f63000" size="00002000" version="5.0.6"/>
<module path="/usr/lib/libjpeg.so.8.0.2" address="b5f66000" size="00045000" version="8.0.2"/>
<module path="/usr/lib/libjpeg.so.8.0.2" address="b5fac000" size="00001000" version="8.0.2"/>
<module path="/usr/lib/libpng15.so.15.10.0" address="b5fbd000" size="0002e000" version="15.10.0"/>
<module path="/usr/lib/libpng15.so.15.10.0" address="b5fec000" size="00001000" version="15.10.0"/>
<module path="/usr/lib/libSM.so.6.0.1" address="b5ff4000" size="00001000" version="6.0.1"/>
<module path="/usr/lib/libXxf86vm.so.1.0.0" address="b5ff6000" size="00004000" version="1.0.0"/>
<module path="/usr/lib/libXxf86vm.so.1.0.0" address="b5ffb000" size="00001000" version="1.0.0"/>
<module path="/usr/lib/libXinerama.so.1.0.0" address="b5ffe000" size="00001000" version="1.0.0"/>
<module path="/usr/lib/libgthread-2.0.so.0.3000.2" address="b6001000" size="00004000" version="0.3000.2"/>
<module path="/usr/lib/libgthread-2.0.so.0.3000.2" address="b6006000" size="00001000" version="0.3000.2"/>
<module path="/usr/lib/libpango-1.0.so.0.2904.0" address="b604f000" size="00001000" version="0.2904.0"/>
<module path="/usr/lib/libglib-2.0.so.0.3000.2" address="b6051000" size="000f6000" version="0.3000.2"/>
<module path="/usr/lib/libglib-2.0.so.0.3000.2" address="b6148000" size="00001000" version="0.3000.2"/>
<module path="/usr/lib/libgdk_pixbuf-2.0.so.0.2400.1" address="b616b000" size="00001000" version="0.2400.1"/>
<module path="/usr/lib/libgobject-2.0.so.0.3000.2" address="b616d000" size="0004c000" version="0.3000.2"/>
<module path="/usr/lib/libgobject-2.0.so.0.3000.2" address="b61ba000" size="00001000" version="0.3000.2"/>
<module path="/usr/lib/libgdk-x11-2.0.so.0.2400.10" address="b61bc000" size="000ab000" version="0.2400.10"/>
<module path="/usr/lib/libgdk-x11-2.0.so.0.2400.10" address="b6269000" size="00001000" version="0.2400.10"/>
<module path="/usr/lib/libgtk-x11-2.0.so.0.2400.10" address="b66be000" size="00001000" version="0.2400.10"/>
<module path="/usr/lib/libgtk-x11-2.0.so.0.2400.10" address="b66c3000" size="00002000" version="0.2400.10"/>
<module path="/lib/libm-2.15.so" address="b66c7000" size="0002a000" version="2.15"/>
<module path="/lib/libm-2.15.so" address="b66f2000" size="00001000" version="2.15"/>
<module path="/lib/libdl-2.15.so" address="b66f6000" size="00001000" version="2.15"/>
<module path="/usr/lib/libX11.so.6.3.0" address="b66f8000" size="00132000" version="6.3.0"/>
<module path="/usr/lib/libX11.so.6.3.0" address="b682b000" size="00001000" version="6.3.0"/>
<module path="/usr/lib/libwx_baseu_xml-2.8.so.0.8.0" address="b682f000" size="00008000" version="0.8.0"/>
<module path="/usr/lib/libwx_baseu_xml-2.8.so.0.8.0" address="b6838000" size="00001000" version="0.8.0"/>
<module path="/usr/lib/libwx_gtk2u_richtext-2.8.so.0.8.0" address="b683a000" size="000da000" version="0.8.0"/>
<module path="/usr/lib/libwx_gtk2u_richtext-2.8.so.0.8.0" address="b691a000" size="00001000" version="0.8.0"/>
<module path="/lib/libc-2.15.so" address="b691d000" size="0019b000" version="2.15"/>
<module path="/lib/libc-2.15.so" address="b6ab9000" size="00002000" version="2.15"/>
<module path="/usr/lib/libgcc_s.so.1" address="b6abf000" size="0001c000" version="1"/>
<module path="/usr/lib/libstdc++.so.6.0.17" address="b6adc000" size="000dc000" version="6.0.17"/>
<module path="/usr/lib/libstdc++.so.6.0.17" address="b6bbc000" size="00001000" version="6.0.17"/>
<module path="/lib/libpthread-2.15.so" address="b6bc4000" size="00017000" version="2.15"/>
<module path="/lib/libpthread-2.15.so" address="b6bdc000" size="00001000" version="2.15"/>
<module path="/usr/lib/libwx_baseu-2.8.so.0.8.0" address="b6be0000" size="00136000" version="0.8.0"/>
<module path="/usr/lib/libwx_baseu-2.8.so.0.8.0" address="b6d17000" size="00004000" version="0.8.0"/>
<module path="/usr/lib/libwx_baseu_net-2.8.so.0.8.0" address="b6d26000" size="00029000" version="0.8.0"/>
<module path="/usr/lib/libwx_baseu_net-2.8.so.0.8.0" address="b6d50000" size="00001000" version="0.8.0"/>
<module path="/usr/lib/libwx_gtk2u_core-2.8.so.0.8.0" address="b6d52000" size="002f7000" version="0.8.0"/>
<module path="/usr/lib/libwx_gtk2u_core-2.8.so.0.8.0" address="b704a000" size="00026000" version="0.8.0"/>
<module path="/usr/lib/libwx_gtk2u_adv-2.8.so.0.8.0" address="b707d000" size="000ab000" version="0.8.0"/>
<module path="/usr/lib/libwx_gtk2u_adv-2.8.so.0.8.0" address="b7130000" size="00001000" version="0.8.0"/>
<module path="/usr/lib/libwx_gtk2u_html-2.8.so.0.8.0" address="b7133000" size="00089000" version="0.8.0"/>
<module path="/usr/lib/libwx_gtk2u_html-2.8.so.0.8.0" address="b71c1000" size="00002000" version="0.8.0"/>
<module path="/usr/lib/libwx_gtk2u_qa-2.8.so.0.8.0" address="b71c4000" size="00019000" version="0.8.0"/>
<module path="/usr/lib/libwx_gtk2u_qa-2.8.so.0.8.0" address="b71de000" size="00001000" version="0.8.0"/>
<module path="/usr/lib/libwx_gtk2u_xrc-2.8.so.0.8.0" address="b71e0000" size="0007a000" version="0.8.0"/>
<module path="/usr/lib/libwx_gtk2u_xrc-2.8.so.0.8.0" address="b725d000" size="00001000" version="0.8.0"/>
<module path="/usr/lib/libwx_gtk2u_aui-2.8.so.0.8.0" address="b725f000" size="0005d000" version="0.8.0"/>
<module path="/usr/lib/libwx_gtk2u_aui-2.8.so.0.8.0" address="b72bf000" size="00001000" version="0.8.0"/>
<module path="/usr/lib/libcodeblocks.so.0.0.1" address="b72c1000" size="00431000" version="0.0.1"/>
<module path="/usr/lib/libcodeblocks.so.0.0.1" address="b7703000" size="00005000" version="0.0.1"/>
<module path="/usr/local/share/mime/mime.cache" address="b770e000" size="00001000"/>
<module path="/lib/libutil-2.15.so" address="b7711000" size="00001000" version="2.15"/>
<module path="/usr/lib/gtk-2.0/modules/libcanberra-gtk-module.so" address="b7713000" size="00005000" version="module"/>
<module path="/usr/lib/gtk-2.0/modules/libcanberra-gtk-module.so" address="b7719000" size="00001000" version="module"/>
<module path="/usr/lib/gconv/UTF-32.so" address="b7733000" size="00002000" version="32"/>
<module path="/usr/lib/gconv/UTF-32.so" address="b7736000" size="00001000" version="32"/>
<module path="[vdso]" address="b7738000" size="00001000"/>
<module path="/lib/ld-2.15.so" address="b7759000" size="00001000" version="2.15"/>
</modules>
<stack>
<frame level="0" function="wxFatalSignalHandler" offset="00000023"/>
<frame level="1"/>
<frame level="2" function="wxStringBase::operator=(wxStringBase const&)" offset="0000001a"/>
<frame level="3" function="DebuggerGDB::Debug()" offset="000001f3"/>
<frame level="4" function="DebuggerGDB::OnAttachToProcess(wxCommandEvent&)" offset="0000014b"/>
<frame level="5" function="wxAppConsole::HandleEvent(wxEvtHandler*, void (wxEvtHandler::*)(wxEvent&), wxEvent&) const" offset="00000028"/>
<frame level="6" function="wxEvtHandler::ProcessEventIfMatches(wxEventTableEntryBase const&, wxEvtHandler*, wxEvent&)" offset="0000007a"/>
<frame level="7" function="wxEventHashTable::HandleEvent(wxEvent&, wxEvtHandler*)" offset="000000ab"/>
<frame level="8" function="wxEvtHandler::ProcessEvent(wxEvent&)" offset="000000e1"/>
<frame level="9" function="wxEvtHandler::ProcessEvent(wxEvent&)" offset="00000071"/>
<frame level="10" function="wxEvtHandler::ProcessEvent(wxEvent&)" offset="00000071"/>
<frame level="11" function="wxEvtHandler::ProcessEvent(wxEvent&)" offset="00000071"/>
<frame level="12" function="wxEvtHandler::ProcessEvent(wxEvent&)" offset="00000071"/>
<frame level="13" function="wxEvtHandler::ProcessEvent(wxEvent&)" offset="00000071"/>
<frame level="14" function="wxEvtHandler::ProcessEvent(wxEvent&)" offset="00000071"/>
<frame level="15" function="wxEvtHandler::ProcessEvent(wxEvent&)" offset="00000071"/>
<frame level="16" function="wxEvtHandler::ProcessEvent(wxEvent&)" offset="00000071"/>
<frame level="17" function="wxEvtHandler::ProcessEvent(wxEvent&)" offset="00000071"/>
<frame level="18" function="wxEvtHandler::ProcessEvent(wxEvent&)" offset="00000071"/>
<frame level="19" function="wxEvtHandler::ProcessEvent(wxEvent&)" offset="00000071"/>
<frame level="20" function="wxEvtHandler::ProcessEvent(wxEvent&)" offset="00000071"/>
<frame level="21" function="wxEvtHandler::ProcessEvent(wxEvent&)" offset="00000071"/>
<frame level="22" function="wxEvtHandler::ProcessEvent(wxEvent&)" offset="00000071"/>
<frame level="23" function="wxEvtHandler::ProcessEvent(wxEvent&)" offset="00000071"/>
<frame level="24" function="wxEvtHandler::ProcessEvent(wxEvent&)" offset="00000071"/>
<frame level="25" function="wxEvtHandler::ProcessEvent(wxEvent&)" offset="00000071"/>
<frame level="26" function="wxEvtHandler::ProcessEvent(wxEvent&)" offset="00000071"/>
<frame level="27" function="wxEvtHandler::ProcessEvent(wxEvent&)" offset="00000071"/>
<frame level="28" function="wxEvtHandler::ProcessEvent(wxEvent&)" offset="00000071"/>
<frame level="29" function="wxEvtHandler::ProcessEvent(wxEvent&)" offset="00000071"/>
<frame level="30" function="wxEvtHandler::ProcessEvent(wxEvent&)" offset="00000071"/>
<frame level="31" function="wxEvtHandler::ProcessEvent(wxEvent&)" offset="00000071"/>
<frame level="32" function="wxEvtHandler::ProcessEvent(wxEvent&)" offset="00000071"/>
<frame level="33" function="wxEvtHandler::ProcessEvent(wxEvent&)" offset="00000071"/>
<frame level="34" function="wxEvtHandler::ProcessEvent(wxEvent&)" offset="00000071"/>
<frame level="35" function="wxEvtHandler::ProcessEvent(wxEvent&)" offset="00000071"/>
<frame level="36" function="wxEvtHandler::ProcessEvent(wxEvent&)" offset="00000071"/>
<frame level="37"/>
<frame level="38" function="g_cclosure_marshal_VOID__VOID" offset="0000008c"/>
<frame level="39" function="g_closure_invoke" offset="000001ac"/>
<frame level="40"/>
<frame level="41" function="g_signal_emit_valist" offset="00000777"/>
<frame level="42" function="g_signal_emit" offset="00000033"/>
<frame level="43" function="gtk_widget_activate" offset="00000095"/>
<frame level="44" function="gtk_menu_shell_activate_item" offset="00000117"/>
<frame level="45"/>
<frame level="46"/>
<frame level="47"/>
<frame level="48"/>
<frame level="49" function="g_closure_invoke" offset="000001ac"/>
<frame level="50"/>
<frame level="51" function="g_signal_emit_valist" offset="00000589"/>
<frame level="52" function="g_signal_emit" offset="00000033"/>
<frame level="53"/>
<frame level="54" function="gtk_propagate_event" offset="000000ce"/>
<frame level="55" function="gtk_main_do_event" offset="000002c0"/>
<frame level="56"/>
<frame level="57" function="g_main_context_dispatch" offset="000001df"/>
<frame level="58"/>
<frame level="59" function="g_main_loop_run" offset="0000014b"/>
<frame level="60" function="gtk_main" offset="000000af"/>
<frame level="61" function="wxEventLoop::Run()" offset="0000004a"/>
<frame level="62" function="wxAppBase::MainLoop()" offset="0000004f"/>
<frame level="63" function="wxAppBase::OnRun()" offset="0000001f"/>
<frame level="64"/>
</stack>
</report>
I've just wrote a simple helloworld in C, added getchar() to wait, compiled it with "-g" flag and tried to attach to it with this IDE. Tried on 2 machines, different binaries: same result - IDE crashes. Am I doing something wrong, or this is a problem with WxWidgets/Code::Blocks?
My packages are: wxgtk 2.8.12.1-3, codeblocks 10.05-2 and gdb 7.4-1.
Last edited by dontbugme (2012-04-24 02:19:16)Are you running on an x86_64 architecture? If so I have a pacman Code::Blocks package which is the current SVN I could upload somewhere for you..
If not, check: Here to download and make the latest SVN version. There is a patch you have to apply on that page and also you need to make the build using the makepkg "-fpermissive" option.
Why do you want this SVN version (version 7932)? Well, it's current as of April 14 this month. The C::B 10.05 version is 2010, 5th month. So way out of date. There have been no official builds since then so you want to be using SVN until there is.
I don't know if using the SVN version would fix your issue but even if not: it has a host of other enhancements and fixes. -
Help required in understanding of static blocks in java
Hi ,
Can some one help me in understanding the difference between static blocks in java....also what is the difference in declaring some static variables in a class and and declaring some variables in a static block? From an architecture viewpoint when should one use static blocks in Java?Static blocks are piece of code that can beexecuted
before creating an instance of a class.static blocks are executed once, when the class
itself is loaded by the JVM. They are not executed
before creating each instance of a class.
For example whatever you include in the mainn method will be
executed without you having to create the instanceof
the class using the new operator. So you can saythe
main method is a static block.main is not a static initialisation block but a
static method. a special case static method at that -
it is only executed when the containing class is
specified as a parameter to the JVM. (unless you
specifcally call it elsewhere in code - but that
would be bad form).
in answer to the original post, static variables
belong to the class. each instance of the class share
the same static variables. Public static vars can be
accessed by prefixing them with the class name. A
static initialisation block can be used to
initialise static variables. Variables declared
within the static initialisation block exist only
within the scope of the block.
e.g.
public class Foo {
static Bar bar; // static member variable
// static initialisation block
static {
// variable declared in static block...
String barInfo =
arInfo = System.getParameter("barInfo");
// ... used to initialise the static var
bar = new Bar(barInfo);
So is the only purpose of static initialization blocks is to initialize static variables? Does the initialization of static variables inside a static block make any difference in performance? If yes , then how ? -
Foreach loop in static block won't compile
When I try to compile this:public class TestEnum
private static String[] numerals =
{"einz", "zwei", "drei", "vier"};
static
for (String n : numerals)
// doesn't matter what's in here
public static void main(String[] args)
}I get this exception:An exception has occurred in the compiler (1.4.2-beta).
java.lang.NullPointerException
at com.sun.tools.javac.comp.Lower.visitArrayForeachLoop(Lower.java:2269)
at com.sun.tools.javac.comp.Lower.visitForeachLoop(Lower.java:2242)
at com.sun.tools.javac.tree.Tree$ForeachLoop.accept(Tree.java:559)
at com.sun.tools.javac.comp.Lower.translate(Lower.java:1580)
at com.sun.tools.javac.tree.TreeTranslator.translate(TreeTranslator.java:51)
at com.sun.tools.javac.tree.TreeTranslator.visitBlock(TreeTranslator.java:131)
at com.sun.tools.javac.tree.Tree$Block.accept(Tree.java:497)
at com.sun.tools.javac.comp.Lower.translate(Lower.java:1580)
at com.sun.tools.javac.comp.Lower.visitClassDef(Lower.java:1645)
at com.sun.tools.javac.tree.Tree$ClassDef.accept(Tree.java:409)
at com.sun.tools.javac.comp.Lower.translate(Lower.java:1580)
at com.sun.tools.javac.comp.Lower.translate(Lower.java:1594)
at com.sun.tools.javac.comp.Lower.translateTopLevelClass(Lower.java:2438)
at com.sun.tools.javac.main.JavaCompiler.compile(JavaCompiler.java:408)
at com.sun.tools.javac.main.Main.compile(Main.java:523)
at com.sun.tools.javac.Main.compile(Main.java:41)
at com.sun.tools.javac.Main.main(Main.java:32)The same thing happens if I use foreach with a Collection instead an array. If I use an old-style for loop or Iterator in the static block, it compiles fine. I can also put the foreach loop in the main method, and it works. Is this a known bug?You guys rock. Thanks for finding this problem. I'll get it fixed.
-
Use of functions in static block
Hello,
I have this app containing a static {} block. The reason it's there is to 1) provide a splash screen 2) have input dialog to process input string and check if it's valid in order to load app or not.
In pseudocode it's like this:
1 - get input string with showInputDialog()
2 - check for the input string validity (a valid string is with prefix A-, C- or S-)
3 - if string is valid, load the app
4 - if string is not valid, proceed to step 1.
As you may already see, there is going to be a lot of code (with if-else statements) to check for A-, C- and S- prefixed because I am using indexOf() function which takes only one parameter.
I am considering a way to somehow check recursively, but for this I think I'll need a function to call indexOf() with A-, C-, S- and assess validity for each case.
My question is, is there a way in the static block to have a function? Or can somebody please recommend an efficient approach to checking a string validity with different possibilities inside a static block as in my case, to avoid lots of if-else statements?
P.S. My apologies for initially posting this thread in wrong section.
Thank you!
Victor.DrClap wrote:
What's a function? And why are you particularly concerned about doing those things in a static initializer as opposed to in some other place?Hi,
Sorry, I'm still thinking c++. I meant method. Something like of the form:
static
boolean valid = false;
while string is not valid
stringfrominput = showInputDialog();
//determine if string is valid
valid = checkvalid(stringfrominput)
//if possible to have
boolean checkvalid(stringfrominput)
recursively process stringfrom input based on A-, S-, or C- prefixes
return boolean value
}I have a jar app. It is Windows-based and runs as a TrayIcon application. If I include this process when class is loaded, this means that the app will be loaded with all its features. But I need to make sure that the app's features will be loaded only if certain conditions are met.
I am not sure how else to approach this requirement without using static {} block.
Thank you,
Victor. -
Hi all,
I'm back again in Forms forum : ) !!! and I'm working on a new and very interesting project
version used : Forms [32 bits] Version 10.1.2.3.0 (Production)
A little question for gurus :
On former projects I used to call loops on blocks and item like shown below to do various things such as displaying buttons or showing canvas or different VA depending on the user or scenarios .
PROCEDURE FRM_BLK_ITM_LOOP IS
v_curblk varchar2(90); -- bloc courant
v_curitm varchar2(90); -- item courant
BEGIN
v_curblk := get_form_property(:SYSTEM.CURRENT_FORM,first_block); -- on récupère le 1er block de la form
LOOP
v_curitm := v_curblk||'.'||get_block_property(v_curblk,first_item); -- on récupère le 1er item du block
WHILE v_curitm != v_curblk||'.'||get_block_property(v_curblk,last_item)
LOOP -- tant que l'item n'est pas le dernier du block on loop
v_curitm := v_curblk||'.'||get_item_property(v_curitm,nextitem); -- on récupère l item suivant
if get_item_property(v_curitm,<some property>) = 'TRUE' then
--- I can do something.... or adding more conditions if then etc...
end if;
END LOOP;
EXIT WHEN v_curblk = get_form_property(:SYSTEM.CURRENT_FORM,last_block); -- on sort losrqu on arrive au dernier block
v_curblk := get_block_property(v_curblk, nextblock); -- on passe au block suivant
END LOOP;
END;In my current project we work on quite huge forms which can have a consequent number of blocks and items.
And we must be very careful regarding performance issues as these forms are accessed via LAN and WAN.
So my question :
This method seems to be quite efficient as it goes thrue blocks and items sequences as they are defined in the builder comparing to go_block -> go_item ->do_something which can easily turn into nightmare-programming.
But I don't really know about network roundtrips with this kind of method.
Is everything done in the app server and then fetched to the client?
What triggers block-level and item-level can be fired during the execution of the loop ? and so one...
Thanks in advance for your advices on this matter.
Jean-YvesHmmm, I have to say I never bothered if Forms is in Socket mode or not; I enabled the network statistics, counted the roundtrips and looked for ways to get them lower (my old friend wireshark did also a good job regarding this) ;). But regarding the note Forms 6i uses Socket Connections by default, this might apply to 10g too (or the enhancement request was approved, who knows).
Frankly I am not entirely sure what Socket Mode means; I guess it's the mode the forms applet talks to the forms runtime; wheter it's stateful (via Sockets) or stateless (via HTTP / HTTPS) but this is just a wild guess, and I can't find informations on it quickly. I also enabled networkStats on my Developer Suite only, so I cannot tell if you can enable them on a full-fledged Application Server.
Anyway; as said I just counted the roundtrips and looked where I can avoid them when I made our application ready for WAN.
Another useful tool was Shunra VE Desktop which I used to simulate low bandwith networks with high latencys; I installed it on a virtual XP, started the application and tested how the Application performs. If something looked odd, I looked behind the scenes, built a little testform basing on the code behind and tried out various things; very often you can take advantage of the event bundling forms seems to make when you use several set_xyz calls as Francois also noted; e.g.
set_custom_property('bean_item', 1, 'PROPERTY', prop);
set_custom_property('bean_item', 1, 'PROPERTY', prop);
set_custom_property('bean_item', 1, 'PROPERTY', prop);
set_custom_property('bean_item', 1, 'PROPERTY', prop);
set_custom_property('bean_item', 1, 'PROPERTY', prop);
vRet := get_custom_property('bean_item', 1, 'PROPERTY);most certainly will cause just 1 roundtrip; but if you use get_custom_property in the middle of the set_custom_property calls you will encounter 2 roundtrips as forms needs to synchronize (you get a value from the bean so the forms runtime needs a response) with the forms applet whereas set_custom_property is a one-way-street which can be fired off simultaneous. The same applies to fbean.invoke and fbean.invoke_bool, fbean.invoke_char and the like. Of course if you are using more then one get_custom_property in this case the roundtrips will increase accordingly.
If you want to make use of event bundling make sure you fire off as much set_xyz as you can before forcing forms to synchronize (e.g. with get_xyz, or synchronize, create_timer,...)
cheers -
The question about portlet customization and synchronization
I have a question about portlet customization and synchronization.
When I call
NameValuePersonalizationObject data = (NameValuePersonalizationObject) PortletRendererUtil.getEditData(portletRenderRequest);
portletRenderRequest.setPortletTitle(str);
portletRenderRequest.putString(aKey, aValue);
PortletRendererUtil.submitEditData(portletRenderRequest, data);
Should I make any synchronization myself (use "synchronized" blocks or something else) or this procedure is made thread-safe on the level of the Portal API?HI Dimitry,
I dont think you have to synchronize the block. i guess the code is synchronized internally.
regards,
Harsha -
Why do we use static block ????
my question is that why do we use static block for certain statements and declarations ?? what advantage do they hold???
Please help me........Here is an example:
If you use a JDBC-driver, it's enough to write:
String driverName = "package.MyDriver";
Class.forName(driverName);In the class "MyDriver" there is a static block:
public class MyDriver implements java.sql.Driver {
static {
MyDriver driver = new MyDriver();
java.sql.DriverManager.registerDriver(driver);
} -
Static block in superclass to initialize static members in subclasses
I am trying to create several classes that are all very similar and should derive from a super class because they all have common members and are all initialized the same way. I would prefer every member of my subclasses to be static and final as they will be initialized once and only once. I can not figure out the best way to make this work. Here is an example (using code that does not work, but you can see what I am trying to do):
class Super
protected static final String initializedInEachSubclass;
protected static final String alsoInitializedInEachSubclass;
// these need to be accessed from anywhere
public static final String initializedInSuperclass;
public static final String alsoInitializedInSuperclass;
// this static initialization block is exactly the same for every instance
static
// initialize these based on what the subclasses initialized
initializedInSuperclass = initializedInEachSubclass + alsoInitializedInEachSubclass;
private Super () {} // never instantiated
public static final String getMoreInfo ()
// the same for each instance
return Integer.toString (initializedInEachSubclass.length ());
class Sub1 extends Super
static
initializedInEachSubclass = "My String for Sub1";
alsoInitializedInEachSubclass = "My Other String for Sub1";
private Sub1 () {} // never instantiated
}The problem with the above code is that the static block in Super uses static final variables that have not been initialized yet. I can't make Super abstract. If I initialize the final variables in Super, then I can not reinitialize them in Sub1. But if they are not final, then they could be changed after being initialized (which I would rather not allow). I could make everything protected and not final and then make public get... () methods, but I like accessing them as attributes. It seems like this should be possible, but everything I have tried has led me to a catch-22.
Any ideas on how I can put all my redundant initialization code in one place but still allow the subclasses to initialize the static members that make each of them unique? I will be happy to clarify my examples if you need more information.
Edited by: sawatdee on Jan 3, 2008 9:04 AMsawatdee wrote:
I am basically trying to avoid having redundant code in several classes when the code will be exactly the same in all of them.That's the wrong reason to subclass. You subclass to express type specialization. That is, a Dog IS-A Mammal, but it's a special type of Mammal that implements certain common mammal behaviors in a dog-specific way. A LinkedList IS-A List, but in implements common list operations in linked-list-specific ways.
I don't really need to have the static final members in a superclass (and I don't even need a superclass at all), but I don't know how else to execute a big static initialization block in several classes when that code is exactly the same in all of them. Without knowing more details about what you're trying to do, this sounds like a case for composition rather than inheritance. What's now your superclass would be a separate class that all your "sublasses" have a reference to. If they each need their own values for its attributes, they'd each have their own instances, and the stuff that's static in the current superclass would be non-static in the "subs". If the values for the common attributes are class-wide across the "subs", the contained former super can be static.
public class CommonAttrs {
private final String attr1;
private final int attr2;
public CommonAttrs(String attr1, int attr2) {
this.attr1 = attr1;
this.attr2 = attr2;
public class FormerSub1 {
private static final CommonAttrs = new CommonAttrs("abc", 123);
... etc. .. -
Clarification regarding static blocks.
I can understand from this about the static initialization block. I just need one clarification. What is the difference between the blocks with and without the 'static' keyword? For eg., the following code prints 'Hello'
class ClassWithStaticBlock {
System.out.println("Hello");
public class StaticBlockTester {
public static void main(String[] args) {
new ClassWithStaticBlock();
}If I modify the class ClassWithStaticBlock like given below, I receive the same output. So, what is the difference between the two?
class ClassWithStaticBlock {
static {
System.out.println("Hello");
}Thanks.The static block is only run upon loading of the class. Well, during the initialization phase of loading it, but it amounts to much the same thing. Non-static initiializers are run every time the class is instantiated. Try this
class ClassWithInitializers {
static {
System.err.printlln("Loading class");
System.err.println("Initializing");
public static void main(String[] args) {
new ClassWithInitializers();
new ClassWithInitializers();
new ClassWithInitializers();
new ClassWithInitializers();
}See any difference? -
Exception handling in static block
How to handle and exception raised in static block, pls answer
Yeah, you are right, but I was just quoting the example on how to use it.
Now, come to your problem,
1. Static blocks are executed first time, when a class is loaded, i.e. when first reference of class is made.
2. So, handle the situation there.
E.g.
You have test class:
public class Test {
static{
try{
String s = null;
File f = new File(s);
}catch(Throwable ne)
System.out.println("Eror");
throw new RuntimeException(); // Or use Error depends on your implementation
public static void abc(){
System.out.println("Hello");
Now,
calling it from another class:
public class Test1 {
public static void main(String[] args) {
try{
Test.abc(); *// This is the first instance where class for Test will be load and hence the static block will be executed*
}catch(Throwable th) // Or catch Error
th.printStackTrace(); // Do the handling
System.out.println("Done");
This is a standard practice. From static block, instead of throwing Error exception, use some of your inherited class from Error. (i.e. create a exception framework inside your application)
Hope this explains my point. -
Exception in static block + re-instantiating
Hello All,
I have got a number of unit tests and one that is running is causing an exception in a static block of a class which is expected. It throws an ExceptionInInitializerError which I catch in the unit test.
But then another test is running using the same class and this time it should pass and create an instance of the same class as before.
But instead I receive a java.lang.NoClassDefFoundError with no class name. Why? Can't I instantiate a class again once the initialisation had failed?
Regards
JonasIt's part of the VM Specification.
See [2.17.5 Detailed Initialization Procedure|http://java.sun.com/docs/books/jvms/second_edition/html/Concepts.doc.html#24237]
The first time,
10. Otherwise, the initializers must have completed abruptly by throwing some exception E. If the class of E is not Error or one of its subclasses, then create a new instance of the class ExceptionInInitializerError, with E as the argument, and use this object in place of E in the following step. But if a new instance of ExceptionInInitializerError cannot be created because an OutOfMemoryError occurs, then instead use an OutOfMemoryError object in place of E in the following step.After that,
5. If the Class object is in an erroneous state, then initialization is not possible. Release the lock on the Class object and throw a NoClassDefFoundError.
Maybe you are looking for
-
Can we call a function module in ADHOC query
Hi Can we call a function module in ADHOC query if yes how. Also we ned to know how to call a function module in SAP query. An early responce is appreciated. Thanks and best regards Rajeev
-
Best Practices to the management of errors in OIM 9.1.0.2
Friends, What is the process for handling errors to a failure to implement Oracle Identity Manager 9.1.0.2 Thanks
-
PI 7.1 File & JMS Adapter stops polling at random times
Hi All, IN PI 7.1, at random times, the File Adapter stops polling. But status is green in RWB. It starts working after the restart of File Service. Any idea why this happens? (We don't use FTP Protocol)
-
I need someone to treat me like a 4 year old...ha, ha. Please give me detailed instructions on how to fix my issue. I have tried to follow similar posts and I cannot figure it out. Here is my problem: 1) I take pictures w/ my digital camera 2) I impo
-
HELP: signer info doesn't match info of other classes in the same package
I have several jars which need to be signed. They contain several applications and packages which are split up based on which parts are needed by server vs client code. How do I get rid of this error? I'm signing all the jars using the keytool and ja