Do you have memory leak or leave problem? Let's try this tool, HookLogger!
References:
http://developer.symbian.com/main/tools_and_sdks/developer_tools/supported/hook_logger/index.jsp
Thursday, November 12, 2009
Wednesday, November 4, 2009
Setup Symbian environment
Symbian C++
1. Perl (e.g.ActiveState Perl 5.x)
2. Symbian SDK (S60 3rd Edition, S60 5th Edition)
3. OpenC/C++ plugin (for S60)
4. Carbide (Carbide.c++ v2.02) IDE for Symbian platform development.
Note
- The SDK and your source files must be located at the same drive
PyS60
References
http://wiki.opensource.nokia.com/projects/Installing_PyS60
http://developer.symbian.org/wiki/index.php/Python_Technical_Overview#Table1
1. Perl (e.g.ActiveState Perl 5.x)
2. Symbian SDK (S60 3rd Edition, S60 5th Edition)
3. OpenC/C++ plugin (for S60)
4. Carbide (Carbide.c++ v2.02) IDE for Symbian platform development.
Note
- The SDK and your source files must be located at the same drive
PyS60
References
http://wiki.opensource.nokia.com/projects/Installing_PyS60
http://developer.symbian.org/wiki/index.php/Python_Technical_Overview#Table1
Thursday, October 8, 2009
Gps Tracking on Google Maps/Goole Earth from Navigon
Navigon is probably the best navigation brand on-date. Several new products launched since 2008 are most known for several outstanding features such as Reality View, Terrain View, 3D City View, pedestrian navigation and multiple alternative routes. Recently, it was also added a new GPS Tracking features which allows the user to view the route on Google Earth and Google Maps using kml format. A feature which I would like my navigation to have which was known to be suported by Garmin navigation.
Open GpsTracking using Goolge Earth, simply click "File -> Open" on Google Earth to import the kml file. To use it on Google Map, you need to upload the file to internet, and copy the URL to the Search Box.
Friday, October 2, 2009
Variadic Macros
I ran into a problem of variadic macro
Google a bit and the solution was found under NewLC:
http://www.newlc.com/forum/variadic-macro-problem
An information about variadic macro for GCC was to be found here:
http://gcc.gnu.org/onlinedocs/cpp/Variadic-Macros.html
__VA_ARGS__, the code porting from Windows when compling in Symbian. It issued the error "badly punctuated parameter list in `#define'" and caused "cpp.EXE" to stop with failure.Google a bit and the solution was found under NewLC:
http://www.newlc.com/forum/variadic-macro-problem
An information about variadic macro for GCC was to be found here:
http://gcc.gnu.org/onlinedocs/cpp/Variadic-Macros.html
Monday, September 28, 2009
Friday, September 18, 2009
Problem in compliation on GCCE & CW
I encountered a compilation problem when trying to build a huge library which require many other APIs. It happened on both CodeWarrior and GCCE! What could it be?
Carbide.C++ for CW seemed to compile all cpp files but could not complete the complilation at the end then hang over. (No compilation error had been reported) Whereas GCCE was even worse,
was yield after several cpp files built. Although commenting out these reported error file, the error was still moved to the other files! It should not be the error from source code anyway.
Solution:
Adding
And now what about GCCE ? I did the same with
Checking the GCC document, I then decided to change the debug option from "dwarf" to "stabs" but this did not help either. (-gdwarf-2 and g3 are the default GCC setting, so I override this setting in the project file, my mmp.)
Hmm...let's try other setting. This time with with
Carbide.C++ for CW seemed to compile all cpp files but could not complete the complilation at the end then hang over. (No compilation error had been reported) Whereas GCCE was even worse,
Internal compiler error in dwarf2out_finish dwarf2out.c 13110!!
was yield after several cpp files built. Although commenting out these reported error file, the error was still moved to the other files! It should not be the error from source code anyway.
Solution:
Adding
OPTION CW -w off in your mmp file sounded to solve the problem on CW! (At least in my case, there were too much warning that's why the compiler couldn't end the compilation beautifully!)And now what about GCCE ? I did the same with
OPTION GCCE -w to suppress the default "-Wall -Wno-ctor-dtor-privacy -Wno-unknown-pragmas" in GCCE.mk.Checking the GCC document, I then decided to change the debug option from "dwarf" to "stabs" but this did not help either. (-gdwarf-2 and g3 are the default GCC setting, so I override this setting in the project file, my mmp.)
Hmm...let's try other setting. This time with with
OPTION GCCE -g -g1 -ggdb ...and it worked!! Done!
Monday, August 17, 2009
Simple Symbian Makefile
Symbian requires makefile for gcce build.
Here is the sample of my makefile, let's call it myproject.mk
Now, if we want to execute the makefile without calling "abld" command, you need firstly set $PLATFORM=GCCE at your shell. Next we can call the make from here:
If anything goes wrong, you can try with "make -d" to debug.
Some pitfalls from make:
- *** missing separator *** => You use the "space" instead of "tab"
- Invalid switch when trying to execute the command from (dos) shell => you missing double quote around the argument passing to the command.
Here is the sample of my makefile, let's call it myproject.mk
# myproject.mk
#
TARGETDIR=.
CERTDIR=../../../../Certificates
TARGETSISFILE=$(TARGETDIR)/myproject.sis
TARGETSISXFILE=$(TARGETDIR)/myprojects.sisx
TARGETPKGFILE=$(TARGETDIR)/myprojects.target.pkg
SOURCEPKGFILE=$(TARGETDIR)/myprojects.pkg
SOURCECERFILE=$(CERTDIR)/dev.cer
SOURCEKEYFILE=$(CERTDIR)/dev.key
PASSWORD=mypassword
BLD : do_nothing
CLEAN : do_nothing
LIB : do_nothing
ifeq (GCCE,$(findstring GCCE, $(PLATFORM)))
FINAL :
$(SOURCECERFILE)
@echo EPOCROOT=$(EPOCROOT)
@echo $(PLATFORM)
#Delete existing sis file
@echo del $(TARGETSISFILE)
@echo del $(TARGETSISXFILE)
# we use command here, please note that we need the double quotes here
del "$(TARGETSISFILE)"
del "$(TARGETSISXFILE)"
#Pass the PKG through the CPP precompiler
# @echo cpp -P $(SOURCEPKGFILE) $(TARGETPKGFILE)
# cpp -P $(SOURCEPKGFILE) $(TARGETPKGFILE)
@echo perl -e "print `makesis -d%EPOCROOT% $(SOURCEPKGFILE) $(TARGETSISFILE)`"
# we can execute this with perl as well
perl -e "print `makesis -d%EPOCROOT% $(SOURCEPKGFILE) $(TARGETSISFILE)`"
#Sign the SIS file
@echo signsis -v -s $(TARGETSISFILE) $(TARGETSISXFILE) $(SOURCECERFILE) $(SOURCEKEYFILE) $(PASSWORD)
signsis -v -s $(TARGETSISFILE) $(TARGETSISXFILE) $(SOURCECERFILE) $(SOURCEKEYFILE) $(PASSWORD)
else
FINAL : do_nothing
endif
Now, if we want to execute the makefile without calling "abld" command, you need firstly set $PLATFORM=GCCE at your shell. Next we can call the make from here:
c:\...sis\>make -f myproject.mk
If anything goes wrong, you can try with "make -d" to debug.
Some pitfalls from make:
- *** missing separator *** => You use the "space" instead of "tab"
- Invalid switch when trying to execute the command from (dos) shell => you missing double quote around the argument passing to the command.
Subscribe to:
Posts (Atom)
