summaryrefslogtreecommitdiff
path: root/src/server
Commit message (Collapse)AuthorAgeFilesLines
* httpd: retire this serverØyvind Harboe2010-11-1551-10020/+3
| | | | | | | | | | this never panned out and there are enough mistakes in the code that probably nobody used this. Use the tcl server and implement a standalone http app instead works fine. Signed-off-by: Øyvind Harboe <oyvind.harboe@zylin.com>
* gdb: fix occasional crash when flash probe failedØyvind Harboe2010-11-151-3/+7
| | | | Signed-off-by: Øyvind Harboe <oyvind.harboe@zylin.com>
* gdb: improve error message when gdb connect failsØyvind Harboe2010-11-111-1/+1
| | | | | | | | | | | | | gdb connect can fail when the flash has not been probed. During gdb connect, the flash layout is reported, but this can not be automatically detected for a target that is powered up and OpenOCD supports connecting to gdb server even if the target is powered down. The solution is to turn of the gdb_memory_map feature. Signed-off-by: Øyvind Harboe <oyvind.harboe@zylin.com>
* build: remove warn_unused_result errorsSpencer Oliver2010-10-052-2/+2
| | | | | | | Remove any build errors for strtol when building release version of openocd. Signed-off-by: Spencer Oliver <ntfreak@users.sourceforge.net>
* gdbserver: fix gdb_port memory leakSpencer Oliver2010-10-041-1/+3
| | | | Signed-off-by: Spencer Oliver <ntfreak@users.sourceforge.net>
* server: fix server pipe windows supportSpencer Oliver2010-10-041-10/+14
| | | | | | | | | | | | | commit 50d5441e2a615fb2c44b41a777e4373901f7a2e6 caused native windows build to fail. Firstly this patch fixes the build issue, but it also disables support for named pipes under Windows. Windows does not support posix named pipes. A cross-platfom access layer will need creating before support can be enabled again. Signed-off-by: Spencer Oliver <ntfreak@users.sourceforge.net>
* pipes: add documentation for pipesØyvind Harboe2010-10-013-5/+9
| | | | | | | | | Stick with the name "gdb_port" even if this command can be used for other things(disable, named pipes, anonymous stdin/out pipe). "port" is correct for probably more than 90% of use cases, if not more. Signed-off-by: Øyvind Harboe <oyvind.harboe@zylin.com>
* server: add support for pipesØyvind Harboe2010-10-015-77/+75
| | | | | | | -p/--pipe is now deprecated. Use '-c "gdb_port pipe;log_output openocd.log"' instead. Warning logged. Signed-off-by: Øyvind Harboe <oyvind.harboe@zylin.com>
* server: specify port as a stringØyvind Harboe2010-10-015-41/+104
| | | | | | | | | This will allow switching to using named pipes. Split this out as a seperate commit to make changes easier to follow. Signed-off-by: Øyvind Harboe <oyvind.harboe@zylin.com>
* server: read/write now goes through connection fn'sØyvind Harboe2010-10-015-5/+35
| | | | | | | | | | | depending on whether the connection is over a socket or pipe, the read is done differently. pipes can return -1 when writing 0 bytes, make 0 byte writes a successful no-op. 0 byte writes falls out naturally of tcl server code. Signed-off-by: Øyvind Harboe <oyvind.harboe@zylin.com>
* server: split file descriptors in in/out fd'sØyvind Harboe2010-10-015-19/+15
| | | | | | | pipes have different fd's for in/out. This makes the code more orthogonal and prepares for adding pipes. Signed-off-by: Øyvind Harboe <oyvind.harboe@zylin.com>
* server: rely on ctrl-c to stop openocdØyvind Harboe2010-10-011-26/+2
| | | | | | | | there was special support to support pressing 'x' to quit openocd. ctrl-c is sufficient. The main server loop is already complicated enough. Signed-off-by: Øyvind Harboe <oyvind.harboe@zylin.com>
* gdb: fix blank line at topØyvind Harboe2010-09-261-1/+0
| | | | | | snuck in at some point... Signed-off-by: Øyvind Harboe <oyvind.harboe@zylin.com>
* tcl_server: switch to ctrl-zØyvind Harboe2010-09-201-11/+11
| | | | | | | | | | | | | | by using ctrl-z instead of line end, multi-line tcl scripts can be handled. Testing: send ctrl-z a couple of times to make telnet enter the mode where it sends ctrl-z unencoded. Programs that talk to the tcl_server can send ctrl-z to indicate end of tcl-let to be executed without having to worry about telnet protocols. Signed-off-by: Øyvind Harboe <oyvind.harboe@zylin.com>
* gdbserver: incorrect memory map for multiple targets (bug #24)sb-sf2010-07-051-2/+4
| | | | | | | The gdb server incorrectly reports the memory map if we have multiple targets with multiple flash banks. Signed-off-by: Spencer Oliver <ntfreak@users.sourceforge.net>
* gdb-server: fix -Wshadow warningOyvind Harboe2010-06-171-7/+8
| | | | | | | | | | This warning was only reproducable with Cygwin. Cygwin now builds without warnings for the basic case. Signed-off-by: Oyvind Harboe <oyvind.harboe@zylin.com>
* gdb: -Wshadow warning fixesØyvind Harboe2010-06-161-1/+0
| | | | Signed-off-by: Øyvind Harboe <oyvind.harboe@zylin.com>
* gdb: clean up error handling in step/continueØyvind Harboe2010-06-161-5/+15
| | | | | | | | | | if step/continue fails, then the error should be reported to the calling fn. The calling fn decides if the connection has to be aborted or if packet processing can continue. Signed-off-by: Øyvind Harboe <oyvind.harboe@zylin.com>
* -Wshadow fixesØyvind Harboe2010-06-141-4/+4
| | | | Signed-off-by: Øyvind Harboe <oyvind.harboe@zylin.com>
* gdb-server: fix error reporting bugsØyvind Harboe2010-06-081-24/+9
| | | | | | | | | | | | GDB and OpenOCD has two different error number spaces and no mapping exists between them. If a specific error number is to be reported to GDB then this has to be done at the calling site, rather than as a generic routine that tries to map "retval" to GDB error number speak. Signed-off-by: Øyvind Harboe <oyvind.harboe@zylin.com>
* gdbserver: gdb cmds returning failure on successSpencer Oliver2010-05-171-9/+12
| | | | | | | The gdb_memory_map cmd for example fell through and returned ERROR_COMMAND_SYNTAX_ERROR on success - behaviour is now as expected. Signed-off-by: Spencer Oliver <ntfreak@users.sourceforge.net>
* missing pointer's declaration when enable macro -D_DEBUG_GDB_IO_.Jun Ma2010-05-141-0/+3
| | | | | | | reproducable when "./configure --enable-maintainer-mode CFLAGS=-D_DEBUG_GDB_IO_" Signed-off-by: Jun Ma <sync.jma@gmail.com> Signed-off-by: Øyvind Harboe <oyvind.harboe@zylin.com>
* server: incorrectly display socket port numberSpencer Oliver2010-05-061-1/+1
| | | | | | | c->sin.sin_port does not contain a valid port number so just use service->port as this is always correct. Signed-off-by: Spencer Oliver <ntfreak@users.sourceforge.net>
* gdb: connect will now fail if flash autoprobe failsØyvind Harboe2010-05-051-3/+23
| | | | | | | | | | | | This stops GDB from launching with an empty memory map, making gdb load w/flashing fail for no obvious reason. The error message points in the direction of the gdb-attach event that can be set up to issue a halt or "reset init" which will put GDB in a well defined stated upon attach and thus have a robust flash autoprobe. Signed-off-by: Øyvind Harboe <oyvind.harboe@zylin.com>
* Fixed bug in tcl-serverMatthias Bode2010-05-053-5/+5
| | | | | | | | No segmentationfault when sending commands to tcl-server. modified: src/server/server.c modified: src/server/tcl_server.c modified: src/server/tcl_server.h
* telnet_server: review unused symbolsAntonio Borneo2010-03-251-12/+0
| | | | | | Remove unused function Signed-off-by: Antonio Borneo <borneo.antonio@gmail.com>
* telnet_server: review scope of functionsAntonio Borneo2010-03-251-9/+11
| | | | | | Add "static" qualifier to private functions. Signed-off-by: Antonio Borneo <borneo.antonio@gmail.com>
* server: review unused symbolsAntonio Borneo2010-03-241-28/+0
| | | | | | Remove unused function Signed-off-by: Antonio Borneo <borneo.antonio@gmail.com>
* server: review scope of functions and dataAntonio Borneo2010-03-241-4/+4
| | | | | | Add "static" qualifier to private functions and data. Signed-off-by: Antonio Borneo <borneo.antonio@gmail.com>
* gdb_server: improved gdb load performanceØyvind Harboe2010-03-171-8/+37
| | | | | | | | | | | by ack'ing memory writes immediately and reporting either at next memory write or stepi/continue time. GDB will then send off a new packet that is ready by the time the previous packet has been written to target memory. On faster adapters this can be as much as 10% improvement. Signed-off-by: Øyvind Harboe <oyvind.harboe@zylin.com>
* telnet: fix strage blank spaces at beginning of telnet linesØyvind Harboe2010-01-311-3/+6
| | | | | | | | | | | | | | | | | | | | | | | | | Sometimes we saw two strange blank spaces at the beginning of the telnet lines. progress ogress > This patch fixes this problem: progress progress > The code changes are *reasonably* clean, but perhaps it could be made a bit more elegant, but I didn't want to change things after I finished diagnosis/testing & submitting the patch. The problem was that logging can send the text and the newline separately in two different requests and the telnet code would incorrectly remove the prompt from the end of a line. Signed-off-by: Øyvind Harboe <oyvind.harboe@zylin.com>
* gdb_server: handle stepi/continue packet while target is running with more graceØyvind Harboe2010-01-211-9/+14
| | | | | | | | | | Rather than issuing a halt and then stepi/resume, just wait for target to halt. Issue a sterner warning via gdb console that any gdb register changes will be ignored in this case. Signed-off-by: Øyvind Harboe <oyvind.harboe@zylin.com>
* gdb_server: correctly report flash sector sizesDavid Brownell2010-01-201-31/+46
| | | | | | | | | | | | | | | Report each region of same-size sectors separately, instead of incorrectly reporting that every sector has the same size. This is a longstanding bug on NOR flash chips with non-uniform sector sizes. It was largely hidden by other bugs in flash handling. When some of those were recently fixed, this one was exposed as a regression on str710. [oyvind.harboe@zylin.com: update the loop to behave on str7 ] Signed-off-by: Øyvind Harboe <oyvind.harboe@zylin.com> Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>
* gdb_server -- subroutinize memory map logicDavid Brownell2010-01-191-107/+116
| | | | | | | | Put the memory map logic into its own subroutine. This will make it a bit easier to package bugfixes, and simplifies the query packet handling. Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>
* gdb_server -- symbol cleanupDavid Brownell2010-01-192-62/+105
| | | | | | | | Make most methods static; net minor object code shrink. Likewise various data symbols; no net change. Shrink some overlong lines. Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>
* GDB: change gdb_breakpoint_override to COMMAND_ANYSpencer Oliver2010-01-141-1/+1
| | | | | | - enable gdb_breakpoint_override to be used within config script. Signed-off-by: Spencer Oliver <ntfreak@users.sourceforge.net>
* NOR: add optional "flash erase_address" sector paddingDavid Brownell2010-01-131-3/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Add a NOR flash mechanism where erase_address ranges can be padded out to sector boundaries, triggering a diagnostic: > flash erase_address 0x0001f980 16 address range 0x0001f980 .. 0x0001f98f is not sector-aligned Command handler execution failed in procedure 'flash' called at file "command.c", line 647 called at file "command.c", line 361 > > flash erase_address pad 0x0001f980 16 Adding extra erase range, 0x0001f800 to 0x0001f97f Adding extra erase range, 0x0001f990 to 0x0001fbff erased address 0x0001f980 (length 16) in 0.095975s (0.163 kb/s) > This addresses what would otherwise be something of a functional regression. An earlier version of the interface had a dangerous problem: it would silently erase data outside the range it was told to erase. Fixing that bug turned up some folk who relied on that unsafe behavior. (The classic problem with interface bugs!) Now they can get that behavior again. If they really need it, just specify "pad". Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>
* gdbserver: fix typo that broke read/write watchpointØyvind Harboe2010-01-131-2/+8
| | | | | | | | | | | | | It looks like a bugfix from normal breakpoints was not copied over. Do not use clever mathematics and assumptions to convert from GDB enum for break/watchpoints to OpenOCD enum. Drop connection upon unknown breakpoint type, this code path was not really considered by the previous code I think. Signed-off-by: Øyvind Harboe <oyvind.harboe@zylin.com>
* Doxygen file commentsDavid Brownell2010-01-111-1/+10
| | | | | | | Add file comments to a few files. Make the GDB server use more conventional (pointer-free) hex digit conversion. Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>
* shutdown: more graceful shutdownØyvind Harboe2010-01-111-1/+3
| | | | | | | Shutdown is not an error condition, do not return error from main. Signed-off-by: Øyvind Harboe <oyvind.harboe@zylin.com>
* src/server: usage/help/doc updatesDavid Brownell2010-01-094-52/+53
| | | | | | | | | | | | | | | Make "usage" messages use the same EBNF as the User's Guide; no angle brackets. Improve and correct various helptexts. Specifically for the port commands, clarify that the number is optional, and omitting it causes the current number to be displayed. Don't use "&function"; a function's name is its address. Remove a couple instances of pointless whitespace; shrink a few overlong lines. Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>
* gdb: fix regression in gdb_port commandØyvind Harboe2010-01-051-2/+3
| | | | | | | | | | | | | | | | | | | The gdb_port command can be invoked during normal execution to report the port used for gdb, whereas it was listed as CONFIG stage only, which caused an error when excuting it to return the reported error. Also in line with the grander goal of making more commands available during all "modes" (perhaps retiring config mode), there is no particular reason to limit gdb_port to the config stage. Regression was introduced in: b3bf1d12b2fdfba1c1cbee3e1afbfbb27cbd1a26 aka v0.4.0-rc1-32-gb3bf1d1 Signed-off-by: Øyvind Harboe <oyvind.harboe@zylin.com>
* streamline and document helptext mode displaysDavid Brownell2010-01-021-1/+2
| | | | | | | | | | | | | | | | | | | Most commands are usable only at runtime; so don't bother saying that, it's noise. Moreover, tokens like EXEC are cryptic. Be more clear: highlight only the commands which may (also) be used during the config stage, thus matching the docs more closely. There are - Configuration commands (per documentation) - And also some commands that valid at *any* time. Update the docs to note that "help" now shows this mode info. This also highlighted a few mistakes in command configuration, mostly commands listed as "valid at any time" which shouldn't have been. This just fixes ones I noted when sanity testing. Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>
* whitespace cleanup, mostly for docsAntonio Borneo2009-12-304-351/+351
| | | | | | | | Remove useless space/tab at end of lines. Remove spaces in indentation and replace with tab. Signed-off-by: Antonio Borneo <borneo.antonio@gmail.com> Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>
* cygwin 1.7 build fixesDavid Brownell2009-12-263-9/+9
| | | | | | | | | | | It's less accepting of signed char ... insisting that e.g. tolower() not receive one as a parameter. It's probably good to phase out such usage, given the number of bugs that lurk in the vicinity (assumptions that char is unsigned), so fix these even though such usage is actually legal. Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>
* server: server loop will exhaust data inputs before sleepingØyvind Harboe2009-12-161-17/+31
| | | | | | | | | | By exhausting data on input, the performance will be more consistent + the code more clearly distinguishes between polling and processing. A test showed gdb packet load performance go from ~1550kByte/s to 1650kBytes/s + being more stable. Signed-off-by: Øyvind Harboe <oyvind.harboe@zylin.com>
* server: add server_preinit which is called before config file is parsed.Spencer Oliver2009-12-112-1/+11
| | | | | | | This fixes the issue under native win32 of the socket interface not being enabled (via WSAStartup) before init is called from a script. Signed-off-by: Spencer Oliver <ntfreak@users.sourceforge.net>
* gdb_server: use more local variables in inner loop of fetching packetstiny ↵Øyvind Harboe2009-12-111-31/+73
| | | | | | | | | | | | | | | | | | refactoring to allow optimisation of inner loops Some profiling information for arm7 16MHz GDB load operation shows gdb_get_packet_inner() near the very top. Each sample counts as 0.01 seconds. % cumulative self self total time seconds seconds calls Ts/call Ts/call name 52.91 2.27 2.27 embeddedice_write_dcc 11.89 2.78 0.51 gdb_get_packet_inner 8.86 3.16 0.38 memcpy 3.26 3.30 0.14 idle_thread_main(unsigned int) 3.03 3.43 0.13 cyg_in_cksum Signed-off-by: Øyvind Harboe <oyvind.harboe@zylin.com>
* gdb_server: make struct gdb_connection privateØyvind Harboe2009-12-112-19/+21
| | | | | | it is only used inside gdb_server.c Signed-off-by: Øyvind Harboe <oyvind.harboe@zylin.com>
* build: add build/src to include pathØyvind Harboe2009-12-081-0/+1
| | | | | | This allows including generated include files. Signed-off-by: Øyvind Harboe <oyvind.harboe@zylin.com>