FAQ
Last update 2/26/2006
General
Purchase
OS
Installation
Server component
Connection
Editor
Compiler
Debugger
- When initiating debugger got the error message 'Enum updated file failed', what to do?
- While initiating debugger got error message ' Starting debug redirection terminal ... failed!', how to solve this problem?
-
I have downloaded Magic C++ and the editor works well, but it always fails when I tryto start debugger, it tells me 'start debugger error' after I choose the menu item 'Compile->Debug->Go'.
- Does Magic C++ support multi-thread and multi-process debugging?
- How to debug a daemon process?
- Does Magic C++ support X-Window GUI applications development?
- While debugging ncurses panel applications got the error message 'Program Exited with code 01', and in the console there is message 'Error Openenig terminal: unknown', what to do?
- While debugging the call stack window appears blank, what to do?
- How to debug a console application that uses a shared object library?
- Does Magic C++ support C/C++ CGI web programs development?
- How to set environment variables in Magic C++ IDE?
- If I add a watch variable, the watch window does not appear at the bottom of the IDE as in MS-Visual C++?
- Does Magic C++ support DB2,Oracle,Informix etc. database application debugging?
- Does Magic C++ support the kernel debugging?
- Does Magic C++ support the cross-platform toolchains on Cygwin? The compiler, gnu gcc, is running on the Cygwin environment.
- The attach target process has not been listed, what to do?
- Can I write asm in Magic C++?
- Is there a method of changing Quick Watch to display hex data rather than decimal?
Others
Q: Magic C++ Price and License Information
A:
Price( volume discount enable ): $99
Price( group license for 100 developers ): $4,999
Price( group license for 200 developers ): $7,999
Price( site license for unlimited number ): $19,999
Please visit
http://www.magicunix.com/purchase01.htm
for price and license information.
The volume discounts and group license is available. Please follow this link for details.
http://www.shareit.com/product.html?productid=211666
MagicUnix Sales and Order FAQ
http://www.magicunix.com/purchase02.htm
Purchase Online
Back to Top
Q: Magic C++ Support Information
A:
MagicUnix is committed to provide the very best support to both registered and evaluation users of our products. Please check the following sections which provide a number of assistance options, ranging from self-service to direct technical support:
Frequently Asked Questions
Support Forum
Knowledge Base
Product Overview
Product Manuals
Tutorials and Examples
Direct Support
Mailing Lists
Please visit
http://www.magicunix.com/support.htm
Back to Top
Q: what to do if I find a bug?
A:
Please first make sure that you're on the latest version, because most likely the
bug has been fixed in the latest release.
To help us better investigate into the problem, please follow instructions below:
login to the Unix/Linux server
(1) stop magicd by commands:
# cd /your_magicd_install_path/bin
# ./killit.sh
(2) empty the log file log/dup.log
(3) startup magicd in debugging mode to print debugging info in details to the log file, that will help us to solve problems for you. For more information about options please refer to the installation guide.
# ./magicd --debug
(4)Execute the operation that invokes error messages, and send us the log/dup.log file
(5)Send us the output of 'View/Output/Debug' in the Magic C++ IDE as well
(6)Provide us with the type and version of the following items: server OS, complier, debugger and client OS
Send us the above information and we'll try to solve the problem for you as soon as we can.
Back to Top
Q: What's the difference between trial version and registed version?
A:
They are different only at usage time limit. You can download and use Magic C++ trial version FREELY, if you find it useful and continue to use it after 45 days, you are obligated to register it with us. For more information please check the purchase web page below:
Purchase Online
Back to Top
Q: Can Magic C++ work with Unix OS other than Linux/BSD?
A:
Yes.
Magic C++ supports for many popular Unix/Linux/BSD platforms include IBM AIX, Sun Solaris, HP HP-UX, HP Tur64 Unix, Linux, FreeBSD and NetBSD. If you would like some further information on this product please contact us. We can also extend Magic C++ to support any other platforms to satisfy your requirement.
Magic C++ Supports Server Platform List
Back to Top
Q: Can Magic C++ support GDB for embedded targets like PowerPC?
A:
Yes.
Magic C++'s server component is OPEN SOURCE that means you can compile and install it under any Linux/BSD/Unix OS. For your instance you need compile the server source codes under the PowerPC Linux, once you finish this phase you can use Magic C++ to develop.
If your PowerPC Linux is the embedded target board instead of the cross-development host computer, it may runs short of resources include memory and disk space and the integrated GNU development toolchains will cost too much to use, for this situation you can choose gdbserver to reduce the resources cost.
Magic C++ supports for GNU cross development toolchains. Screenshot
Please refer this article for more information
Guide for gdbserver remote debugging with Magic C++
Magic C++ also supports embeddable C/C++ interpreter Ch
Please refer this article for more information
Guide for developing C/C++ interpreter Ch script with Magic C++ 3.0
Back to Top
Q: Can Magic C++ work with Cygwin and MinGW?
A:
Yes.
Magic C++ 3.0 or higher has supported for windows local development tools Cygwin/MinGW. Screenshot
***NOTICE***
You needn't install the server component of Magic C++ under Cygwin. Though you need install the server component of Magic C++ on Unix/Linux/BSD servers for remote development, but this phase is not necessary for local windows Cygwin/MinGW development.
Please refer this article for more information
Guide for developing under Cygwin/MinGW with Magic C++ 3.0
Magic C++ Supports Server Platform List
Back to Top
Q: Must I install the server component( Unix/Linux daemon service magicd ) before using Magic C++ client IDE? Can Magic C++ work without any server end program?
A:
For Unix/Linux/BSD remote development:
Based on client/server architecture, for remote development there are 3 kinds of working mode can be selected by users:
Conclusion:
Remote development over RDA: YES
Remote development over TELNET/FTP: NO
Remote development over SSH/SFTP: NO
Local development with Cygwin/MinGW: NO
Please refer this article for more information
Installation Guide for Magic C++ V3.5
Please refer this article for more information
Guide for developing under SSH/STP environment with Magic C++ 3.5
Please refer this article for more information
Guide for developing under Cygwin/MinGW with Magic C++ 3.0
Back to Top
Q: After re-installing Magic C++, I lost all my server configurations. Why?
A:
That's because you performed uninstall and then reinstall of Magic C++, which erases all the configurations.
To save your server configuration, please choose “repair” when promotedby the setup wizard for modify, repair or remove. You can reinstall the current version, or upgrade to a newer version with the “repair” option.
Back to Top
Q: Thttpd compile failed while installing the server component source codes, what to do?
A:
Please follow these steps to solve the compiling problem:
(1)
open file 'magicd-3.0.0/Makefile'
(2)
find string 'SUBDIR=' in this file
(3)
remove 'thttpd' and 'yman2html' from this statement
(4)
remove the last line
cp -f "$(prefix)/magicd-$(VERSION)/thttpd/thttpd" "$(prefix)/magicd-$(VERSION)/thttpd/mchttpd"
(5)
make
(6)
make install
This steps will skip compiling on 'thttpd' while the 'magicd' will be compiled smoothly. Without 'thttpd' you can't use HTML format man online help. Other function such as editing, compiling and debugging are usable.
Back to Top
Q: Server component install failed under Cygwin, what to do?
A:
You needn't install the server component of Magic C++ under Cygwin.
You need install the server component of Magic C++ on Unix/Linux/BSD servers for remote development,but this phase is not necessary for local windows Cygwin/MinGW development.
Back to Top
Q: While creating or opening a project over SSH/SFTP connections, it reports 'Install Magic C++ Remote tools failed! Please install them manually.' or 'Query Magic C++ Remote Tools failed!', what to do?
A:
Magic C++ v3.5 or higher supports for SSH/SFTP secure development environment as a plus to TELNET/FTP traditional development environment. You need manually install the server component of Magic C++( server side daemon, magicd ) on Unix/Linux/BSD servers under TELNET/FTP traditional development environment, but this phase is not necessary for SSH/SFTP secure development environment, it's replaced by Magic C++ remote tools( server side command line tools for text search/replace etc. ) which will be installed automatically, much easier to install and use.
Generally Magic C++ remote tools will be installed automatically, if it fails
please send us the debugging log file
C:\Program Files\MagicUnix\Magic C++\log\remote_tools.log and
C:\Program Files\MagicUnix\Magic C++\log\dup.log
we'll check the problem for you. You can also follow these steps to install it manually:
(1)get home directory of your account on linux server
==========================
[ken@linux90 ken]$ echo $HOME
/home/ken
[ken@linux90 ken]$
==========================
(2)transfer the source code tar package to the home directory via FTP/SFTP
put C:\Program Files\MagicUnix\Magic C++\src\.magic_cpp.tar /home/ken
(3)untar the source code tar package
tar -xvf .magic_cpp.tar
(4)change direcoty
cd .magic_cpp/src
(5)compile the source codes with your compiler
./make.sh gcc.
Back to Top
Q: How does the upgrade work? I do not see any information on your web site for users upgrading from v3.0 to 3.5. Do I need to first uninstall v3.0 and then install v3.5?
A:
You needn't uninstall v3.0, just select "Repair" mode while installation to upgrade from v3.0 to v3.5.
***NOTICE***
The server component need upgrade/update synchronously.
For
(1)standard SSH/SFTP mode
(2)standard TELNET/FTP mode
please remove the directory $HOME/.magic_cpp first, it will be upgraded/updated automatically while creating or opening a project in the IDE next time.
For
(3)expert Remote Development Agent( RDA ) mode
please upgrade/update magicd package manually
Back to Top Q:How is remote server login's user name and password set in Magic C++?
A:
There're two methods:
To adopt the authentication mechanism of the server operation system please directly set the user name/password of the server's telnet function. This requires the root user to startupthe server.
To adopt the authentication mechanism of Magic C++ please set user name and password yourself by typing
./magicd –a <username>, <password>
Back to Top
Q: When initiating server service process got the error message “ can't bind local address”, what to do?
A: change the port to initiate your server service process, for example, changing to port 2005by typing
./magicd –p 2005
***Pease note that the server configuration in Magic C++ IDE need to be updated at the same time to work properly
Back to Top
Q: After executing ./configure I got error message 'Check your system clock', what to do?
A:
These error messages indicate that the source files's time stamps are later than your system clock. Please execute
touch *
under /your/path/to/magicd to update the time stamps then execute
./configure
again to install
Back to Top
Q: How to make sure the service process is working normally?
A:
Please make sure first that the client machine can communicate wit the server via Ftp and Telnet normally
Then you can do either of the following:
via Magic C++ IDE
Start Magic C++ IDE, make and configure server settings,
Set the user name/password of remote login and useRemote Development Authentication->Test to test.
Set the user name/password for ftp, and useFTP Authentication->Test to test
via command line interface
Connect via telnet to the port of Magic C++ service process with the command
telnet <ip address> <port number> , follow the prompt to enter user name/password to test.
Connect via ftp to the server using the command
ftp<ip address> , and follow the prompt to enter user name/password to test
Back to Top
Q: HTML man page can't work under IBM AIX, HP-UX, Sun Solaris, what to do?
A:
Please execute 'catman' command with root priviledge to establish an index for man page help before using the HTML man page function in Magic C++ IDE.
Back to Top
Q: When initiating server service process got the error message '[20050413 17:05:13]|tools.c|100|Bad file number', what to do?
A:
Please check the permission setting of files under directory magicd-3.0.0/log/
Here are the commands:
# cd magicd-3.0.0/log
# chmod 666 *.log
Back to Top
Q: How to startup the server component if I can't change user to root since I have no such rights?
A:
You can startup magicd with -a option to specify the username and password.
***NOTICE***
Startup magicd with -a option will active the authentication ability provides by Magic C++, at this situation you must specify the telnet port of redirection terminal corresponding to the server component(RDA)(default is 2004) in Magic C++ IDE.
1. Open the Remote Server Manager (under file menu) File->Remote Server Manager.
2. Open the Server Property dialog for your server.
3. Under the "Advance" tab, set your Telnet port to 2004(magicd working port) instead of 23(the standard telnet port).
Back to Top
Q: How to startup the server component automatically while the server system boot up?
A:
For Linux server OS:
Please append this statement at the end of file /etc/rc.d/rc.local
/path/to/magicd-3.0.0/bin/magicd
( replace /path/to by your installation directory of magicd )
For Sun Solaris:
1. change directory to /etc/rc3.d
#cd /etc/rc3.d
# pwd
/etc/rc3.d
# ls
README S16boot.server S76snmpdx S84appserv
S13kdc.master S34dhcp S77dmi S89sshd
S14kdc S50apache S80mipagent S90samba
S15nfs.server S52imq S81volmgt
the filename format of services is like S**service where ** is a digital ID( S means Startup )
2. create a startup profile for magicd with ID 91
#vi S91magicd
and input content as below: #!/bin/sh
/path/to/magicd-3.0.0/bin/magicd
( replace /path/to by your installation directory of magicd )
3. change file permission
#chmod 755 S91magicd
4. reboot the system and check the magicd process
#ps -ef|grep magicd
root 330 1 0 22:18:53 ? 0:00 /home/test/magicd-2.5.0/bin/magic
d
test 480 359 0 22:25:05 pts/2 0:00 grep magicd
Other server OS:
Please refer their system administrator manuals.
Q: When initiating debugger got the error message 'Enum updated file failed', what to do?
A:
If you use bash shell please make sure the environment variable called PROMPT_COMMAND must be empty. Restartup magicd to take effect.
Typical environment variables look like:
==============
BASH=/bin/bash
PROMPT_COMMAND=
PS1='[\u@\h \W]\$ '
=============
This problem can also be caused by abnormal command prompt of your Unix/Linux shell environment.
The proper command prompt is like this:
[mc@linux90 mc]#
Magic C++ doesn't support these command prompts:
(1)command prompt is multi-line texts which including a newline character.
(2)command prompt is colorful texts
(3)command prompt contains a counter for commands or time information, so it will change after command executing, for example
"Tue Aug 09 19:34:31 root#"
(4)command prompt is empty
Magic C++ can't work normally with these above command prompts. Please reconfigure command prompt as proper format with Magic C++ supports by add command in the shell profile of your account as below:
set prompt="new_cmd_prompt" ( for csh )
set PS1="new_cmd_prompt" ( for bash, sh )
This problem can also be caused by abnormally startup of magicd, the server component of Magic C++.
Please notice:
(1) Do not startup magicd from terminal window at x-windows desktop.
(2) Do not startup magicd by putty.exe via SSH protocol. Please startup magicd by cmd.exe which provides by windows or other tools via TELNET protocol. If you can only use SSH connection please use SSH tools other than putty.exe.
Back to Top
Q: While initiating debugger got error message ' Starting debug redirection terminal...failed!', how to solve this problem?
A:
This problem may be caused by abnormal command prompt of your Unix/Linux shell environment. Please refer here for more information.
Abnormal command prompt which Magic C++ doesn't support.
If it doesn't help to solve the problem, to help us better investigate into the problem, please follow instructions below:
(1) stop magicd by commands:
# cd /your_magicd_install_path/bin
# ./killit.sh
(2) empty the log file log/dup.log
(3)startup magicd in debugging mode to print debugging info in details to the log file, that will help us to solve problems for you.
# ./magicd --debug
(4)
telnet to port 2004(magicd working port) manually and test login operation
(5)
On the Magic C++ client, be sure to set the server properties correctly to reflect the port change to 2004(magicd working port).
1. Open the Remote Server Manager (under file menu) File->Remote Server Manager.
2. Open the Server Property dialog for your server.
3. Under the "Advance" tab* , set your Telnet port to 2004(magicd working port) instead of 23(the standard telnet port).
***NOTICE***
But there is one exception.If you have installed the server component(RDA) without superuser privilege and active the authentication ability provides by Magic C++, at this situation you must specify the telnet port of redirection terminal corresponding to the server component(RDA)(default is 2004).
Execute the debug operation, if it invokes error messages, please send us the log/dup.log file and we'll try to solve this problem for you as soon as we can.
Back to Top
Q: I have downloaded Magic C++ and the editor works well, but it always fails when I tryto start debugger, it tells me "start debugger error" after I choose the menu item
"Compile->Debug->Go".
A:
Please check the output messages of "View->Output->Debug tab page" on the bottom of Magic C++ IDE, if you find messages like these: ======================================
Starting debugger...OK.
Starting debug redirection terminal...failed!
============================
please refer here to solve this problem
'Starting debug redirection terminal...failed!', how to solve this problem?
There are also other possible reasons for this problem:
(1)the remote telnet server works abnormally( if you have specified port 23 as the telnet port of redirection terminal instead of port 2004 )
(2)the maximum number of telnet connections for the user acount has reached ( if you have specified port 23 as the telnet port of redirection terminal instead of port 2004 )
(3)the network is too busy to establish a connection before timeout
(4)some user account such as root maybe not allow to login remotely
If these doesn't help to solve the problem, to help us better investigate into the problem, please follow instructions below:
(1) stop magicd by commands:
# cd /your_magicd_install_path/bin
# ./killit.sh
(2) empty the log file log/dup.log
(3)startup magicd in debugging mode to print debugging info in details to the log file, that will help us to solve problems for you.
# ./magicd --debug
Execute the debug operation, if it invokes error messages, please send us the log/dup.log file and we'll try to solve this problem for you as soon as we can.
Back to Top
Q: Connection to server failed because the SHADOW password verification wasn't turned on in Linux, what to do?
A: [ This is NOT necessary for Magic C++ 3.0 or higher. ]
Magic C++ requires SHADOW password verification. Connection would fail if SHADOW isn't turned on.
To solve the problem, download the latest server component source code and re-compile follow the instructions below:
./configure
check the src/Makefile File, see if HAVE_SHADOW_H macro is defined in DEFS, if yes, comment it out.
make
make install
Follow the source code installation guide to proceed from here.
Back to Top
Q: How to set the idle timeout option of server to avoid being disconnected?
A:
Modify the file named /etc/default/login as below:
# TIMEOUT sets the number of seconds (between 0 and 900) to wait before
# abandoning a login session.
#
#TIMEOUT=300
Active login sessions will not be effected until reconnect.
Back to Top
Q: Can I use Magic C++ with SSH and SFTP connection?
A:
Magic C++ v3.0 and lower version don't support for SSH and SFTP, these features are implemented in Magic C++ v3.5 and higher version.
Magic C++ v3.0 and lower version need a server side daemon program ( magicd ), use FTP to transfer files between local machine and remote servers, you need install ftp server package ( wu-ftp, vsftp etc. ) on remote server before using Magic C++. Once the server supports FTP connection then you can use Magic C++ even without TELNET support, because Magic C++ has implemented TELNET protocol itself. Please check the advanced property sheet of the remote server, and you must specify the telnet port of redirection terminal corresponding to the server component(RDA)(default is 2004) to use TELNET protocol provided by Magic C++.
Magic C++ v3.5 and higher version support SSH/SFTP as a plus, can use SFTP to transfer files between local machine and remote servers, you need install SSH/SFTP server package ( OpenSSH etc. ) on remote server before using Magic C++. Once the server supports SSH/SFTP connection then you can use Magic C++ without any server side daemon( magicd ), much easy to install.
Please refer this article for more information
Guide for developing under SSH/STP environment with Magic C++ 3.5
Back to Top
Q: Ftp connect to server failed but other external ftp tools such as Cuteftp can work well, what to do?
A:
Please make sure the offline working mode of your IE( Internet Explorer ) is disabled, click File->Offline Mode to disable it. This feature will disturb the network settings of windows.
Back to Top
Q: SSH connect to server failed with error message 'SSH2 autologin error: user authentication was failure' while debugging or executing but other external SSH tools such as PUTTY can work well, what to do?
A:
Please update to OpenSSH 4.2p1 or higher and try it again. As we know some server OS needs update OpenSSH to work with Magic C++ include Redhat 7.1, FreeBSD5.3/5.4 and Suse9.3.
Back to Top
Q: What's the difference between trial version and registed version?
A:
They are different only at usage time limit. You can download and use Magic C++ trial version FREELY, if you find it useful and continue to use it after 45 days, you are obligated to register it with us. For more information please check the purchase web page below:
Purchase Online
Back to Top
Q: Connection to server failed because root remote login was forbidden by server, what to do?
A:
If you have a Linux server: Open /etc/pam.d/login file and comment out the first line
If you have a FreeBSD server: Open /etc/ttys file, and locate the #Pseudo Terminals line, the default is ttyp0 none network , change all pseudo terminals to ttyp0 none network off secure
Back to Top
Q: Magic C++ doesn't work under IBM AIX platform, what to do?
A: [ This is NOT necessary for Magic C++ 3.0 or higher. ]
Open the src/config.h file in the server component source code package and comment out the #define SHORT_IAC line, re-compile, and it should be working properly.
Back to Top
Q: 'Get master pty failed!' under Fedora Core 3, what to do?
A: [ This is NOT necessary for Magic C++ 3.0 or higher. ]
(1)
# ./configure
(2)
In file src/Makefile add macro definition
-DHAVE_OPENPTY=1
at the end of this statement
DEFS=
add library
-lutil
at the end of this statement
LIBS= (3)
# make clean && make (4)
# make install
Back to Top
Q: Connection test failed under FreeBSD 5.x, what to do?
A:
To solve this problem you should choose bash, csh, ksh etc. instead of sh as the working shell environment.
Before installing magicd under FreeBSD 5.x you must install gmake package first.
===Installation guide for gmake===
(1)
upload gmake source code package to the server
(2)
# tar -zxvf make-3.80.tar.gz
(3)
# cd make-3.80
(4)
# ./configure
(5)
# make
(6)
# mv make gmake
(7)
# cp gmake /bin
(8)
# gmake install
===Installation guide for bash===
(1)
insert FreeBSD 1st CD into CD-ROM
(2)
execute sysinstall command and choose configure->packages->CD/DVD->shells->bash2.05b to install bash package
# sysinstall
(3)
#cp /usr/local/bin/bash /bin/bash
(4)
change account's shell type
#chsh ken
change /bin/sh to /bin/bash
Back to Top
Q: How to install the server component( magicd ) under SCO Unix?
A:
Upload the server component source codes package to the server
Compile the source codes and install.
(1)
# ./configure
While executing configure command ignore errors and continue.
(2)
replace 'long long' to 'long' in all the source files, SCO Unix doesn't support for this kind of data type.
in source file ./thttpd/config.h
insert statement
#define MAXPATHLEN 1024
in source file ./thttpd/libhttpd.c
comment out statement
case S_IFSOCK: modestr[0] = 's'; break;
to
// case S_IFSOCK: modestr[0] = 's'; break;
comment out statement
case S_IFSOCK: fileclass = "="; break;
to
// case S_IFSOCK: fileclass = "="; break;
(3)
make
(4)
make install
***Notice***
You should choose bash, csh, ksh etc. instead of sh as the working shell environment.
Back to Top
Q: Server component source codes compile failed under HP Tru64, what to do?
A:
Upload the server component source codes package to the server
Compile the source codes and install.
(1)
# ./configure
(2)
replace 'long long' by 'long' in all the source files, HP Tru64 doesn't support for this kind of data type.
(3)
make
(4)
make install
Back to Top
Q: What to do if my server OS is not listed in Magic C++ supported server platform list?
A:
Magic C++'s server component is OPEN SOURCE that means you can compile and install it under any Linux/BSD/Unix OS. For your instance you just need compile the server source codes on the server, once you finish this phase you can use Magic C++ to develop.
***NOTICE***
If your compiler is not compatible with standard compiler provide by the server OS, you need specify the compile options manually in 'Project/Project Settings.../Compile' page.
And if your debugger is not compatible with standard debugger provide by the server OS, you can't debug your program in Magic C++ IDE.
Back to Top
Q: Is it possible to run Magic C++ client IDE under Linux/Unix?
A:
We're very sorry, Magic C++ IDE only supports windows client. If you want to use a IDE under Linux, we suggest you to try KDevelop, it's a very good IDE under KDE desktop environment.
Back to Top
Q: Does Magic C++ support multi-thread and multi-process debugging?
A:
Yes, Magic C++ supports multi-thread and multi-process debugging. Multi-thread debugging can be achieved via a single Magic C++ IDE, while multi-process debugging needs to initiate several Magic C++ IDE instances and in combination with the Attach command.
Multi-thread Debugging Screenshot
Multi-process Debugging Screenshot
Back to Top
Q: How to debug a daemon process?
A:
Magic C++ supports for attaching to an existing process and debugging it. You can startup multiple instances of Magic C++ IDE to debug multiple processes applications cooperatively.
You can refer the screenshot
Multi-process Debugging Screenshot
Please debug an existing process by these steps:
(1) startup Magic C++ IDE
(2) Click Compile->Debug->Attach to Process
(3) Select PID or input PID of the target process in the dialog and press Attach button
then you can debug the process.
***NOTICE***
You should compile the target process program with -g option.
You must have priviledge to debug the target process(normal user can't attach to root's process).
Attach operation will fail if someone has attached to the target process already.
Back to Top
Q: Does Magic C++ support X-Window GUI applications development?
A:
Yes. Please refer
Guide for debugging X-Window GUI appalications with Magic C++.
Back to Top
Q: While debugging ncurses panel applications got the error message 'Program Exited with code 01', and in the console there is message 'Error Openenig terminal: unknown', what to do?
A:
Please set environment variable TERM to VT100 in Magic C++ IDE->Project Settings->Debug->Environment variables before debugging.
Screenshot
Back to Top
Q: While debugging the call stack window appears blank, what to do?
A:
There're 2 ways to solve this problem
(1)
Turn on the call stack option in 'Tools/Options/Debugger Settings'. Then the call stack info will auto refresh while updating.
(2)
Click 'Refresh' menuitem in pop menu on Call Stack window to refresh call stack info manually.
Back to Top
Q: How to debug a console application that uses a shared object library?I'm trying to debug a console application that uses a shared object library. The shared object library was compile with debug option -g and compiled outside of Magic C++.
I compile and link my console application using -L<library path> -l<libname> which uses my shared object library. The console application is built with Magic C++. Note that the shared object library was not compile with Magic C++ but using a custom makefile.
When I debug the console application using Magic C++, and step into a function that is contained in the shared object library, I get prompted with a open file dialog so that I can browse to the location of the source file. Apparently, Magic C++ does not know the location of the file. If I browse and open the file, I can continue debugging from within Magic C++.
However, if I debug the same console application compiled and linked outside of Magic C++ using gdb on the target system, and step into the function contained in the shared object library, I am able to without having to browse for the file.
Is there any way to tell Magic C++ where the base directory or source files of the shared object library are so that I can seemlessly step into functions contained within it without having to browse to each source file?
A:
Please add shared object library project to the same workspace with your console application. That means put these two projects in one workspace then Magic C++ can automatically detecte of source file location.
Back to Top
Q: Does Magic C++ support C/C++ CGI web programs development?
A:
Yes.
Please refer these webpages for how to transfer the arguments to cgi program by environment variables.
http://hoohoo.ncsa.uiuc.edu/cgi/env.html
http://hoohoo.ncsa.uiuc.edu/cgi/examples.html
Back to Top
Q: If I add a watch variable, the watch window does not appear at the bottom of the IDE as in MS-Visual C++.
A:
Please close the output window first which is at the bottom of the IDE and contains tabs 'Build/Debug/.../CVS'. After closing the output window you can see the watch window.
Back to Top
Q: Does Magic C++ support DB2,Oracle,Informix etc. database application debugging?
A:
Yes.
Please refer screenshots of Magic C++ on topic database application development.
http://www.magicunix.com/product01.htm
Magic C++ supports for direct compiling and debugging for database embedded SQL source files includes:
*.sqc,*.sqC IBM DB2 embedded SQL C/C++
*.pc Oracle Pro*C/C++
*.ec,*.ecpp Informix ESQL C/C++
IBM DB2 SQC Debugging Screenshot
Oracle Pro*C/C++ Debugging Screenshot
Informix ESQL C/C++ Debugging Screenshot
If your embedded SQL source file types have not listed above, please contact us and we'll support them as soon as possible.
***NOTICE***
While debugging your IBM DB2 program please use *.sqc/*.sqC instead of *.c/*.C to set breakpoints, then you can debug your DB2 program. If you use *.c/*.C to set breakpoints it will always fail.
Back to Top
Q: Does Magic C++ support the kernel debugging?
A:
Yes.Please refer this web page for more information.
http://www.magicunix.com/embedded01.htm
Back to Top
Q: How to set environment variables in Magic C++ IDE?
A:
Please set your environment variables here:
Project->Project Setup...->Project Settings->Debug Tab->environment variables
Screenshot
Back to Top
Q: Does Magic C++ support the cross-platform toolchains on Cygwin? The compiler, gnu gcc, is running on the Cygwin environment.
A:
Yes.
Magic C++ 3.0 supports Cygwin and MinGW.
You need configure the cross-platform toolchains's names include compiler, debugger, make etc. by click 'File->Local Host Setting...->Development tool->Customize button( below the drop list ) before developing.
Screenshot
Back to Top
Q: The attach target process has not been listed, what to do?
A:
If your target process has not been listed in the processes list box, please input the process PID manually in the process PID edit box, then press 'Attach' button and it will work well.
Screenshot
Back to Top
Q: Can I write asm in Magic C++?
A:
Yes. You can also compile and debug it in Magic C++.
Please refer GCC-Inline-Assembly-HOWTO to get help on this topic.
Here we provide sample codes which can compile and run successfully in MinGW.
/* sample codes */
int main(void)
{
int foo = 10, bar = 15;
__asm__ __volatile__("addl %%ebx,%%eax"
:"=a"(foo)
:"a"(foo), "b"(bar)
);
printf("foo+bar=%d\n", foo);
return 0;
}
Back to Top
Q: Is there a method of changing Quick Watch to display hex data rather than decimal?
A:
Yes. Please follow these steps:
(1)choose menu 'View/Watch'
(2)right mouse click on the 'Watch' window
(3)choose 'Hexadecimal Display' on pop-up menu
that will make 'Watch' and 'Quick Watch' display hex data rather than decimal.
Back to Top
Q: Where is the template for generating Makefile, and can I manually modify it?
A :
It's under Magic C++'s installed directory\templates\make\makefile, you can directly modified this templateto suit your own needs.
Back to Top
Q: Can I use a shell command/script to compile my programin in Magic C++ environment?
A:
Yes. You can use your customize compiling commands instead of Magic C++'s Makefile, in your shell script you can specific your compiling commands as you wish.
To use customized shell command/script to compile in Magic C++, please specify the shell command/script in 'Project/Project Setup/Makefile/Shell Command' and make sure that you've selected the 'User Cusomize commands' option also in the 'Build Type' group.
Screenshot
Back to Top Q: How do I integrate a makefile already exisited (like a pre-existing C/C++ based application) into the Magic C++ environment?
A:
To use customized Makefile in Magic C++, please specify the Makefile filename in
'Project/Project Setup/Makefile/Cusomization Makefile'
and make sure that you've selected the 'User Cusomize Makefile' option also in the 'Build Type' group.
Screenshot
Back to Top
Q: Can I use another compiler then gcc for example intel compiler?
A:
Yes.
You can configure the toolchains's names include compiler, debugger, make etc. by click 'File->Local Host Setting...->Development tool->Customize button'( below the drop list )
or
'File->Remote Server Manager...->Property->General->Server->Customize button'( below the Development tool drop list )
before developing.
Here's the screenshot for this operation, please have a look
Screenshot
this screenshot is for local development, the same look feel for remote development.
***NOTICE***
If your compiler is not compatible with standard compiler provide by the server OS, you need specify the compile options manually in Project/Project Settings.../Compile page.
And if your debugger is not compatible with standard debugger provide by the server OS, you can't debug your program in Magic C++ IDE.
Back to Top
Q: How to specify additional link library before compiling?
A:
To specify additional library you need, please add the library such as 'pthread' at Project->Project Setup...->Link Tab->Object/Library Modules in Magic C++ IDE.
Screenshot
Back to Top
Q: While compiling Magic C++ reports error message '[20050413 17:05:13]|tools.c|100|Bad file number', what to do?
A:
Please check the permission setting of files under directory magicd-3.0.0/log/
Here are the commands:
# cd magicd-3.0.0/dup
# chmod 666 *.log
Back to Top
Q: While compiling Magic C++ reports error message '[20050413 17:05:13]|tools.c|100|Bad file number', what to do?
A:
Please check the permission setting of files under directory magicd-3.0.0/log/
Here are the commands:
# cd magicd-3.0.0/dup
# chmod 666 *.log
Back to Top
Q: I am testing Magic C++ Enterprise Edition 3.0 build 050627. It worked
well last week. Last Friday I shutdown both the client and the server
machines. This morning I turned it on. Then after I loaded a project
and built it, all the menu items under the Compile are grayed except
the Stop Build and Debug. I have reinstalled the client side. It still
doesn't work. What's the solution? A:
This issue can be solved by starting magicd from telnet on Windows. Open a command line window by cmd.exe and execute telnet command in it, then startup magicd.
Back to Top
Q: Magic C++'s Oracle pro*c sample source codes can't work under HP-UX 11.23 server, what to do?
A:
The automatically generated makefile is only compatible with GNU Make. So on HP-UX, makefile must be modified as below( the modifications are marked by red color )
Here sample pro*c project name is "hp-ux-demo"
################OPTION###################
CCOMPILE = cc
CPPCOMPILE = aCC
COMPILEOPTION = -c +DD64 -g0 +z -AA -g
INCLUDEDIR = -I$(ORACLE_HOME)/rdbms/public -I$(ORACLE_HOME)/precomp/public
LINK = aCC
LINKOPTION = +DD64 -g0 +z -AA -g -o hp-ux-demo
LIBDIRS = -L$(ORACLE_HOME)/lib
OBJS = hp-ux-demo.o
OUTPUT = hp-ux-demo
SHAREDLIB = -lclntsh
APPENDLIB =
PROC_OPTION = DEFINE=_PROC_ MODE=ORACLE LINES=true CODE=CPP
ESQL_OPTION = -g
################OPTION END################
ESQL = esql
PROC = proc
$(OUTPUT):$(OBJS) $(APPENDLIB)
$(LINK) $(LINKOPTION) $(LIBDIRS) $(SHAREDLIB) $(APPENDLIB) $(OBJS)
$(OBJS):
$(PROC) CPP_SUFFIX=cpp $(PROC_OPTION) *.pc
$(CPPCOMPILE) -c -o $*.o $(COMPILEOPTION) $(INCLUDEDIR) $*.cpp
clean:
rm -f $(OBJS)
rm -f $(OUTPUT)
all: clean $(OUTPUT)
.PRECIOUS:%.cpp %.c %.C
.SUFFIXES:
.SUFFIXES: .c .o .cpp .ecpp .pc .ec .C .cc .cxx
.cpp.o:
$(CPPCOMPILE) -c -o $*.o $(COMPILEOPTION) $(INCLUDEDIR) $*.cpp
.cc.o:
$(CCOMPILE) -c -o $*.o $(COMPILEOPTION) $(INCLUDEDIR) $*.cpp
.cxx.o:
$(CPPCOMPILE) -c -o $*.o $(COMPILEOPTION) $(INCLUDEDIR) $*.cpp
.c.o:
$(CCOMPILE) -c -o $*.o $(COMPILEOPTION) $(INCLUDEDIR) $*.c
.C.o:
$(CPPCOMPILE) -c -o $*.o $(COMPILEOPTION) $(INCLUDEDIR) $*.C
.ecpp.C:
$(ESQL) -e $(ESQL_OPTION) $(INCLUDEDIR) $*.ecpp
.ec.c:
$(ESQL) -e $(ESQL_OPTION) $(INCLUDEDIR) $*.ec
.pc.cpp:
$(PROC) CPP_SUFFIX=cpp $(PROC_OPTION) $*.pc
Back to Top
Q: While compiling Magic C++ reports error message 'change current working directory failed!', what to do?
A:
The ftp server should permit the user switch to the root directory / to execute file operations via ftp protocol. Some ftp servers don't support this feature defaultly and need reconfigure this option.
Here is a ftp session to demonstrate this feature:
==========================
230 User magiccpp logged in.
ftp> pwd
257 "/home/magiccpp" is current directory.
ftp> cd /
250 CWD command successful.
ftp> pwd
257 "/" is current directory.
ftp>
==========================
look, although the home directory of user 'magiccpp' is /home/magiccpp magiccpp can still change directory to / and execute file operations. Magic C++ can work well under this situation.
***NOTICE***
Magic C++ can work well while the root directory via telnet protocol is same with the root directory of ftp protocol, and has nothing to do with the home directory of user.
To verify it you can just login to the server via telnet and ftp protocols, execute 'cd /' command to check it.
For Magic C++ v3.5 or higher users, please use this tip to solve this problem:
use regedit.exe to open and edit the windows registry,
search HKEY_CURRENT_USER\Software\Magic C Enterprise Edition\Servers and find the server entry,
create a STRING type subkey named with "FilePath Prefix" and set value to /
create a STRING type subkey named with "CmdPath Prefix" and set value to /home/magiccpp/
create a DWORD type subkey named with "Path Convert Type" and set value to 1
with these 3 subkeys Magic C++ will convert the path automatically and solve this problem without changing the server configuration.
Back to Top
Q: How does Magic C++ do compiling and debugging?
A:
Magic C++ provides remote compiling and debugging functions, but doesn't provide compileror debugger itself.Rather, through RDP( Remote Development Protocol), Magic C++ seamlessly integrates with all major unix/linux server compilers and debuggers to accomplish these tasks.
Here's a brief introduction about Magic C++'s remote debugging mechanisms.
By integrating support for both FTP, TELNET and our custom Remote Development Protocol(RDP) based on a client/server architecture, Magic C++ presents a seamless interface to opening and editing files, and executing remote commands still using existing remote server-based compilers and debuggers(i.e. gdb or dbx) to compile and debug.
Magic C++'s full installation consists of two phases. One for the server component - RDA( Remote Development Agent ), and one for the client component C/C++ IDE( Integrated Development Environment ). Without RDA installed IDE can ONLY work under edit mode and without support for remote compiling and debugging.
The server component - RDA( Remote Development Agent ) is an extended telnet server which works based on TELNET protocol and implements some extended IAC commands for executing remote commands.
Here is a typical scene for executing remote commands
1)the developer executes a debug command in Magic C++ IDE, such as clicking a menu item
2)Magic C++ IDE converts the operation to debugging command
3)Magic C++ IDE sends the command to RDA via network socket
4)RDA receives and executes the command
5)RDA redirects the output info to Magic C++ IDE as soon as it receives from the terminal
6)Magic C++ IDE parses the output info and refreshes all relative GUI elements's status
Back to Top
Q: What are the advantages of Magic C++ compared to other Linux/Unix development tools?
A:
Magic C++ is a windows based cross-platform MS Visual C++ like IDE for Unix/Linux/BSD/Cygwin/MinGW. It suppoorts for remote Unix/Linx/BSD development and local windows Cygwin/MinGW development.
(*)Magic C++ is a MS Visual C++ like IDE
(*)Magic C++ supports many kinds of server platform
(*)Magic C++ supports SSH/SFTP
(*)Magic C++ is very easy to install and use
(*)Magic C++'s customers include Sybase, CA, Motorola, Citigroup etc.
(*)Magic C++ is much cheaper
(*)Magic C++ provides high quality technical support include email, forum, telephone etc.
Back to Top
Q: How can I become a reseller of Magic C++?
A:
It's very simple to resell our software product Magic C++. Just register as our affiliate then sell Magic C++ on your website, our eCommerce partner shareit.com will transfer the Referral Bonus( 20% ) to you according to your request, these information you must fill online while registering as an affiliate.
Affiliate program
Step 1: Sign up to become an affiliate on shareit.com
Sign up at https://secure.shareit.com/shareit/affiliates/signup.html?
publisherid=40288&md5=2685b0ffb6a5b4500b3f1acff1b76a85 .
There are no hidden costs and it is free to sign up.
Step 2: Login to the Affiliate Control Panel
Once you are activated as an affiliate you will receive your login data for
the Affiliate Control Panel. Login to the Affiliate Control Panel at
http://www.shareit.com . And then , please generate links and info to
advertise our products.
Step 3: Start earning money by placing these links on your website
Now you can start earning money today by placing links to our products on
your website.
Product Product ID Price Referral Bonus
Magic C++ ( single license for one developer ) 211460 $99 20%
Magic C++ ( group license for 100 developers ) 211667 $4,999 20%
Magic C++ ( group license for 200 developers ) 211668 $7,999 20%
Magic C++ ( site license for unlimited number ) 211669 $19,999 20%
Back to Top
Q: How to order Magic C++ by fax or phone instead of secure online transaction on Internet?
A:
When you order our software products, you do this with Shareit, our eCommerce partner.You can order Magic C++ by fax or phone. Please refer
How to order through Shareit customer service?
Back to Top
Q: I was trying to find information on upgrade/update pricing. Do I need to purchase an upgrade? Is there even an upgrade price or do I have to pay the full price again?
A:
The upgrade of Magic C++ is totally FREE, just download new version and choose 'Repair' install mode to finish the upgrade. You needn't purchase Magic C++ again.
***NOTICE***
Magic C++ v3.0 or higher will store all the files on the remote server, and the project file is different from Magic C++ v2.5. Magic C++ will convert it automatically with a hint message box. Please backup your source files and project files if you may degrade from v3.0 to v2.5 since the project type is incompatible.
Back to Top
Q: If we purchase Magic C++, are we required to allow you to list us on your web page as your customer? Can we buy Magic C++ and not be listed as a customer on your marketing material such as your web page?
A:
Sure, if you don't want to be listed in Magic C++ customer list, we won't add your company name in it to protect your privacy.
Back to Top
Q: What will I get for my money?
A:
1.) A registration code to turn the trial version into a registered copy.
2.) Registration includes high quality technical support, FREE updates and upgrades to future software products.
Back to Top
Q: I'm concerned about the performance of remote compiling and debugging over telnet/ftp, how is the speed of Magic C++?
A:
Over all Magic C++ provides superb performance even when working remotely.
Please note that if you're connecting via telnet for the first time, because of the delay in logging into the remote server, it would appear to be slow, however all remote operations thereafter will be at decent speeds.
To reduce the delay of opening files, when you first open your remote project, mirror files will be built locally. When you open the same project again, Magic C++ will check for updates first. If the file hasn't been modified, Magic C++ will read from the local mirror and thus reducing delays in file opening.
To reduce the delay of debugging task, you can disable automatical refresh feature of unnecessary debugging information windows include 'Watch Window', 'Call Stack Window', 'Memory Window' etc. by configuring 'Tools/Options.../Debugger Settings'.
Magic C++ 3.5 or higher also supports SSH/SFTP environment as a plus.
Back to Top
Q: Sometimes code aware such as auto completion, members list can't work.
A:
(1) The declaration is incorrect.
for example:
class CTest
{
// ...
};
class CMain
{
int funcA();
};
int CMain::funcB()
{
CTest a;
a.
// Auto completion and member list can't work because funcB has no declaration.
}
(2) There are errors in your codes.
for example:
int CMain::funcA()
{
CTest a
....
a.
// Auto completion and member list can't work due to fatal error, there's no semicolon after statement "CTest a".
}
Back to Top
Q: What does 'offline edit' mean?
A:
This function is called 'Offline editing' in Magic C++, that is you can edit your source codes locally without connecting to the Unix/Linux/BSD server, then while needed you can force upload the source codes to Unix/Linux/BSD server to compile and debug.
To use this function, select 'Files' tab in 'Workspace' view, right click the project then select 'offline' menuitem, then you can edit the source codes locally.
Back to Top
Q: I am able to successfully compile with the remote workspace setup. But when I hit 'Execute' it waits pops the 'Logining and executing program...' windows and waits for sometime, then it pops up a windows which says 'Execute failed', what to do?
A:
To solve this problem, we need the debugging log file of magicd( the server component ). Please generate and send it to us, here are the steps:
(1) change working directory
# cd /your/path/magicd-3.0.0/bin
(2) stop active magicd process
# ./killit.sh
(3) restart magicd in debug mode to generate debugging log file
# ./magicd --debug
(4) execute operations in Magic C++ IDE( the client component )
(5) get the debugging log file
/your/path/magicd-3.0.0/log/dup.log
Back to Top
Q: Can I specify a directory on windows client to back up my source files on remote Unix/Linux/BSD server?
A:
You can find a source codes copy in this directory
Drive:\Program Files\MagicUnix\Magic C++\MirrorFiles
And the structure of source codes is same with the server file system.
They are used as a cache to speed up Magic C++.
Back to Top
Q: Is it possible to open an existing project on a remote server in Magic C++?
A:
Yes, you can import your source files to Magic C++'s project.
(1)
use 'File/New' create a empty project
(2)
use 'Project/Add to Project' to add your source files to Magic C++'s project
(3)
use 'Project/Project Setup/Makefile' to specify a customized Makefile or shell script to use your existing Makefile instead of auto generated Makefile
Screenshot
(4)
use 'Compile/Build All' to compile the project
(5)
use 'Compile/Execute' to execute the program
or
use 'Debug/Step Into' to execute some debugging commands such as step into,step out etc.
Back to Top
Q: Can I use another CVS, like ClearCase or VSS?
A:
Yes. ClearCase plug-in for Microsoft Visual Studio was designed primarily for use with MS Visual Studio, but in principle it can be used with any IDE that supports Microsoft's SCC API. Magic C++ Advanced Enterprise Edition 4.0 has implementated Microsoft SCC API, so any source control plug-in for Microsoft Visual Studio include ClearCase, VSS etc. can be reused in Magic C++ without any modifications.
Integrating IBM Rational ClearCase with Magic C++
Integrating VSS/CVS/Subversion with Magic C++
Back to Top
Q: Why can not edit $CVSROOT username and password on project setup of Magic C++?
A:
Because CVS options are shareable for project, please select 'All configurations' instead of 'Debug' or 'Release' in 'Project Settings' dialog then you can configure the CVS options.
Screenshot
Back to Top
Q: I could not add file to CVS repository bucause 'OK' button is not enables.
A:
You must input some comments in the 'Comment' edit box then the 'OK' button will change to enable. That's the limit of CVS not Magic C++.
Q: What is the correct project configuration in order to have the code on the server run at the root level?
A:
Magic C++ 3.5 has supported for SSH/SFTP secure development environment, so you can use Magic C++ with SSH/SFTP connections to have the code on the server run at the root level.
Guide for developing under SSH/STP environment with Magic C++ 3.5
Back to Top
|